В наши дни, когда мы говорим о запуске автотестов, мы чаще всего подразумеваем их выполнение в контексте Continuous Integration (CI). Обычно QA-инженеры концентрируются на подготовке самих тестов и тестового фреймворка, а инструменты CI рассматриваются как что-то, куда надо просто вставить тесты. Зачастую CI-инструменты отданы на откуп DevOps-инженерам и разработчикам. Тем не менее навыки и понимание работы на уровне CI позволяют QA-инженерам улучшать подходы управлением автоматизацией.
В Evolution Engineering используют Jenkins — популярную open source-систему, в которой много функциональности реализовано через плагины. Раньше было много настроенных вручную Jenkins-билдов для регрессионных тестов и их поддержка, и расширение были неудобным, неэффективным. В компании Вячеслава внедрили автоматизацию Jenkins, которая позволила полностью настраивать его через код. Это позволило ускорить создание новых билдов и улучшило их поддержку, а также подтолкнуло развитие экспертизы CI/CD среди QA-инженеров.
Сейчас Evolution Engineering активно двигается в сторону Continuous Delivery (CD) и старый подход с регрессионными E2E-тестами их уже не устраивает. Одним из самых сложных мест с большими потребностями автоматизации был фронтенд, который хранится в монорепозитории, над которым работает около 200 инженеров. Чтобы улучшить и ускорить тестирование, команда сконцентрировалась на проверках конкретных изменений кода и интеграции автоматизации с процессом ревью кода в GitLab. У Jenkins есть Gitlab Plugin, обеспечивающий базовую интеграцию, а еще GitLab предоставляет богатый API-интерфейс. Команда подключила разнообразные Jenkins-билды (тесты и не только) к Merge Requests: они запускаются на разные события и дают уверенность в том, что код был достаточно хорошо проверен. Комментарии в Merge Request используются как интерфейс вывода всей информации по проверкам, так и чтобы запускать и перезапускать билды. В итоге получилась экосистема автоматизации вокруг возможностей Gitlab и Jenkins, которую в Evolution Engineering постоянно наращивают и улучшают, и это позволяет выпускать новые версии игрового фронтенда в продукцию на ежедневной основе.