Какое должно быть процентное соотношение между положительным и отрицательным тестированием на проекте?qa-145

1. Базовые принципы распределения

1.1 Общее правило

**70/30** - классическое соотношение для большинства проектов:
- 70% позитивных тестов (валидные данные, happy path)
- 30% негативных тестов (невалидные данные, edge cases)

1.2 Факторы влияния на соотношение

Фактор Сдвиг в сторону Новое соотношение
Критичность системы Негативного тестирования 60/40 (медицина, финансы)
Зрелость продукта Позитивного тестирования 80/20 (стабильные продукты)
Этап разработки Негативного тестирования 50/50 (начальные этапы)
Ресурсы Позитивного тестирования 0/10 (ограниченные ресурсы)

2. Детализация по типам тестирования

2.1 Функциональное тестирование

- **Позитивное**: 65-75%
  - Проверка бизнес-требований
  - Основные пользовательские сценарии
- **Негативное**: 25-35%
  - Валидация граничных значений
  - Обработка ошибок

2.2 API тестирование

- **Позитивное**: 60%
  - Стандартные запросы
  - Корректные данные
- **Негативное**: 40%
  - Невалидные параметры
  - Ошибочные коды состояний

3. Практический подход к определению соотношения

3.1 Методика расчета

  1. Определить количество входных параметров
  2. Выявить граничные значения для каждого
  3. Рассчитать комбинации невалидных данных
  4. Оценить риски для каждого сценария
Формула для сложных систем:
Негативные тесты = (Количество граничных значений * 2) + (Количество параметров * 3)

3.2 Пример для формы ввода

| Поле       | Валидные | Невалидные | Соотношение |
|------------|----------|------------|-------------|
| Email      | 5 тестов | 8 тестов   | 38% негативных |
| Пароль     | 3 теста  | 6 тестов   | 67% негативных |
| **Итого**  | 8        | 14         | **64% негативных** |

4. Инструменты оптимизации

4.1 Автоматизация распределения

- **Pairwise testing** (например, PICT)
- **Матрицы принятия решений**
- **Приоритизация на основе рисков**

4.2 Пример кода для автоматического распределения

def calculate_test_ratio(risk_factor):
    positive = 100 - (risk_factor * 30)
    negative = risk_factor * 30
    return (positive, negative)

5. Опасности неправильного распределения

5.1 Перекос в позитивное тестирование

❌ Пропуск критических дефектов
❌ Низкая устойчивость системы
❌ Проблемы с безопасностью

5.2 Перекос в негативное тестирование

❌ Замедление разработки
❌ Неоправданные затраты
❌ Потеря фокуса на основных сценариях

Резюмируем:

идеальное соотношение зависит от контекста проекта, но должно осознанно рассчитываться на основе анализа рисков, критичности системы и этапа разработки. Регулярный пересмотр баланса - ключ к эффективному тестированию.