Ответ
Для одного входного параметра по технике Анализа Граничных Значений (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)**.