Тестирование на основе моделей: "ужас-ужас" или всё не так страшно?Alexei Barantsev
Выступление на конференции SQA Days 15, Москва, 19 апреля 2013
Про тестирование на основе моделей (model based testing, MBT) ходит множество мифов -- что оно неприменимо в реальной жизни; или применимо, но слишком дорого; или может быть не дорого, но очень сложно. Отчасти это действительно так, описанные в литературе примеры представляются либо простыми, но бесполезными, либо чересчур сложными и насыщенными какой-то непонятной математической терминологией. На самом деле сложность применения этого подхода преувеличена, она определяется сложностью используемых моделей, а их можно сделать достаточно простыми и при этом всё равно получить некоторые выгоды. Я покажу некоторые примеры, которые помогут вам понять, чем и когда может оказаться полезно тестирование на основе моделей, если у вас уже есть разработанные достаточно хорошие автотесты -- как тестирование на основе моделей позволит вам сделать их ещё лучше. И это будет недорого и несложно.
Выступление на встрече московского клуба тестировщиков.
Если почитать какую-нибудь книжку про разработку автотестов или просто погуглить по словам "successful test automation" -- можно найти множество разнообразных рекомендаций. Выбирайте правильно инструмент. Проектируйте и выстраивайте правильную архитектуру тестов. Уделяйте внимание тому, чтобы тесты было легко поддерживать. Не забывайте про планирование и управление (вообще-то это надо было бы поставить первым пунктом).
Но когда вы только приступаете к созданию автотестов -- вы ещё не знаете ничего ни про инструменты (насколько хорошо они вам подойдут), ни про архитектуру, да и управлять ещё нечем. Планировать в условиях такой неопределённости тоже сложно.
Что же делать?
Вы когда-нибудь выращивали цветы? Комнатные, или на клумбе, или может быть даже не цветы, а кусты или деревья?
Конечно, можно сначала нанять ландшафтных дизайнеров, распланировать и спроектировать большой-большой парк, потом нанять рабочих, которые всё посеют и посадят в соответствии с планом, сделают дорожки и выкопают декоративные прудики. А потом будут его поддерживать.
Но для этого нужно во-первых, иметь опыт таких работ, а во-вторых, иметь достаточно солидный бюджет.
Однако есть и другой путь -- "органический". Сначала посадить один цветочек. Если не приживётся -- посадить другой. Когда вы увидите, что он хорошо себя чувствует -- посадить побольше таких цветов. Оформить красиво клумбу. Подсадить что-нибудь ещё. Разбить рядом вторую клумбу, с другими цветами. Потом что-нибудь куда-нибудь пересадить, а что-нибудь вообще перестать сажать, потому что не понравились. И так постепенно создать ничуть н
The development of Selenium 3 is officially discontinued. The next major version of Selenium 4 is being prepared for release. New commands that have been recently added to the W3C WebDriver standard will appear. A lot of legacy code will be removed, including the driver for “old” versions of Firefox. But the main changes will take place in Selenium Server and Selenium Grid. In short, the server will be completely redesigned, the new implementation is written from scratch. Yes, communication protocols will remain old, but the internal device will change beyond recognition. In particular, if earlier Selenium Grid consisted of two types of nodes (hub and end nodes), the new version will have four types of nodes. In my report, I will try to explain why we changed everything, who will get better from this, what will be the possibilities for customizing the grid in the new version and how to migrate from the old version to the new one.
Model-Based Testing: Concepts, Tools, and TechniquesTechWell
For decades, software development tools and methods have evolved with an emphasis on modeling. Standards like UML and SysML are now used to develop some of the most complex systems in the world. However, test design remains a largely manual, intuitive process. Now, a significant opportunity exists for testing organizations to realize the benefits of modeling. Adam Richards describes how to leverage model-based testing to dramatically improve both test coverage and efficiency—and lower the overall cost of quality. Adam provides an overview of the basic concepts and process implications of model-based testing, including its role in agile. A survey of model types and techniques shows different model-based solutions for different kinds of testing problems. Explore tool integrations and weigh the pros and cons of model-based test development against a variety of system and project-level factors. Gain a working knowledge of the concepts, tools, and techniques needed to introduce model-based testing to your organization.
Тестирование на основе моделей: "ужас-ужас" или всё не так страшно?Alexei Barantsev
Выступление на конференции SQA Days 15, Москва, 19 апреля 2013
Про тестирование на основе моделей (model based testing, MBT) ходит множество мифов -- что оно неприменимо в реальной жизни; или применимо, но слишком дорого; или может быть не дорого, но очень сложно. Отчасти это действительно так, описанные в литературе примеры представляются либо простыми, но бесполезными, либо чересчур сложными и насыщенными какой-то непонятной математической терминологией. На самом деле сложность применения этого подхода преувеличена, она определяется сложностью используемых моделей, а их можно сделать достаточно простыми и при этом всё равно получить некоторые выгоды. Я покажу некоторые примеры, которые помогут вам понять, чем и когда может оказаться полезно тестирование на основе моделей, если у вас уже есть разработанные достаточно хорошие автотесты -- как тестирование на основе моделей позволит вам сделать их ещё лучше. И это будет недорого и несложно.
Выступление на встрече московского клуба тестировщиков.
Если почитать какую-нибудь книжку про разработку автотестов или просто погуглить по словам "successful test automation" -- можно найти множество разнообразных рекомендаций. Выбирайте правильно инструмент. Проектируйте и выстраивайте правильную архитектуру тестов. Уделяйте внимание тому, чтобы тесты было легко поддерживать. Не забывайте про планирование и управление (вообще-то это надо было бы поставить первым пунктом).
Но когда вы только приступаете к созданию автотестов -- вы ещё не знаете ничего ни про инструменты (насколько хорошо они вам подойдут), ни про архитектуру, да и управлять ещё нечем. Планировать в условиях такой неопределённости тоже сложно.
Что же делать?
Вы когда-нибудь выращивали цветы? Комнатные, или на клумбе, или может быть даже не цветы, а кусты или деревья?
Конечно, можно сначала нанять ландшафтных дизайнеров, распланировать и спроектировать большой-большой парк, потом нанять рабочих, которые всё посеют и посадят в соответствии с планом, сделают дорожки и выкопают декоративные прудики. А потом будут его поддерживать.
Но для этого нужно во-первых, иметь опыт таких работ, а во-вторых, иметь достаточно солидный бюджет.
Однако есть и другой путь -- "органический". Сначала посадить один цветочек. Если не приживётся -- посадить другой. Когда вы увидите, что он хорошо себя чувствует -- посадить побольше таких цветов. Оформить красиво клумбу. Подсадить что-нибудь ещё. Разбить рядом вторую клумбу, с другими цветами. Потом что-нибудь куда-нибудь пересадить, а что-нибудь вообще перестать сажать, потому что не понравились. И так постепенно создать ничуть н
The development of Selenium 3 is officially discontinued. The next major version of Selenium 4 is being prepared for release. New commands that have been recently added to the W3C WebDriver standard will appear. A lot of legacy code will be removed, including the driver for “old” versions of Firefox. But the main changes will take place in Selenium Server and Selenium Grid. In short, the server will be completely redesigned, the new implementation is written from scratch. Yes, communication protocols will remain old, but the internal device will change beyond recognition. In particular, if earlier Selenium Grid consisted of two types of nodes (hub and end nodes), the new version will have four types of nodes. In my report, I will try to explain why we changed everything, who will get better from this, what will be the possibilities for customizing the grid in the new version and how to migrate from the old version to the new one.
Model-Based Testing: Concepts, Tools, and TechniquesTechWell
For decades, software development tools and methods have evolved with an emphasis on modeling. Standards like UML and SysML are now used to develop some of the most complex systems in the world. However, test design remains a largely manual, intuitive process. Now, a significant opportunity exists for testing organizations to realize the benefits of modeling. Adam Richards describes how to leverage model-based testing to dramatically improve both test coverage and efficiency—and lower the overall cost of quality. Adam provides an overview of the basic concepts and process implications of model-based testing, including its role in agile. A survey of model types and techniques shows different model-based solutions for different kinds of testing problems. Explore tool integrations and weigh the pros and cons of model-based test development against a variety of system and project-level factors. Gain a working knowledge of the concepts, tools, and techniques needed to introduce model-based testing to your organization.
8. Алексей Баранцев Software-Testing.Ru Selenium2.Ru Confetqa.Ru barancev@gmail.com skype:barancev g+ AlexeiBarantsev
Назначение моделей
• Генерация тестов
• Определение полноты покрытия
генерация
тестов
9. Алексей Баранцев Software-Testing.Ru Selenium2.Ru Confetqa.Ru barancev@gmail.com skype:barancev g+ AlexeiBarantsev
Назначение моделей
• Генерация тестов
• Определение полноты покрытия
оценка полноты
10. Алексей Баранцев Software-Testing.Ru Selenium2.Ru Confetqa.Ru barancev@gmail.com skype:barancev g+ AlexeiBarantsev
Модели данных
• Разбиение на подобласти
• Статистические модели
• Покрывающие наборы
• Анализ потоков данных
20. Алексей Баранцев Software-Testing.Ru Selenium2.Ru Confetqa.Ru barancev@gmail.com skype:barancev g+ AlexeiBarantsev
LoginTest
до после
login
logout
login
logout
21. Алексей Баранцев Software-Testing.Ru Selenium2.Ru Confetqa.Ru barancev@gmail.com skype:barancev g+ AlexeiBarantsev
LoginTest с параметрами
до после
login(user)
logout
login(user)
logout
22. Алексей Баранцев Software-Testing.Ru Selenium2.Ru Confetqa.Ru barancev@gmail.com skype:barancev g+ AlexeiBarantsev
Состояние (state)
до после
login(user)
logout
off
login(user)
logout
on
23. Алексей Баранцев Software-Testing.Ru Selenium2.Ru Confetqa.Ru barancev@gmail.com skype:barancev g+ AlexeiBarantsev
AddRemoveUserTest
до после
create(user)
delete
off
delete
create(user)
on
login
@before: login
24. Алексей Баранцев Software-Testing.Ru Selenium2.Ru Confetqa.Ru barancev@gmail.com skype:barancev g+ AlexeiBarantsev
AddRemoveUserTest
off
delete
on
X
login
on
X+1
on
X+3
on
X+2
create
logout
25. Алексей Баранцев Software-Testing.Ru Selenium2.Ru Confetqa.Ru barancev@gmail.com skype:barancev g+ AlexeiBarantsev
AddRemoveUserTest
off
delete
on
X
login
on
X+1
on
X+3
on
X+2
create
logout
26. Алексей Баранцев Software-Testing.Ru Selenium2.Ru Confetqa.Ru barancev@gmail.com skype:barancev g+ AlexeiBarantsev
AddRemoveUserTest
off
delete : X = X-1
create: X = X+1
on
X
login
logout
27. Алексей Баранцев Software-Testing.Ru Selenium2.Ru Confetqa.Ru barancev@gmail.com skype:barancev g+ AlexeiBarantsev
AddRemoveUserTest
off
delete : X = X-1
create: X = X+1
role
X
login
logout