30
Тестирование на основе моделей Алексей Баранцев, Software-Testing.Ru

Тестирование на основе моделей: "ужас-ужас" или всё не так страшно?

Embed Size (px)

DESCRIPTION

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

Citation preview

Page 1: Тестирование на основе моделей: "ужас-ужас" или всё не так страшно?

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

Software-Testing.Ru

Page 2: Тестирование на основе моделей: "ужас-ужас" или всё не так страшно?

Алексей Баранцев Software-Testing.Ru Selenium2.Ru Confetqa.Ru [email protected] skype:barancev g+ AlexeiBarantsev

Кто здесь?

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

[email protected]: barancevg+ AlexeiBarantsev

Page 3: Тестирование на основе моделей: "ужас-ужас" или всё не так страшно?

Алексей Баранцев Software-Testing.Ru Selenium2.Ru Confetqa.Ru [email protected] skype:barancev g+ AlexeiBarantsev

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

модели

Page 4: Тестирование на основе моделей: "ужас-ужас" или всё не так страшно?

Алексей Баранцев Software-Testing.Ru Selenium2.Ru Confetqa.Ru [email protected] skype:barancev g+ AlexeiBarantsev

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

модели

Page 5: Тестирование на основе моделей: "ужас-ужас" или всё не так страшно?

Алексей Баранцев Software-Testing.Ru Selenium2.Ru Confetqa.Ru [email protected] skype:barancev g+ AlexeiBarantsev

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

Page 6: Тестирование на основе моделей: "ужас-ужас" или всё не так страшно?

Алексей Баранцев Software-Testing.Ru Selenium2.Ru Confetqa.Ru [email protected] skype:barancev g+ AlexeiBarantsev

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

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

Page 7: Тестирование на основе моделей: "ужас-ужас" или всё не так страшно?

Алексей Баранцев Software-Testing.Ru Selenium2.Ru Confetqa.Ru [email protected] skype:barancev g+ AlexeiBarantsev

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

Page 8: Тестирование на основе моделей: "ужас-ужас" или всё не так страшно?

Алексей Баранцев Software-Testing.Ru Selenium2.Ru Confetqa.Ru [email protected] skype:barancev g+ AlexeiBarantsev

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

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

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

в

Page 9: Тестирование на основе моделей: "ужас-ужас" или всё не так страшно?

Алексей Баранцев Software-Testing.Ru Selenium2.Ru Confetqa.Ru [email protected] skype:barancev g+ AlexeiBarantsev

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

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

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

Page 10: Тестирование на основе моделей: "ужас-ужас" или всё не так страшно?

Алексей Баранцев Software-Testing.Ru Selenium2.Ru Confetqa.Ru [email protected] skype:barancev g+ AlexeiBarantsev

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

Page 11: Тестирование на основе моделей: "ужас-ужас" или всё не так страшно?

КЭ

Page 12: Тестирование на основе моделей: "ужас-ужас" или всё не так страшно?

Алексей Баранцев Software-Testing.Ru Selenium2.Ru Confetqa.Ru [email protected] skype:barancev g+ AlexeiBarantsev

Статистика

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

Page 13: Тестирование на основе моделей: "ужас-ужас" или всё не так страшно?

Алексей Баранцев Software-Testing.Ru Selenium2.Ru Confetqa.Ru [email protected] skype:barancev g+ AlexeiBarantsev

exit poll

Page 14: Тестирование на основе моделей: "ужас-ужас" или всё не так страшно?

Алексей Баранцев Software-Testing.Ru Selenium2.Ru Confetqa.Ru [email protected] skype:barancev g+ AlexeiBarantsev

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

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

Page 15: Тестирование на основе моделей: "ужас-ужас" или всё не так страшно?

Алексей Баранцев Software-Testing.Ru Selenium2.Ru Confetqa.Ru [email protected] skype:barancev g+ AlexeiBarantsev

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

Page 16: Тестирование на основе моделей: "ужас-ужас" или всё не так страшно?

Алексей Баранцев Software-Testing.Ru Selenium2.Ru Confetqa.Ru [email protected] skype:barancev g+ AlexeiBarantsev

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

Page 17: Тестирование на основе моделей: "ужас-ужас" или всё не так страшно?

Алексей Баранцев Software-Testing.Ru Selenium2.Ru Confetqa.Ru [email protected] skype:barancev g+ AlexeiBarantsev

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

я модель

Page 18: Тестирование на основе моделей: "ужас-ужас" или всё не так страшно?

Алексей Баранцев Software-Testing.Ru Selenium2.Ru Confetqa.Ru [email protected] skype:barancev g+ AlexeiBarantsev

UniTesK / Summer

Page 19: Тестирование на основе моделей: "ужас-ужас" или всё не так страшно?

Алексей Баранцев Software-Testing.Ru Selenium2.Ru Confetqa.Ru [email protected] skype:barancev g+ AlexeiBarantsev

Демо!

Page 20: Тестирование на основе моделей: "ужас-ужас" или всё не так страшно?

Алексей Баранцев Software-Testing.Ru Selenium2.Ru Confetqa.Ru [email protected] skype:barancev g+ AlexeiBarantsev

LoginTest

до после

login

logout

login

logout

Page 21: Тестирование на основе моделей: "ужас-ужас" или всё не так страшно?

Алексей Баранцев Software-Testing.Ru Selenium2.Ru Confetqa.Ru [email protected] skype:barancev g+ AlexeiBarantsev

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

до после

login(user)

logout

login(user)

logout

Page 22: Тестирование на основе моделей: "ужас-ужас" или всё не так страшно?

Алексей Баранцев Software-Testing.Ru Selenium2.Ru Confetqa.Ru [email protected] skype:barancev g+ AlexeiBarantsev

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

до после

login(user)

logoutoff

login(user)

logout

on

Page 23: Тестирование на основе моделей: "ужас-ужас" или всё не так страшно?

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

Page 24: Тестирование на основе моделей: "ужас-ужас" или всё не так страшно?

Алексей Баранцев Software-Testing.Ru Selenium2.Ru Confetqa.Ru [email protected] skype:barancev g+ AlexeiBarantsev

AddRemoveUserTest

off

delete

onX

loginonX+1

onX+3

onX+2

createlogout

Page 25: Тестирование на основе моделей: "ужас-ужас" или всё не так страшно?

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

Page 26: Тестирование на основе моделей: "ужас-ужас" или всё не так страшно?

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

Page 27: Тестирование на основе моделей: "ужас-ужас" или всё не так страшно?

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

Page 28: Тестирование на основе моделей: "ужас-ужас" или всё не так страшно?

Алексей Баранцев Software-Testing.Ru Selenium2.Ru Confetqa.Ru [email protected] skype:barancev g+ AlexeiBarantsev

Ужас-ужас?

Page 29: Тестирование на основе моделей: "ужас-ужас" или всё не так страшно?

Алексей Баранцев Software-Testing.Ru Selenium2.Ru Confetqa.Ru [email protected] skype:barancev g+ AlexeiBarantsev

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

Page 30: Тестирование на основе моделей: "ужас-ужас" или всё не так страшно?

Алексей Баранцев Software-Testing.Ru Selenium2.Ru Confetqa.Ru [email protected] skype:barancev g+ AlexeiBarantsev

Вопросы?

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

[email protected]: barancevg+ AlexeiBarantsev