Ответ
Решение о завершении тестирования — это взвешенная оценка рисков, основанная на заранее определенных и измеримых критериях (Exit Criteria).
Ключевые факторы:
- Выполнение критериев завершения (Exit Criteria):
- Достигнут целевой процент покрытия кода тестами.
- Все запланированные тестовые сценарии выполнены.
- Выполнены требования к качеству: отсутствуют открытые баги с приоритетами Blocker/Critical, количество багов High/Medium ниже установленного порога.
- Оценка рисков: Анализ потенциального воздействия необнаруженных багов на бизнес и пользователей. Приемлемый уровень риска согласуется с продукт-менеджером.
- Ограничения по срокам и бюджету: Реальные сроки релиза могут диктовать окончание тестовой фазы.
- Стабильность продукта: Частота появления новых багов снизилась до минимума, основные функциональные потоки работают стабильно.
Пример формализации критериев (псевдокод):
def should_stop_testing(project_metrics, risk_profile="standard"):
exit_criteria = {
"test_execution": project_metrics.percent_tests_executed >= 100,
"critical_bugs": project_metrics.open_critical_bugs == 0,
"high_priority_bugs": project_metrics.open_high_bugs <= 3,
"new_bug_rate": project_metrics.new_bugs_last_week < 5
}
# Для высокорисковых проектов критерии строже
if risk_profile == "high":
exit_criteria["high_priority_bugs"] = 0
return all(exit_criteria.values())
Решение принимается совместно QA-лидом, менеджером проекта и продукт-менеджером.