Чувствую себя изобретателем велосипеда. И долго думал, стоит ли писать, о том, что мне кажется самоочевидным. Но очередной раз столкнулся с тем, что, с упорством достойным лучшего применения, так не делают.

И так ситуация: e-commerce в транспорте / туризме / индустрии гостеприимства. Разрабатывали, разрабатывали и вот уже — сквозные бизнес-процессы, множество систем, все как положено в большом e-commerce.

image

Но вот проблема:

  • Все большие системы состоят из нескольких систем;
  • Каждую разрабатывает / актуализирует / сопровождает отдельный разработчик;
  • Каждый разработчик в среднем раз в месяц обновляет ППО и самостоятельно контролирует качество своего решения.

И кто обеспечивает качество бизнес-процесса? Эксплуатант раз, а потом другой, устроил вопль при оплате счетов, с аргументом: «ну и что, что ваша система работает, пользоваться то нельзя».

Тестировать за смежников не хочется, но сдаваться и получать оплату хочется. Так мы начали писать сквозную систему автотестирования – испытания не системы, а целиком бизнес-процессов электронной коммерции (с участием нескольких систем, от нескольких поставщиков). Такая большая система, которая ходит по сквозным БП, заглядывает во все системы: от веб-консоли, до чтения записей из БД:

image

И вот что у нас получилось:

Что умеет система:


1. Комплексные испытания – проверка функционала всех БП e-commerce с целью:

  • Выявления ошибок;
  • Проверка интеграции;
  • Разбор отклонения;

image

image

  • Проверка логики;
  • Проверка сумм;

image

  • Анализ PNR в GDS;
  • Анализ записей о доп. услугах в БД;
  • Проверка отображения элементов в экранных формах.

image

2. Подготовка отчетности

Обработка скриншотов:

  • Идентификаторы заказов/статуса/шага прохождения в именах файлов;
  • Группировка скришотов в файловом хранилище по разделам испытаний.

image

Набор отчетов:

  • Сводный отчет по отклонениям — с ссылками на пошаговое прохождение, расшифровкой (формат – Excel)
  • Сводный отчет о некритичных отклонениях — расшифровкой и ссылками на пошаговое описание (формат – Excel)
  • «Красивый» отчет для сдачи отчетности, с как корректными прохождениями, так отклонениями (формат – Excel)

3. Нагрузочные испытания – массовое повторение однотипных тест-кейсов, с целью:

  • выявление периодических ошибок;
  • имитации нагрузки.

image

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 – средство управления исполнения тест-кейсов и работы с результатами испытаний.