Оптимизация процесса автоматизации тестирования c попутным внедрением CI/CD для продукта с нетривиальными сборкой и подходами к тестированию
Заказчик
Продуктовая IT-компания, США (Калифорния).
Продукт
Программное обеспечение для обработки интернет-трафика.
Бизнес-вызовы
Внедрённая ранее командой заказчика автоматизация тестирования не помогает стабилизировать работу динамично меняющегося, многокомпонентного веб-приложения и не даёт полной уверенности в качестве поставки новых версий, что приводит к снижению частоты релизов продукта.
Технологические особенности проекта
Автоматизация тестирования реализована командой заказчика, однако потенциал и ценность внедрённых автотестов не используется в полной мере. Созданные автотесты покрывают часть базового функционала приложения и запускаются нерегулярно, только 10% из них проходят успешно. Полный статус прохождения тестов непонятен: не сразу удаётся установить, какое падение тестов указывает на проблемы в работе приложения, а какое — на проблемы с окружением. Требуется слишком много времени на выявление причин непрохождения тестов. Запуск автотестов производится каждым специалистом вручную на отдельных серверах с разными конфигурациями.
Билд продукта занимал много времени и был завязан на одном человеке, вынужденном выполнять большое количество мануальных действий. Администрирование серверов и прохождение автоматизированных тестов было долгим и трудозатратным процессом, поэтому баги в приложении в основном выявлялись с помощью мануального тестирования, что сильно замедляло проверку качества продукта.
Подходы и решения
- Восстановление и оптимизация работы текущей системы автоматизированного тестирования.
Всё это позволило обеспечить работоспособность автотестов, возможность их быстрого изменения и поддержки в актуальном состоянии.
Результаты и достижения
- Внедрение и улучшение процессов автоматизации сборки, тестирования и поставки продукта позволило наладить регулярность релизов и ускорить их выпуск.
- Восстановлена работа и поддержка созданных командой заказчика автотестов. Весь важный функционал покрыт автотестами, автоматическая проверка качества продукта осуществляется ежедневно, что позволяет оперативно находить и исправлять баги в случае их возникновения и, как итог, обеспечивает уверенность в качестве поставляемых версий.
- Внедрена непрерывная интеграция и поставка (CI/CD), установлено и настроено окружение для автоматизации сборки и тестирования приложения. Автоматизировано максимальное количество шагов при поставке продукта конечному пользователю, исключено влияние человеческого фактора и зависимость от одного члена команды. Автоматическая сборка осуществляется ежедневно по расписанию и по требованию, что позволяет значительно сэкономить время на разработку продукта (разработчики сразу же получают фидбэк по результату коммита).
- Выстроен процесс тестирования, улучшена тестовая документация (отчёты стали более информативными и структурированными). Различные виды отчётов автоматически отправляются инженерам и менеджменту, все участники распределённой команды обладают актуальной информацией о состоянии продукта, его стабильности.
Применённые технологии

Jenkins

TestLink

Zephyr

Selenium WebDriver

Jira

Groovy

TestNG
ПОДОБНАЯ ЗАДАЧА?