Ответ
Топ-3 метрики для мониторинга качества тестирования:
1. Стабильность тестов (Test Stability/Flakiness Rate)
Зачем: Определяет надёжность тестовой системы. Нестабильные тесты снижают доверие к результатам.
Как считать:
Flakiness Rate = (Количество нестабильных прогонов / Всего прогонов) × 100%
Пример мониторинга:
# Анализ истории выполнения теста
def analyze_test_stability(test_runs):
total_runs = len(test_runs)
flaky_runs = sum(1 for run in test_runs
if run['result'] not in ['PASSED', 'FAILED'])
stability = ((total_runs - flaky_runs) / total_runs) * 100
return f"Stability: {stability:.1f}%"
2. Скорость обратной связи (Feedback Time)
Зачем: Время от коммита до результата тестов. Критично для CI/CD.
Целевые значения:
- Unit-тесты: < 5 минут
- Интеграционные: < 15 минут
- E2E: < 30 минут
Оптимизация:
- Параллельный запуск тестов
- Сегментация по приоритету
- Использование кэширования зависимостей
3. Покрытие критического функционала (Critical Path Coverage)
Зачем: Гарантирует, что основные пользовательские сценарии защищены тестами.
Как измерять:
Critical Coverage = (Тестируемые крит. сценарии / Все крит. сценарии) × 100%
Пример трекинга:
critical_scenarios:
- user_registration
- checkout_process
- payment_processing
tested_scenarios:
- user_registration: ✅
- checkout_process: ✅
- payment_processing: ⏳
coverage: 66% # 2 из 3 протестированы
Дополнительные метрики для рассмотрения:
- Defect Escape Rate — баги, пропущенные тестами
- Test Maintenance Cost — время на поддержку тестов
- Automation ROI — экономия от автоматизации