Micro Models Based
Testing
Роман Иовлев
Обо мне
•
Роман Иовлев
•
Senior QA компании Teknavo
Оглавление
•
MBT – что это, pro et contra, обзор
инструментов
•
Почему нет широкого применения
•
Практические советы
MBT
Model-based testing for complex
software systems is still an
evolving field
Wikipedia
MBT is Future of QA
MBT
•
Модель
•
Выделение абстрактных
тестовых сценариев
•
Реализация абстрактных
тестовых сценариев
Модель
Тестовый сценарий
Реализация
•
Для каждой дуги - Метод для перехода(из
состояния A в состояние B)
•
Для каждого узла - Эталонный метод/-ы
для проверки состояния
Сценарий
↓
Input Data
•
Create
•
Check State Created
•
Register
•
Check State Registered
•
Pay
•
Check State Paid
•
Fail Delivery
•
Check State Delivery Rejected
•
Move to archive
•
Check State In Archive
Покрытия графа
•
Покрытие состояний
•
Покрытие путей
•
Покрытие значений параметров
•
…
•
…
Pro
•
Наглядность (формализация модели)
•
Автогенерация тестов
•
Легче поддержка (меньше издержек в
средне-долгосрочной перспективе)
•
Возможность разделения труда
•
Понятное покрытие, наглядные отчеты
Contra
•
Надо менять парадигму мышления (Нет
классических тестовых сценариев)
•
Долгий первый результат
•
Не применимо для «небольших» проектов
Инструменты
•
MaTeLo
•
SpecExplorer
•
GraphWalker
•
….
See more
http://mit.bme.hu/~micskeiz/pages/modelb
ased_testing.html
Nobody knows
•
Нет простых хороших OpenSource
инструментов
•
Все бесплатные не поддерживаются или изначально не
удобные
•
Платные ориентированы на большой бизнес, имеют массу
функций, которые делают их сложными в освоении
•
Сложные большие модели
•
Однонаправленность генерации
•
Наглядный выбор тестовых наборов в графе
по входным ограничениям
Micro модели
•
Много маленьких моделей
•
Проще для понимания
•
Быстрое создание первых тестов
Пример Магазин покупка
Пример Оказание услуги
Пример Регистрация
Интерфейс модель<>реализация
•
Простой XML/JSON – основа фреймворка
•
Легко добавить новые данные из тестового проекта
•
Легко сохранить граф в XML
•
Граф строится на основании этого XML
•
Тесты генерируются на основании XML
•
Разные люди могут создавать свои продукты с обеих
сторон
Пример
<model>
<nodes>
<node name = “Created” type= “start”/>
…
<node name = “Paid”/>
<node name = “Delivered” type = “end”/>
</nodes>
<transitions>
<transition name = “Deliver” from = “Pay” to= “Delivered”/>
…
</transitions>
</model>
Что это дает
•
Из такого XML:
•
Легко построить тестовый сценарий
•
Легко создать граф
•
Легко граф сохранить в такой XML
•
Легко на изменить XML имея конечные реализации
(добавить новые переходы и состояния)
Дополнительные данные
•
Дополнительные данные в отдельных
файлах (связь по имени):
•
Для построения графа координаты и расположение
•
Для реализаций названия методов/контекстов
реализующих шаги
•
Входные данные
•
Веса и теги для переходов (для генерации разных
наборов кейсов)
Дополнительные возможности
•
Веса/время исполнения и теги на Дугах,
для генерации сценариев наиболее
подходящих виду тестирования
•
Ограничения по входным данным на дуги.
Возможность генерации сценариев и
тестовых наборов для полного покрытия
«по параметрам»
MTest Framework
•
Поддержка состояний/переходов
•
Сборка тестовых сценариев из состояний
переходов
•
Генерация Сценариев (путей в графе) по
входным данным
Подробнее
http
://habrahabr.ru/company/ifree/blog/212567
/
Открыты для сотрудничества
•
Работа с графом,
отображение/расположение
•
Доработки по обработке модели
фильтрация по параметрам переходов,
весам и тегам
•
Взаимодействие с генератором данных
Вопросы
•
Роман Иовлев
•
Email:
romanyister@gmail.com
•
Статья:
http://goo.gl/vDRvi0
•
Skype: roman.Iovlev
Micro Model Based Testing