При выборе тестов для регрессионного тестирования я ориентируюсь на следующие критерии:
- Тесты, покрывающие критические бизнес-процессы: Проверяют основные функции, от которых зависит работа системы.
- Тесты, покрывающие области с наибольшим количеством изменений: Фокусируются на частях системы, затронутых последними изменениями или доработками.
- Тесты, покрывающие области с высокой частотой возникновения дефектов: Включают сценарии, где ранее были выявлены дефекты.
- Тесты, покрывающие новые функциональности: Проверяют корректность работы добавленных возможностей и их интеграцию с существующей системой.
- Тесты, покрывающие интеграцию между модулями: Убеждаются, что различные части системы взаимодействуют правильно.
- Тесты, покрывающие самые сложные и рискованные части системы: Направлены на наиболее нестабильные участки, где высока вероятность возникновения проблем.
- Тесты, которые автоматизированы: Автоматизированные тесты являются идеальным выбором для регрессии из-за своей скорости и надежности.
Для эффективного выбора тестов я также использую:
- Анализ изменений в кодовой базе.
- Данные об истории дефектов и их локализации.
- Приоритизацию функциональностей с участием продакт-менеджмента.
- Результаты предыдущих прогонов регрессионных тестов.
В зависимости от масштаба изменений и доступных ресурсов, я могу выбрать полный набор регрессионных тестов или поднабор (smoke, sanity). При выборе поднабора я отдаю предпочтение тестам, покрывающим основные и наиболее рискованные сценарии.
Пример структуры папок с регрессионными тестами (для автоматизированных):
python