Автоматизация тестирования: качество, ускорение проверок, минимизация регресса

Пишем программный код авто-тестов, который выполняет те же самые действия, которые выполняет тестировщик, проверяя в браузере. Это сокращает время, затрачиваемое на ручное тестирование (в долгосрочной перспективе), снижает риски регресса (поломка ранее разработанного функционала при добавлении нового), а так же понижает риск человеческого фактора (упущения при проверке). Как результат – улучшение качества проекта в целом.

Результат автоматизации тестирования наглядный:

  • можно записать видео как авто-тесты проводят проверку
  • авто-тесты остаются в коде проекта и могут быть подвергнуты аудиту

Авто-тесты смогут:

  • проверить все требуемые браузеры
  • проверить все поддерживаемые разрешения
  • выполняться параллельно (и за счёт этого – быстро)
  • уведомить по e-mail в случае ошибок

Преимущества нашего подхода:

  • Используем тот же язык программирования, который используется во фронтенд-коде сайта (JavaScript, TypeScript) – любой разработчик на проекте сможет писать авто-тесты
  • Связываем авто-тесты и фронтенд проекта через единый источник имен объектов. За счёт этого, когда дорабатывается внешний вид, его разработчикам всегда видно, что это может (и как) повлиять и на тесты. И наоборот
  • Делаем ставку на читаемость тестов (прочитать сможет и не-программист после быстрого ознакомления с принципами), не теряя в гибкости
  • При необходимости сможем запускать тесты на том же сервере, где работает сайт, – не нужны дополнительные ресурсы. Лишь бы сервер позволял (по мощности и возможности устанавливать дополнительное ПО)

Пример

В интернет-магазине много разных нюансов формы оформления заказа в зависимости от типа товара, выбранной доставки, метода оплаты и других параметров. Порой возникают ситуации, когда определённые комбинации параметров вызывают проблемы при оформлении. Интернет-магазин развивается, добавляются новые опции и нюансы. Сама доработка может занять день-другой, но, чтобы убедиться в корректности результата, надо проверить и все старые комбинации с учётом новой. Тестирование может занимать многие дни, при этом его нужно повторять несколько раз: после того как разработчик первично сдал функционал, после того как была проведена проверка и были внесены какие-то исправления, после публикации на тестовую среду, после публикации на продуктивную среду. При наличии автоматических тестов задача упрощается: на все предыдущие комбинации параметров уже есть тесты и они отрабатывают в пределах часа. Разработчик самостоятельно может запускать их и убеждаться в отсутствии ошибок – процесс сдачи ускоряется, т.к. становится меньше итераций между отделом разработки и отделом контроля качества.

 

Примеры проектов