Как ускорить регрессионное тестирование

Для начала напомним определение регрессионного тестирования. Это такой тип тестирования, которое проверяет, что апдейты (то есть модификации кода), не ухудшили существовавшую функциональность приложения. Регресс — это о том, что приложение работает как ожидалось, несмотря на изменения, модификации и обновления кода.

Регрессионное тестирование — один из важнейших этапов тестирования, и у такого тестирования есть узкие места. В частности, нестабильность тестов, и сложности с их корректированием. Существуют стратегии и лучшие практики, которые позволяют ускорить регресс, возможно, в несколько раз.

Каждый flow должен автоматизироваться независимо

Автотесты не должны зависеть от результатов предыдущих тестов, и от данных, созданных в предыдущих тестах (что часто делается и не считается плохой практикой). Правильные регрессионные тесты не зависят друг от друга и от порядка их выполнения. Независимо от того, запускается ли тест отдельно или в сьюте, всегда будут надежные результаты.

Тщательнее подбирать селекторы

Автотесты получаются нестабильными, когда в них включены часто изменяющиеся элементы. Что понятно: продолжается разработка, команда работает над кодом, непрерывно обновляет его. Чтобы избежать проблем и ускорить регресс, желательно внимательнее относиться к подбору селекторов, и применять селекторы, специфичные для конкретного теста.

Частые апдейты чек-листа

В стандартной процедуре регресс-тестирования большинства модулей применяются low-levelчеклисты. Они пишутся на основе мокапов и требований. Но если требования обновлены, и появились новые функции в софте, чек-листы должны быть тоже обновлены, и желательно раньше. Полезная практика: в процессе регрессионного тестирования делать эпизодические паузы для работы с документацией. Это поможет освежить процесс.

Включение исследовательского тестирования

Если одни и те же тесты делаются по чек-листу каждый день, будет полезно применять в процессе исследовательское тестирование — так регрессы будут более продуктивны (да и интересны). Это поможет команде “подняться на уровень выше” стандартных чек-листов, посмотреть на свои тест-кейсы с новой точки зрения. Большие тест-кейсы можно будет “прокачать”, найти в них проблемные места. Если в регрессы включены исследовательские процедуры, будет меньше утомления от рутинной работы.

Тестовое окружение

Рутинный регресс  постепенно вырабатывает “туннельное зрение”, снижается внимательность к деталям, у команды пропадает энтузиазм. Чтобы укрепить интерес тестировщиков, можно периодически менять тестовое окружение, и тестировать на разных девайсах, браузерах и платформах. Например регресс делается один день на Windows/Firefox, на следующий день на Мас, на следующий на Linux. Таким образом баги, специфичные для платформы, девайса, и браузера, более легко отслеживаются.

Ускорение регрессионных тестов в Agile

Теперь, как ускорить регресс, рассматривая его с точки зрения правильного Agile.

Эджайл, как известно, это революция в разработке (по крайней мере так считают многие). Характерны непрерывные апдейты, постоянная оглядка на поступающий пользовательский фидбэк, ускорение выхода приложений на рынок, и заметно выше эффективность инвестиций (ROI).

В этой методологии есть тонкие места, например сочетание принятых регрессионных практик с Agile-спринтами. Эти места надо знать и уделять внимание, чтобы не терялась продуктивность.

Известные проблемы регрессионного тестирования в условиях Agile:

  1. Малая сосредоточенность, рутина. Случается, что тестировщик/разработчик из-за рутинности процесса теряет внимательность при контроле регрессионных тест-кейсов. Это вызывает проблемы на продакшене, и повышает издержки в проекте.
  2. Тратится много времени и усилий. Понятно, что в Agile идет много времени на регрессионное тестирование, особенно на больших проектах. В некоторых ситуациях весь спринт уходит на регрессы, и это нехорошо (и дорого).

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

Применяются такие методы:.

Уточнение действий при регрессионном тестировании. Действия делят на две части:

  • Полный регресс. То есть полное регрессионное тестирование, выполняемое QA-отделом до релиза, чтобы убедиться, что приложение работает.
  • Итеративный регресс. В конце каждого спринта выполняется итеративный регресс. Фокус на функциях и апдейтах в приложении, и точках приложения, которые могли “пострадать” от апдейтов.

Чтобы получить максимальный профит от этого метода, должна быть обеспечена качественная коммуникация внутри QA-команды, и с другими командами на проекте.

Приоретизация тестов, исходя из рисков.

В этом методе тесты группируются по приоритетам:

Высокий приоритет. Общее количество регрессионных тест-кейсов с таким приоритетом — около 10%. Это критически важные модули и функции. Стараются найти места потенциальных дефектов, и проверяют модули, где особенно часты были обновления. Это выполняется в первую очередь.

Средний приоритет. Общее количество таких тестов — около 30%. Тест-кейсы с граничными значениями, негативные тест-кейсы и пр. На этом этапе тест-кейсы нацелены на некие “стандартные” для этого приложения баги, которые часто находили в прошлых релизах.

Низний приоритет. Оставшиеся 60% тест-кейсов, проверяется “остаток” функциональности приложения, не такой критически важный.

Больше сотрудничества в приоритизации тестов. Все члены QA-команды могут высказывать свою личную точку зрения о приоритетах, исходя из опыта и компетенций. Каждое изменение в коде проверяется всей командой.

***

Также на сайте:

Какой была ваша первая зарплата в QA и как вы искали первую работу?

Мега обсуждение в нашем телеграм-канале о поиске первой работы. Обмен опытом и мнения.

Подписаться
Уведомить о
guest

0 комментариев
Межтекстовые Отзывы
Посмотреть все комментарии

Мы в Telegram

Наш официальный канал
Полезные материалы и тесты
Готовимся к собеседованию
Project- и Product-менеджмент

? Популярное

? Telegram-обсуждения

Наши подписчики обсуждают, как искали первую работу в QA. Некоторые ищут ее прямо сейчас.
Наши подписчики рассказывают о том, как не бояться задавать тупые вопросы и чувствовать себя уверенно в новой команде.
Обсуждаем, куда лучше податься - в менеджмент или по технической ветке?
Говорим о конфликтных ситуациях в команде и о том, как их избежать
$1100*
медианная зарплата в QA в июне 2023

*по результатам опроса QA-инженеров в нашем телеграм-канале

Собеседование

19%*
IT-специалистов переехало или приняло решение о переезде из России по состоянию на конец марта 2022

*по результатам опроса в нашем телеграм-канале

live

Обсуждают сейчас