Системное интеграционное тестирование является важным этапом тестирования и обязательным для больших проектов, но обычно это плохо изученная и часто плохо управляемая фаза тестирования.
В своем докладе я хочу продемонстировать один из подходов к интеграционному тестированию на практике банковского проекта, рассказать об особенностях и на что стоит обратить внимание при организации и проведении интеграционного тестирования систем.
Основной фокус доклада - раскрыть все «изюминки» интеграционного тестирования и дать общие рекомендации по тому как не наступить на грабли.
QA Fest 2019. Петр Тарасенко. QA Hackathon - The Cookbook 22
QA Fest 2017. Анастасия Павленко. А ты готов к интеграционному тестированию?
1. Киев 2017
Первый в Украине фестиваль тестирования
A ты готов к
интеграционному
тестированию?
Анастасия Павленко
Тест Менеджер
2. Киев 2017
О себе
А ты готов к интеграционному тестированию?
• 7+ в QA&Testing
• Опыт работы тестирования и организации
тестирования в большых и сложных проектах,
управления и координации распределенных
команд. Тестирования веб, десктопных,
мобильных приложений.
• Доменные области: страховые, банковские и
платежные системы.
• Прошла все круги ада от интерна до тест
менеджера
• Тест Менеджер в Itera – ответственная за
построение процессов, организицию и
координацию тестирования в банковском
проекте включая приемочное тестирование,
управление распределенной командой
4. Киев 2017
О чем буду говорить
• О личном опыте проведения системного
интеграционного тестирования (СИТ)
• О подходе к организации и планированию
проведения ручного СИТ
• О том с какими проблемами мы столкнулись
5. Киев 2017
О чем не буду говорить
• Об автоматизации
• О тестировании веб-сервисов
• О самих техниках интеграционного
тестирования
6. Киев 2017
Цель доклада
• Дать рекомендации по организации
интеграционного тестирования
• Поделиться чек-листом который я составила
при проведении СИТ, потом и кровью
7. Киев 2017
Что для вас интеграционное
тестирование?
А ты готов к интеграционному тестированию?
10. Киев 2017А ты готов к интеграционному тестированию?
Процесс тестирования
Релиз-
Кандидат
Официальная
Релизная ВерсияСпринт 0 Спринт 1 Спринт n
Билд 10.1.n Билд 10.1.n+1
Продакшн
СИТСТ ЮАТМини-регрессия
Спринт
планинг
Тест Дизайн Тестирование Демо
• ПО создает задачи Jira и
добавляет в бєклог
• ПО приоретеризиурет
бєклог
• Команда оценивает
задачи на спринт
• Создаие
пользовательнских
сценариев
• Автоматизация
сценариев
• Валидация сценариев
продакт овенуром
• Деплой нового билда
• Проверка функционала
• Демонстрация
результатов
• Отчет о прогрессе
Ретроспектива
• Обсуждение что
хорошо, что плохо
• Определить план
по улучшеним
• Тестирование
интеграций
• Создание отчета
• Подготовка
тестовых данных
и ЮАТ
• Координация
приемочного
тестирования
• Создание отчета
Регрессия
• Регрессионное
тестирование
основанное на
анализе изминений
• Проверка дефектов
Билд 10.1.n+2
• Функиональное
тестирование
• Регрессионное
тестирование
• Тестирование
багов
11. Киев 2017
Ограничения
• Банк – бюрократическая организация
• Разработчики – на стороне вендора
• Отсутствие ежедневных деплоев
• Долгий цикл от заведения бага до исправления
• Отсутствует доступ к коду, базе данных
12. Киев 2017А ты готов к интеграционному тестированию?
еж
Веб создание
заявки на займ
Веб создание
заявки на займ
Система
принятия
решения
Регистрация
заемов
Основная
система
Система
N
Веб cоздания заявки
на займ частным
лицом
Платежная
система 1
Платежная
система 2
Реестр ИД кодов
Рассылка
документов
Работа с документами
Регистрация авто
заемов
Система
N
Система
N
Гос реестр
автомобилей
Коллекторская
система
Коллекторская
система
Платежная
система 3
Система
обработки
страховок
Веб создание
заявки на займ
Распределение
займов
Веб создание
заявки на займ
Веб создание
заявки на
займ
Веб создание
заявки на займ
Обработка
выплат
Коллекторская
система
Система
отчетности
Система N
Веб создание
заявки на займ
Веб создание
заявки на займ
Веб создание
заявки на займ
Депозит
Авто займы
Потребительские
займы
Кредит на
оборотный
капитал
Внутринние
системы
Внешние
системы
13. Киев 2017А ты готов к интеграционному тестированию?
Веб создание
заявки на займ
Веб создание
заявки на займ
Система
принятия
решения
Реегистрация
займов
Основная
система
Система
N
Веб cоздания заявки
на займ частным
лицом
Платежная
система 1
Платежная
система 2
Реестр ИД
кодов
Рассылка
документов
Работа с документами
Регистрация
авто займов
Система
N
Система
N
Гос реестр автомобилей
Коллекторская
система
Коллекторская
система
Платежная
система 3
Обработка
страховых
Веб
приложение 10
Веб создание
заявки на
займ
Распределение
займов
Веб создание
заявки на
займ
Веб создание
заявки на займ
Обработка
выплат
Коллекторская
система
Система
отчетности
Система N
Веб создание
заявки на займ
Веб создание
заявки на займ
Веб создание
заявки на займ
Депозит
Авто
Потребительские
займы
Кредит на
оборотный
капитал
СЦЕНАРИЙ 1:
Создание заявки на получение кредита на автомобиль = > Подтверждение выдачи кредита
Выплата денег клиенту = > Выплата кредита клиентом
Внутринние
системы
Внешние
системы
СЦЕНАРИЙ 2: Неуплата кредита
Количество всех интеграционных
сценариев = 60
14. Киев 2017А ты готов к интеграционному тестированию?
еж
Веб создание
заявки на займ
Веб создание
заявки на займ
Система
принятия
решения
Регистрация
заемов
Основная
система
Система
N
Веб cоздания заявки
на займ частным
лицом
Платежная
система 1
Платежная
система 2
Реестр ИД кодов
Рассылка
документов
Работа с документами
Регистрация авто
заемов
Система
N
Система
N
Гос реестр
автомобилей
Коллекторская
система
Коллекторская
система
Платежная
система 3
Система
обработки
страховок
Веб создание
заявки на займ
Распределение
займов
Веб создание
заявки на займ
Веб создание
заявки на
займ
Веб создание
заявки на займ
Обработка
выплат
Коллекторская
система
Система
отчетности
Система N
Веб создание
заявки на займ
Веб создание
заявки на займ
Веб создание
заявки на займ
Депозит
Авто займы
Потребительские
займы
Кредит на
оборотный
капитал
Внутринние
системы
Внешние
системы
16. Киев 2017
Планирование
Тест
планирование
Тест Дизайн Тестирование Отчетность
Определить обьем работ
Составить список систем, которые нужны для тестирования
Настроить доступы, провести инструктаж
Определить критерии начала тестирования
Подготовить тестовое окружение
Согласовать расписание
Определить зависимости
17. Киев 2017
Батч
одна или несколько программ, которые
выполняют определенный набор команд в
определенной последовательности и
запускаются в определенное время и не
требуют пользовательского контроля
18. Киев 2017
Список систем и описание
конфигураций
Система/
Сервис
Описание
Тестовое окружение
QA PreProd
Система 1 Что делает, для чего используется Версия Версия
Конфигурации,
доступ
Конфигурации, доступ
Система 2 Что делает, для чего используется Версия Версия
Конфигурации,
доступ
Конфигурации, доступ
Система 3 Что делает, для чего используется Версия Версия
Конфигурации,
доступ
Конфигурации, доступ
19. Киев 2017
Отслеживание прогресса готовности
Система/
Сервис
Тестовое окружение Ответственные за
конфигурацию
Комментарии
QA PreProd
Система 1 Статус
(Планируется, Не
готова, Готова)
Статус
(Планируется, Не
готова, Готова)
Команда / Человек
Система 2 Не готова Готова Команда / Человек
Система 3 Не планируется Готова Команда / Человек
20. Киев 2017
Планирование зависимостей
Описание Тест
Фаза
Влияние Действия Ответствены
й
Даты Статус
Батчи должны быть
переписаны под
новую платфору
СИТ Отложенный
старт СИТ
1. Создать запрос
вендору на
подготовку батчей
Анастасия 23го
Июля
Готов
Сделать
дополнительные
настройки в СRM
СИТ Сценарий X
нельзя
будет
проверить
1. Определить
настройки
2. Скоопирироваться с
Василием
Петровичем
Галина 1е
августа
Готов
21. Киев 2017
Тестовое окружение
• Повторяет все настройки рабочей среды
• Конфигурации ПО соответствуют конфигурациям
релиз-кандидата
• Установленны последнии версии интеграционных
систем
• Батчи установлены и настроены
• Настроена инфрастуктура для DWH и других
систем отчетности
23. Киев 2017
С чем столкнулись мы
• Не актуальная версия одной из
интеграционных систем
• Результат: двойная работа, обнаружили
дефект на поздней стадии
24. Киев 2017
Критерии начала тестирования
• Системное тестирование завершено
• Дефекты, блокирующие сценарии по
интеграции исправлены
• Тестовая среда установлена, конфигурации
проверенны, системы подключенны
• Тестовые данные подготовлены
• Доступ к системам настроен и проверен
• Тест сценарии написаны и провалидированы
с пользователями
27. Киев 2017
С чем столкнулись мы
• Тестовая среда не была подготовлена
вовремя - интеграции не были вовремя
сконфигурены
• Пользовательские сценарии не были
провалидированы пользователями
• Результат: интеграционное тестирование
отложили на неделю
28. Киев 2017
Тест Дизан
Тест
планирование
Тест Дизайн Тестирование Отчетность
Определить список пользовательских сценариев
Составить список всех интеграционных систем
Соотнести пользовательские сценарии с ситемами
соответсвенно
Приоритезировать и отобрать сценарии
Описать сценарии
31. Киев 2017
Лучше практики
• Использовать сценарии, которые покрывают
бизнес флоу
• Тест покрывает бизес сценарий от начала до
конца
• По возможности используйте реальные
тестовые данные и учитывайте формат
данных
• Включайте пользовательско-
ориентированные проверки, а не только бэк-
енд запросы
33. Киев 2017
Тестирование
Тест
планирование
Тест Дизайн Тестирование Отчетность
Начинаем СИТ после
функционального тестирования
Координируем запуск батчей и
тестирование соответсвенно
составленному графику
Сделать смоук тесирование, что
интеграции между системаим
работают
36. Киев 2017
С чем столкнулись мы
• Функциональное тестирование не было
вовремя завершено
• Результат: поздно обнаружили, что
интеграционная система имела не последнюю
версию
39. Киев 2017
С чем столкнулись мы
• У вендора своя система по отслеживанию
дефектов и их требование обязательно
заводить дефект в их системе.
• Результат: дублирование дефектов в своей
системе, и системе вендора.
40. Киев 2017
Выводы
1. Подготовить тестовое окружение подобно
рабочему окружению
2. Не комбинировать функциональное
тестирование и интеграционное
3. Соблюдать критерии начала тестирования
4. Тестировать пользовательские сценарии от
начала и до конца
42. Киев 2017
Планирование
Тест План
Описывает спискок сценариев и систем, которые будут покрыты
интеграционным тестированием, и которые не будут покрыты
Определяет критерии начала тестирования
Описывает все взаимозависимости при тестировании
Включает описание всех интегрирующих системы, их предназначение,
конфигураций, версии
Содержит список всех тестируемых батчей
Описывает тестовое окружение:
Аппартарное обеспечение
Конфигурации
Базы данных, DWH
И т.д.
Указывает требования к тестовым данными, базы данных, формата, и другое.
43. Киев 2017
Планирование
Документ по готовности тестового окружения
Включает спискок систем и статусом готовности на каждое тестовое
окружение
Включает спискок батчек и статусом готовности на каждое тестовое
окружение
Перечень требований к окружению и статус готовности
График работ
Документ с описанием активностей тестирования по дням описан, с
указанием системной даты, если планируется запуск батчей, которые
меняют системную дату
44. Киев 2017
Тест дизайн
Матрица тестовых сценариев
Список всех пользовательских сценариев составлен
Список всех интеграционных систем составлен
Сценарии и системы соотнесены
Матрица просмотрена и провалидирована конечными пользователями
Сценарии отобраны и приоритезированны относительно максимального
покрытия систем
Тестовые сценарии
Описаны и проваледированы пользователями
Покрывают пользовательский сценари от начала и до конца
Включает помимо бэкенд проверок пользовательские проверки
45. Киев 2017
Тестирование
Тест результаты
Смоук тестирование интеграций проведен успешно
График проведения работ соблюден
Пользовательские сценарии прошли успешно
Дефеты заведены
46. Киев 2017
Отчетность
Отчет
Включает результаты проведенного тестирования
Процесс приоритизации дефектов прозрачен и следуется всеми участниками
План по исправленю дефектов согласован со всеми вовлеченными
командами
Тестовое окружение не было готово во время, пришлось перенести начало интеграционного тестирования. Во избежания рисков найти багги поздно, провели смоук тестирование интеграций на QA среде, тех интегаций, которые там имелись....поэтому очень важно заблаговременно начать подготовку тестовой среды – нам месяц открывали 2а порта.
Регрессию закончили, но проверку нового функионала, вовремя не завершили. Блокеров не было найдено. Решили тестирование нового функционала,с совместить с СИТ.
Пользовательские сценарии не были провалидированны пользователями. Т.к. время поджимало, у ответственных людей не было время. Решили принять риск, и прогонять, то что иммем.
Укравтодор явное не соблюдает этот принцып
При СИТ, согласуйте общий репозиторий по отслеживанию прогресса и заведению и починке дефектов. Много факторов может быть – у вендоров, свои системы для трекинга дефектов, у других командах внутри клиента могут быть созданы свои спейсы, поэтому важно, чтобы процесс был оговорен заранее, и все дефекты были в одном месте.
Важно, чтобы процедура по приоритезации починки дефектов была согласова заранее. Например, дефект может быть пофикшан, только третей стороной, у них есть свои задачи, нужно убедиться, чтобы ваш дефект был приоритизирован.
Например, у нас у вендора, своя система по треканью дефектов и их требование – обязательно заводить дефект в их системе. Мы вышли дублировали дефекты в своей системе, и вендора.
Теперь когда у вас спросят Готовы ли к интеграционному тестированию – вы можете ответить – Всегда готовы!