**70/30** - классическое соотношение для большинства проектов:
- 70% позитивных тестов (валидные данные, happy path)
- 30% негативных тестов (невалидные данные, edge cases)
Фактор | Сдвиг в сторону | Новое соотношение |
---|---|---|
Критичность системы | Негативного тестирования | 60/40 (медицина, финансы) |
Зрелость продукта | Позитивного тестирования | 80/20 (стабильные продукты) |
Этап разработки | Негативного тестирования | 50/50 (начальные этапы) |
Ресурсы | Позитивного тестирования | 0/10 (ограниченные ресурсы) |
- **Позитивное**: 65-75%
- Проверка бизнес-требований
- Основные пользовательские сценарии
- **Негативное**: 25-35%
- Валидация граничных значений
- Обработка ошибок
- **Позитивное**: 60%
- Стандартные запросы
- Корректные данные
- **Негативное**: 40%
- Невалидные параметры
- Ошибочные коды состояний
Формула для сложных систем:
Негативные тесты = (Количество граничных значений * 2) + (Количество параметров * 3)
| Поле | Валидные | Невалидные | Соотношение |
|------------|----------|------------|-------------|
| Email | 5 тестов | 8 тестов | 38% негативных |
| Пароль | 3 теста | 6 тестов | 67% негативных |
| **Итого** | 8 | 14 | **64% негативных** |
- **Pairwise testing** (например, PICT)
- **Матрицы принятия решений**
- **Приоритизация на основе рисков**
def calculate_test_ratio(risk_factor):
positive = 100 - (risk_factor * 30)
negative = risk_factor * 30
return (positive, negative)
❌ Пропуск критических дефектов
❌ Низкая устойчивость системы
❌ Проблемы с безопасностью
❌ Замедление разработки
❌ Неоправданные затраты
❌ Потеря фокуса на основных сценариях
идеальное соотношение зависит от контекста проекта, но должно осознанно рассчитываться на основе анализа рисков, критичности системы и этапа разработки. Регулярный пересмотр баланса - ключ к эффективному тестированию.