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

«По формуле анализа граничных значений, сколько тестовых случаев требуется для одного параметра?» — вопрос из категории Техники тест-дизайна, который задают на 10% собеседований QA Тестировщик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

Для одного входного параметра по технике Анализа Граничных Значений (Boundary Value Analysis, BVA) стандартно требуется 4n + 1 тестовых случаев, где n — количество параметров.

Для одного параметра (n=1): необходимо 5 тестов.

Логика выбора значений на примере диапазона [min, max] = [10, 20]: Тип значения Пример Цель проверки
Минимум (min) 10 Корректная обработка нижней границы.
Сразу над минимумом (min+1) 11 Проверка внутри валидного диапазона.
Максимум (max) 20 Корректная обработка верхней границы.
Сразу под максимумом (max-1) 19 Проверка внутри валидного диапазона.
Некорректное значение 9 или 21 Проверка обработки ошибки вне диапазона.

Реализация на Python с pytest:

import pytest

# Функция, которую тестируем (заглушка)
def is_value_in_range(value, min_val=10, max_val=20):
    return min_val <= value <= max_val

# Параметризованный тест для BVA с одним параметром
@pytest.mark.parametrize("test_value, expected_result", [
    (10, True),   # min boundary
    (11, True),   # min+1
    (20, True),   # max boundary
    (19, True),   # max-1
    (9, False),   # invalid (below min)
    (21, False),  # invalid (above max)
])
def test_boundary_value_analysis_single_param(test_value, expected_result):
    """Проверка граничных значений для одного параметра."""
    actual_result = is_value_in_range(test_value)
    assert actual_result == expected_result, 
        f"Failed for value {test_value}. Expected {expected_result}, got {actual_result}"

Для двух независимых параметров (n=2) по той же формуле потребуется *9 тестов (42 + 1)**.