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

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

Upload: alexei-barantsev

Post on 16-Jun-2015

420 views

Category:

Software


3 download

DESCRIPTION

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

TRANSCRIPT

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