Ответ
Нет, запуск полного регрессионного набора каждый день обычно нерационален. Это требует значительных вычислительных ресурсов и времени. Вместо этого применяют стратегические подходы:
-
Многоуровневое тестирование (Test Pyramid):
- Ежедневно/при каждом коммите: Запускаются быстрые модульные (Unit) и интеграционные тесты — это основа пирамиды.
- Ночью/перед релизом: Запускаются более медленные E2E и регрессионные тесты.
-
Селективный запуск регрессии (Test Impact Analysis):
- Современные CI/CD-системы (например, с помощью инструментов вроде
git diff) могут определять, какие модули кода были изменены, и запускать только те регрессионные тесты, которые с ними связаны.
- Современные CI/CD-системы (например, с помощью инструментов вроде
-
Параллельный запуск и оптимизация:
- Длинные тестовые наборы разбиваются на группы и выполняются параллельно на нескольких агентах, что сокращает общее время.
Практическое правило: Полный регрессионный прогон выполняется для стабилизации ветки перед мержем в main, перед выходом major-версии или после критических изменений в архитектуре. Ежедневная же цель — быстро получить обратную связь по последним изменениям через сфокусированные тесты.
Ответ 18+ 🔞
Да ты послушай, что эти умники понапридумывали! Ну, типа, каждый день гонять ВЕСЬ регресс — это ж ебать мои старые костыли, мартышлюшка! Это как пытаться каждый вечер всю квартиру с белизной отдраить, пока ты просто чашку из раковины убрал. Ресурсов дохуя, времени ноль, а толку?
Вот как умные люди делают, чтобы не обосраться:
-
Пирамида тестирования, мать её. Представь себе пирамиду, да?
- Каждый день, после каждого чиха в коде: Гоняются модульные (Unit) и интеграционные тесты. Быстро, чётко, как швейцарские часы. Основание пирамиды, ёпта! Если тут всё зелёное — можно спать спокойно.
- Ночью или перед тем как выкатить народу: Вот тут уже подключаются медленные E2E и регрессионные тесты. Пусть себе ползают, как черепахи, пока все спят. Это верхушка пирамиды, её не каждый день таскают.
-
Селективный отбор, хитрая жопа! Современные системы CI/CD — они ж не лыком шиты. Глянули
git diff, поняли, что ты там в файлеUserService.javaнакосячил, и запустят только те регрессионные тесты, которые с этим сервисом связаны. Остальные — отдыхают. Гениально и просто, как хуй с горы! -
Параллельный ад. Если уж надо прогнать много, то длинный-предлинный набор режут на куски и гоняют одновременно на куче агентов. Вместо восьми часов — получас. Волшебство, блядь!
А теперь золотое правило, в рот меня чих-пых: Полный регресс — это как генеральная уборка перед приездом тёщи. Делаешь её только перед смерчем кода в основную ветку (main), перед крупным релизом или после таких изменений, после которых сам от себя охуел. А ежедневная задача — не устроить апокалипсис, а быстро понять, не сломал ли ты то, что работало пять минут назад. Всё гениальное — просто, как этот твой Герасим, который только «Муму» и мычал.