Тестирование на основе моделей: "ужас-ужас" или...

Preview:

DESCRIPTION

Выступление на конференции SQA Days 15, Москва, 19 апреля 2013 Про тестирование на основе моделей (model based testing, MBT) ходит множество мифов -- что оно неприменимо в реальной жизни; или применимо, но слишком дорого; или может быть не дорого, но очень сложно. Отчасти это действительно так, описанные в литературе примеры представляются либо простыми, но бесполезными, либо чересчур сложными и насыщенными какой-то непонятной математической терминологией. На самом деле сложность применения этого подхода преувеличена, она определяется сложностью используемых моделей, а их можно сделать достаточно простыми и при этом всё равно получить некоторые выгоды. Я покажу некоторые примеры, которые помогут вам понять, чем и когда может оказаться полезно тестирование на основе моделей, если у вас уже есть разработанные достаточно хорошие автотесты -- как тестирование на основе моделей позволит вам сделать их ещё лучше. И это будет недорого и несложно.

Citation preview

Тестирование на основе моделейАлексей Баранцев,

Software-Testing.Ru

Алексей Баранцев Software-Testing.Ru Selenium2.Ru Confetqa.Ru barancev@gmail.com skype:barancev g+ AlexeiBarantsev

Кто здесь?

Алексей БаранцевSoftware-Testing.Ru

barancev@gmail.comskype: barancevg+ AlexeiBarantsev

Алексей Баранцев Software-Testing.Ru Selenium2.Ru Confetqa.Ru barancev@gmail.com skype:barancev g+ AlexeiBarantsev

Что такое «модель»?

модели

Алексей Баранцев Software-Testing.Ru Selenium2.Ru Confetqa.Ru barancev@gmail.com skype:barancev g+ AlexeiBarantsev

Что такое модель?

модели

Алексей Баранцев Software-Testing.Ru Selenium2.Ru Confetqa.Ru barancev@gmail.com skype:barancev g+ AlexeiBarantsev

Упрощенное подобие

Алексей Баранцев Software-Testing.Ru Selenium2.Ru Confetqa.Ru barancev@gmail.com skype:barancev g+ AlexeiBarantsev

Требования к модели

• Адекватность• Точность• Экономичность• Универсальность

Алексей Баранцев Software-Testing.Ru Selenium2.Ru Confetqa.Ru barancev@gmail.com skype:barancev g+ AlexeiBarantsev

Моделирование

Алексей Баранцев Software-Testing.Ru Selenium2.Ru Confetqa.Ru barancev@gmail.com skype:barancev g+ AlexeiBarantsev

Назначение моделей

• Генерация тестов• Определение полноты покрытия

генерация тесто

в

Алексей Баранцев Software-Testing.Ru Selenium2.Ru Confetqa.Ru barancev@gmail.com skype:barancev g+ AlexeiBarantsev

Назначение моделей

• Генерация тестов• Определение полноты покрытия

оценка полноты

Алексей Баранцев Software-Testing.Ru Selenium2.Ru Confetqa.Ru barancev@gmail.com skype:barancev g+ AlexeiBarantsev

Модели данных• Разбиение на подобласти• Статистические модели• Покрывающие наборы• Анализ потоков данных

КЭ

Алексей Баранцев Software-Testing.Ru Selenium2.Ru Confetqa.Ru barancev@gmail.com skype:barancev g+ AlexeiBarantsev

Статистика

Никита Налютин, Математика для тестировщиков

Алексей Баранцев Software-Testing.Ru Selenium2.Ru Confetqa.Ru barancev@gmail.com skype:barancev g+ AlexeiBarantsev

exit poll

Алексей Баранцев Software-Testing.Ru Selenium2.Ru Confetqa.Ru barancev@gmail.com skype:barancev g+ AlexeiBarantsev

Модели поведения

• «Набор линейных сценариев»• Диаграммы состояний и переходов

Алексей Баранцев Software-Testing.Ru Selenium2.Ru Confetqa.Ru barancev@gmail.com skype:barancev g+ AlexeiBarantsev

Покрытие переходов

Алексей Баранцев Software-Testing.Ru Selenium2.Ru Confetqa.Ru barancev@gmail.com skype:barancev g+ AlexeiBarantsev

Покрытие переходов

Алексей Баранцев Software-Testing.Ru Selenium2.Ru Confetqa.Ru barancev@gmail.com skype:barancev g+ AlexeiBarantsev

Явная модельявна

я модель

Алексей Баранцев Software-Testing.Ru Selenium2.Ru Confetqa.Ru barancev@gmail.com skype:barancev g+ AlexeiBarantsev

UniTesK / Summer

Алексей Баранцев Software-Testing.Ru Selenium2.Ru Confetqa.Ru barancev@gmail.com skype:barancev g+ AlexeiBarantsev

Демо!

Алексей Баранцев Software-Testing.Ru Selenium2.Ru Confetqa.Ru barancev@gmail.com skype:barancev g+ AlexeiBarantsev

LoginTest

до после

login

logout

login

logout

Алексей Баранцев Software-Testing.Ru Selenium2.Ru Confetqa.Ru barancev@gmail.com skype:barancev g+ AlexeiBarantsev

LoginTest с параметрами

до после

login(user)

logout

login(user)

logout

Алексей Баранцев Software-Testing.Ru Selenium2.Ru Confetqa.Ru barancev@gmail.com skype:barancev g+ AlexeiBarantsev

Состояние (state)

до после

login(user)

logoutoff

login(user)

logout

on

Алексей Баранцев 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

Алексей Баранцев Software-Testing.Ru Selenium2.Ru Confetqa.Ru barancev@gmail.com skype:barancev g+ AlexeiBarantsev

AddRemoveUserTest

off

delete

onX

loginonX+1

onX+3

onX+2

createlogout

Алексей Баранцев Software-Testing.Ru Selenium2.Ru Confetqa.Ru barancev@gmail.com skype:barancev g+ AlexeiBarantsev

AddRemoveUserTest

off

delete

onX

loginonX+1

onX+3

onX+2

create

logout

Алексей Баранцев Software-Testing.Ru Selenium2.Ru Confetqa.Ru barancev@gmail.com skype:barancev g+ AlexeiBarantsev

AddRemoveUserTest

off

delete : X = X-1

create: X = X+1

onX

loginlogout

Алексей Баранцев Software-Testing.Ru Selenium2.Ru Confetqa.Ru barancev@gmail.com skype:barancev g+ AlexeiBarantsev

AddRemoveUserTest

off

delete : X = X-1

create: X = X+1

roleX

loginlogout

Алексей Баранцев Software-Testing.Ru Selenium2.Ru Confetqa.Ru barancev@gmail.com skype:barancev g+ AlexeiBarantsev

Ужас-ужас?

Алексей Баранцев Software-Testing.Ru Selenium2.Ru Confetqa.Ru barancev@gmail.com skype:barancev g+ AlexeiBarantsev

Не так уж это и страшно

Алексей Баранцев Software-Testing.Ru Selenium2.Ru Confetqa.Ru barancev@gmail.com skype:barancev g+ AlexeiBarantsev

Вопросы?

Алексей БаранцевSoftware-Testing.Ru

barancev@gmail.comskype: barancevg+ AlexeiBarantsev

Recommended