От Зефира в коробке к Structure Zephyr или как тест-менеджеру перекроить внут...
Использование игровой модели для выполнения сложных сценарных тестов
1. Software quality assurance days
21 Международная конференция
по вопросам качества ПО
sqadays.com
Москва. 26–27 мая 2017
Крючков Владимир
Группа Полипластик. Москва, Россия
Использование игровой модели для выполнения
сложных сценарных тестов
2. Использование игровой модели для выполнения сложных сценарных тестов
О чем будем говорить
Определимся с начальными условиями
Поговорим о создании сценариев
Введем игроков
Опишем их поведение
Подгрузим данные и настроим задания
Запускаем «игру»
Смотрим результаты
3. Использование игровой модели для выполнения сложных сценарных тестов
Почему
Сложная логика и процессы продукта
Частое изменение функционала
Сложность создания новых сценариев
Для покрытия продукта нужно много тестов
Сложность поддержки большого пула
сценарных тестов
4. Использование игровой модели для выполнения сложных сценарных тестов
Что мы тестируем
Продажи
Склад
Производство
ФинансыЛогистика
Закупки
Обмен данными
ERP 2.0
с
изменениями
5. Использование игровой модели для выполнения сложных сценарных тестов
Что хотим и в чем заключается игра
Что хотим:
Проверить функциональность программы с большим покрытием, но так
чтобы она сама думала над комбинациями, понимала логику работы.
Математически:
Система выводится из равновесия, а робот с помощью “правил”
возвращает ее в изначальное состояние.
Функционально (на примере):
Клиенты «боты» заказывают товары, а сотрудники «боты» системы
обслуживают эти запросы.
6. Использование игровой модели для выполнения сложных сценарных тестов
Что делаем
1. Рисуем схемы основных процессов в нотации BPMN
2. Выделяем в каждой схеме одинаковые блоки/действия
3. Создаем XML-схему UI действий для блоков
4. Создаем таблицы с описанием связей
5. Выделяем пользователей по функциональному
признаку (игроки)
6. Создаем модели игроков
8. Использование игровой модели для выполнения сложных сценарных тестов
Декомпозиция процесса
1. Делим по функциональному признаку
2. Делим по уровню доступа
3. Учитываем объект данных
4. Учитываем формы (списков, элементов,
выбора)
5. Не мельчим
9. Использование игровой модели для выполнения сложных сценарных тестов
Пример разбиения процесса на блоки
Б1
Б6
Б3
Б2
Б5
Б4
10. Использование игровой модели для выполнения сложных сценарных тестов
Создаем UI блоки действий по логу
Используем лог
журнала действий
создаваемый
системой –
самообучение и
автоподстройка
11. Использование игровой модели для выполнения сложных сценарных тестов
Создаем UI блоки действий в конструкторе
Используем
графический
конструктор
12. Использование игровой модели для выполнения сложных сценарных тестов
Определяемся с игроками
Клиент – делает, оплачивает и получает
заказ
Менеджер – оформляет, анализирует,
закрывает заказ, выставляет счет и
формирует документы отгрузки
Кладовщик – оформляет отгрузку товара
клиенту
13. Использование игровой модели для выполнения сложных сценарных тестов
Поведение описываем конечными автоматами
Вкл.
Выкл.
14. Использование игровой модели для выполнения сложных сценарных тестов
Схема состояний для менеджера
Начало
Ожидание
Отгружаем
Выставить
счетНовый
заказ
оплата
звонок переход
переход
переход
переход
15. Использование игровой модели для выполнения сложных сценарных тестов
Как запускаем
Свой
велосипед
Сценарные
тесты
jUnit XML
отчет
16. Использование игровой модели для выполнения сложных сценарных тестов
Что из себя представляет игрок
Библиотека
сценарных
тестов
Таблица
переходов
Таблицы
связей
Имитатор
менеджера
17. Использование игровой модели для выполнения сложных сценарных тестов
Перед запуском
1. Формируем вектор входных состояний
2. Создаем матрицу комбинаций по вектору
3. Масштабируем на клиентов, сотрудников
4. Помещаем на временную шкалу
5. Можно запускать игру
18. Использование игровой модели для выполнения сложных сценарных тестов
Схема игрового стенда
Сервер
управления
игрой
Управление
Отчеты
База 1С
ERP 2.0
Клиент
Менеджер
Кладовщик
Приложения 1С
19. Использование игровой модели для выполнения сложных сценарных тестов
Куда смотрим, на что обращаем внимание
Лог ошибок по репортам
Лог журнала действий системы
Отказы и блокировки цепочек
Смотрим за балансом - все клиенты
должны быть обслужены
Отслеживаем рост красных показателей по
APDEX
20. Использование игровой модели для выполнения сложных сценарных тестов
С чем столкнулись, и как решили
Система меняется - для поиска элементов
используем алгоритмы в комбинации по имени,
представлению и иерархии
В журналах действий много мусора – поэтому
выкидываем редкие и с отклонениями (статистика)
Система не всегда работает как хотели – поэтому
руками ищем проблемные участки и исправляем
23. Использование игровой модели для выполнения сложных сценарных тестов
Что мы получаем
Имитация реальной работы пользователей
Робот быстрее/ дешевле/ не устает/
современней
Можем проводить нагрузочное
тестирование приближенное к реальному
Снижение трудозатрат
24. Использование игровой модели для выполнения сложных сценарных тестов
Спасибо за внимание
к.т.н. Крючков Владимир
Вячеславович
kruchkov.v@polyplastic.ru
admin660@rambler.ru