Тестирование на основе моделей: "ужас-ужас" или...
DESCRIPTION
Выступление на конференции SQA Days 15, Москва, 19 апреля 2013 Про тестирование на основе моделей (model based testing, MBT) ходит множество мифов -- что оно неприменимо в реальной жизни; или применимо, но слишком дорого; или может быть не дорого, но очень сложно. Отчасти это действительно так, описанные в литературе примеры представляются либо простыми, но бесполезными, либо чересчур сложными и насыщенными какой-то непонятной математической терминологией. На самом деле сложность применения этого подхода преувеличена, она определяется сложностью используемых моделей, а их можно сделать достаточно простыми и при этом всё равно получить некоторые выгоды. Я покажу некоторые примеры, которые помогут вам понять, чем и когда может оказаться полезно тестирование на основе моделей, если у вас уже есть разработанные достаточно хорошие автотесты -- как тестирование на основе моделей позволит вам сделать их ещё лучше. И это будет недорого и несложно.TRANSCRIPT
Тестирование на основе моделейАлексей Баранцев,
Software-Testing.Ru
Алексей Баранцев Software-Testing.Ru Selenium2.Ru Confetqa.Ru [email protected] skype:barancev g+ AlexeiBarantsev
Кто здесь?
Алексей БаранцевSoftware-Testing.Ru
[email protected]: barancevg+ AlexeiBarantsev
Алексей Баранцев Software-Testing.Ru Selenium2.Ru Confetqa.Ru [email protected] skype:barancev g+ AlexeiBarantsev
Что такое «модель»?
модели
Алексей Баранцев Software-Testing.Ru Selenium2.Ru Confetqa.Ru [email protected] skype:barancev g+ AlexeiBarantsev
Что такое модель?
модели
Алексей Баранцев Software-Testing.Ru Selenium2.Ru Confetqa.Ru [email protected] skype:barancev g+ AlexeiBarantsev
Упрощенное подобие
Алексей Баранцев Software-Testing.Ru Selenium2.Ru Confetqa.Ru [email protected] skype:barancev g+ AlexeiBarantsev
Требования к модели
• Адекватность• Точность• Экономичность• Универсальность
Алексей Баранцев Software-Testing.Ru Selenium2.Ru Confetqa.Ru [email protected] skype:barancev g+ AlexeiBarantsev
Моделирование
Алексей Баранцев Software-Testing.Ru Selenium2.Ru Confetqa.Ru [email protected] skype:barancev g+ AlexeiBarantsev
Назначение моделей
• Генерация тестов• Определение полноты покрытия
генерация тесто
в
Алексей Баранцев Software-Testing.Ru Selenium2.Ru Confetqa.Ru [email protected] skype:barancev g+ AlexeiBarantsev
Назначение моделей
• Генерация тестов• Определение полноты покрытия
оценка полноты
Алексей Баранцев Software-Testing.Ru Selenium2.Ru Confetqa.Ru [email protected] skype:barancev g+ AlexeiBarantsev
Модели данных• Разбиение на подобласти• Статистические модели• Покрывающие наборы• Анализ потоков данных
КЭ
Алексей Баранцев Software-Testing.Ru Selenium2.Ru Confetqa.Ru [email protected] skype:barancev g+ AlexeiBarantsev
Статистика
Никита Налютин, Математика для тестировщиков
Алексей Баранцев Software-Testing.Ru Selenium2.Ru Confetqa.Ru [email protected] skype:barancev g+ AlexeiBarantsev
exit poll
Алексей Баранцев Software-Testing.Ru Selenium2.Ru Confetqa.Ru [email protected] skype:barancev g+ AlexeiBarantsev
Модели поведения
• «Набор линейных сценариев»• Диаграммы состояний и переходов
Алексей Баранцев Software-Testing.Ru Selenium2.Ru Confetqa.Ru [email protected] skype:barancev g+ AlexeiBarantsev
Покрытие переходов
Алексей Баранцев Software-Testing.Ru Selenium2.Ru Confetqa.Ru [email protected] skype:barancev g+ AlexeiBarantsev
Покрытие переходов
Алексей Баранцев Software-Testing.Ru Selenium2.Ru Confetqa.Ru [email protected] skype:barancev g+ AlexeiBarantsev
Явная модельявна
я модель
Алексей Баранцев Software-Testing.Ru Selenium2.Ru Confetqa.Ru [email protected] skype:barancev g+ AlexeiBarantsev
UniTesK / Summer
Алексей Баранцев Software-Testing.Ru Selenium2.Ru Confetqa.Ru [email protected] skype:barancev g+ AlexeiBarantsev
Демо!
Алексей Баранцев Software-Testing.Ru Selenium2.Ru Confetqa.Ru [email protected] skype:barancev g+ AlexeiBarantsev
LoginTest
до после
login
logout
login
logout
Алексей Баранцев Software-Testing.Ru Selenium2.Ru Confetqa.Ru [email protected] skype:barancev g+ AlexeiBarantsev
LoginTest с параметрами
до после
login(user)
logout
login(user)
logout
Алексей Баранцев Software-Testing.Ru Selenium2.Ru Confetqa.Ru [email protected] skype:barancev g+ AlexeiBarantsev
Состояние (state)
до после
login(user)
logoutoff
login(user)
logout
on
Алексей Баранцев Software-Testing.Ru Selenium2.Ru Confetqa.Ru [email protected] skype:barancev g+ AlexeiBarantsev
AddRemoveUserTest
до после
create(user)
delete
off
delete
create(user)
on
login
@before: login
Алексей Баранцев Software-Testing.Ru Selenium2.Ru Confetqa.Ru [email protected] skype:barancev g+ AlexeiBarantsev
AddRemoveUserTest
off
delete
onX
loginonX+1
onX+3
onX+2
createlogout
Алексей Баранцев Software-Testing.Ru Selenium2.Ru Confetqa.Ru [email protected] skype:barancev g+ AlexeiBarantsev
AddRemoveUserTest
off
delete
onX
loginonX+1
onX+3
onX+2
create
logout
Алексей Баранцев Software-Testing.Ru Selenium2.Ru Confetqa.Ru [email protected] skype:barancev g+ AlexeiBarantsev
AddRemoveUserTest
off
delete : X = X-1
create: X = X+1
onX
loginlogout
Алексей Баранцев Software-Testing.Ru Selenium2.Ru Confetqa.Ru [email protected] skype:barancev g+ AlexeiBarantsev
AddRemoveUserTest
off
delete : X = X-1
create: X = X+1
roleX
loginlogout
Алексей Баранцев Software-Testing.Ru Selenium2.Ru Confetqa.Ru [email protected] skype:barancev g+ AlexeiBarantsev
Ужас-ужас?
Алексей Баранцев Software-Testing.Ru Selenium2.Ru Confetqa.Ru [email protected] skype:barancev g+ AlexeiBarantsev
Не так уж это и страшно
Алексей Баранцев Software-Testing.Ru Selenium2.Ru Confetqa.Ru [email protected] skype:barancev g+ AlexeiBarantsev
Вопросы?
Алексей БаранцевSoftware-Testing.Ru
[email protected]: barancevg+ AlexeiBarantsev