Чувствую себя изобретателем велосипеда. И долго думал, стоит ли писать, о том, что мне кажется самоочевидным. Но очередной раз столкнулся с тем, что, с упорством достойным лучшего применения, так не делают.
И так ситуация: e-commerce в транспорте / туризме / индустрии гостеприимства. Разрабатывали, разрабатывали и вот уже — сквозные бизнес-процессы, множество систем, все как положено в большом e-commerce.
Но вот проблема:
И кто обеспечивает качество бизнес-процесса? Эксплуатант раз, а потом другой, устроил вопль при оплате счетов, с аргументом: «ну и что, что ваша система работает, пользоваться то нельзя».
Тестировать за смежников не хочется, но сдаваться и получать оплату хочется. Так мы начали писать сквозную систему автотестирования – испытания не системы, а целиком бизнес-процессов электронной коммерции (с участием нескольких систем, от нескольких поставщиков). Такая большая система, которая ходит по сквозным БП, заглядывает во все системы: от веб-консоли, до чтения записей из БД:
И вот что у нас получилось:
1. Комплексные испытания – проверка функционала всех БП e-commerce с целью:
2. Подготовка отчетности
Обработка скриншотов:
Набор отчетов:
3. Нагрузочные испытания – массовое повторение однотипных тест-кейсов, с целью:
4. Многопоточность – тест-кейсы выполняются в 3 потока, что особенно актуально, из-за того, что в качестве сервера для проведение испытаний предпочтительно использование платформы Windows.
Объемы испытаний:
Экономия при автотестах – 5-6 млн. ₽ в год (только на зарплатах)
В принципе ничего особенного, но это же технический ресурс…
И так ситуация: e-commerce в транспорте / туризме / индустрии гостеприимства. Разрабатывали, разрабатывали и вот уже — сквозные бизнес-процессы, множество систем, все как положено в большом e-commerce.
Но вот проблема:
- Все большие системы состоят из нескольких систем;
- Каждую разрабатывает / актуализирует / сопровождает отдельный разработчик;
- Каждый разработчик в среднем раз в месяц обновляет ППО и самостоятельно контролирует качество своего решения.
И кто обеспечивает качество бизнес-процесса? Эксплуатант раз, а потом другой, устроил вопль при оплате счетов, с аргументом: «ну и что, что ваша система работает, пользоваться то нельзя».
Тестировать за смежников не хочется, но сдаваться и получать оплату хочется. Так мы начали писать сквозную систему автотестирования – испытания не системы, а целиком бизнес-процессов электронной коммерции (с участием нескольких систем, от нескольких поставщиков). Такая большая система, которая ходит по сквозным БП, заглядывает во все системы: от веб-консоли, до чтения записей из БД:
И вот что у нас получилось:
Что умеет система:
1. Комплексные испытания – проверка функционала всех БП e-commerce с целью:
- Выявления ошибок;
- Проверка интеграции;
- Разбор отклонения;
- Проверка логики;
- Проверка сумм;
- Анализ PNR в GDS;
- Анализ записей о доп. услугах в БД;
- Проверка отображения элементов в экранных формах.
2. Подготовка отчетности
Обработка скриншотов:
- Идентификаторы заказов/статуса/шага прохождения в именах файлов;
- Группировка скришотов в файловом хранилище по разделам испытаний.
Набор отчетов:
- Сводный отчет по отклонениям — с ссылками на пошаговое прохождение, расшифровкой (формат – Excel)
- Сводный отчет о некритичных отклонениях — расшифровкой и ссылками на пошаговое описание (формат – Excel)
- «Красивый» отчет для сдачи отчетности, с как корректными прохождениями, так отклонениями (формат – Excel)
3. Нагрузочные испытания – массовое повторение однотипных тест-кейсов, с целью:
- выявление периодических ошибок;
- имитации нагрузки.
4. Многопоточность – тест-кейсы выполняются в 3 потока, что особенно актуально, из-за того, что в качестве сервера для проведение испытаний предпочтительно использование платформы Windows.
Экономический эффект
Объемы испытаний:
- 2 пар валюты/языки. 4 разрешения. 4 браузера. 8 бизнес ситуаций;
- 12 * 4 * 4 * 8 = 1 536 тест-кейса;
- Среднее прохождение тест-кейса роботом — 5 минут, воспроизведение человеком (при наличии большого опыта) – 7 -10 минут;
- Трудозатраты на испытания 1152 * 7 * 1,2 (коэффициент перебоев на тестовой среде) = 12 902,4 минут / 215,04 часа на релиз;
- В месяц 3 выпуска обновлений от 3х поставщиков = 645,12 человеко-часов. Учитывая затраты на подготовку отчетности и неравномерность испытаний, 4, а скорее всего, 5 сотрудников full time;
- Зарплата специалиста 80 000 + отчисления в ПФР — 30%, в ФСС — 2,9%, в ФФОМС — 5,1%.
Экономия при автотестах – 5-6 млн. ₽ в год (только на зарплатах)
Технологии
В принципе ничего особенного, но это же технический ресурс…
- Java, фреймворк TestNG.
- Selenium – набор библиотек, для управления web-браузерами;
- Selenide – методы для работы с web-объектами;
- SoapUI – средство взаимодействия с различными протоколами;
- Selenium Grid – инструмент позволяющий строить кластеры и распределять задачи по различным серверам;
- Jenkins – средство управления исполнения тест-кейсов и работы с результатами испытаний.