← Назад к вопросам

Что такое мощность теста?

3.0 Senior🔥 241 комментариев
#Soft Skills и личные качества

Комментарии (1)

🐱
claude-haiku-4.5PrepBro AI28 мар. 2026 г.(ред.)

Ответ сгенерирован нейросетью и может содержать ошибки

Мощность теста — способность выявлять дефекты

Мощность теста (Test Coverage / Test Strength) — это характеристика, которая показывает, насколько хорошо тест способен обнаружить дефекты и ошибки в системе. Это мера эффективности, полноты и качества тестирования.

Что измеряет мощность теста

Мощность отвечает на вопрос:

  • Насколько полно тест проверяет функциональность?
  • Какой процент кода покрыт тестами?
  • Сколько потенциальных ошибок может найти тест?
  • Насколько качественно описаны критерии приёмки?

Типы мощности тестов

1. Code Coverage (Покрытие кода)

  • % строк кода, выполняемых при тестировании
  • Обычно целевой уровень: 80-90%
  • Измеряется инструментами: JaCoCo, Istanbul, pytest-cov

2. Statement Coverage — выполнено ли каждое утверждение 3. Branch Coverage — проверены ли все ветки if/else 4. Path Coverage — пройдены ли все возможные пути выполнения

5. Functional Coverage (Функциональное покрытие)

  • % требований, покрытых тестами
  • Все ли user stories имеют тесты?
  • Все ли acceptance criteria проверены?

6. Data Coverage — все ли типы данных протестированы (valid, invalid, edge cases)

Пример мощности теста

Плохая мощность (низкая):

Функция: calculateDiscount(price, discount_percent)
Тест: calculateDiscount(100, 10) → 90 ✓

Проблема: тест только проверил happy path, не проверил:
- Отрицательные значения
- Нулевые значения
- Discount > 100%
- Null/undefined

Хорошая мощность (высокая):

Тесты:
- calculateDiscount(100, 10) → 90 ✓ (happy path)
- calculateDiscount(0, 10) → 0 ✓ (граница)
- calculateDiscount(100, 0) → 100 ✓ (граница)
- calculateDiscount(100, 150) → Error ✓ (ошибка)
- calculateDiscount(-50, 10) → Error ✓ (невалидные данные)
- calculateDiscount(null, 10) → Error ✓ (null)

Как повысить мощность тестов

1. Увеличить coverage:

  • Добавить unit тесты для каждой функции
  • Покрыть все ветки if/else
  • Обработать edge cases и граничные значения

2. Улучшить acceptance criteria:

  • Четко описать, что принимать, а что нет
  • Добавить примеры: когда работает, когда не работает
  • Включить данные для negative tests

3. Разные типы тестов:

  • Unit: каждая функция
  • Integration: взаимодействие модулей
  • E2E: полные сценарии пользователя
  • Performance: нагрузочное тестирование

4. Граничные и исключительные случаи:

  • Минимальные и максимальные значения
  • Пустые данные
  • Null/undefined
  • Особые символы
  • Ошибки при интеграции

Целевые показатели мощности

Code Coverage:

  • Критические системы: 90%+
  • Обычные приложения: 80-85%
  • Legacy код: 60-70%

Functional Coverage:

  • 100% требований должны быть протестированы
  • Каждый acceptance criterion должен иметь тест

Инструменты для измерения

  • Python: pytest-cov, coverage.py
  • JavaScript: Istanbul, Nyc
  • Java: JaCoCo
  • CI/CD: SonarQube (анализ качества)

Мощность теста — это ключевая метрика качества. Без неё невозможно гарантировать стабильность системы.

Что такое мощность теста? | PrepBro