Ответ
Техника эквивалентного разбиения (Equivalence Partitioning) — это метод тест-дизайна, при котором все возможные входные данные разбиваются на группы (классы эквивалентности), где поведение системы ожидается одинаковым. Вместо тестирования всех значений из группы тестируется только одно-два представительных значения, что сокращает количество тест-кейсов без потери покрытия.
Пример: Поле для ввода возраста, принимающее значения от 1 до 120 лет.
- Валидный класс эквивалентности: Любое значение от 1 до 120 (например, 30). Ожидается успешная обработка.
- Невалидные классы эквивалентности:
- Значения меньше 1 (например, 0, -5). Ожидается ошибка.
- Значения больше 120 (например, 121, 200). Ожидается ошибка.
# Пример функции валидации
def validate_age(age: int) -> bool:
"""Возвращает True, если возраст валиден."""
return 1 <= age <= 120
# Тестируем по одному значению из каждого класса
assert validate_age(30) == True # Валидный класс
assert validate_age(0) == False # Невалидный класс (<1)
assert validate_age(150) == False # Невалидный класс (>120)
Преимущества:
- Эффективность: Резко сокращает количество необходимых тестов.
- Систематичность: Гарантирует покрытие всех значимых типов входных данных.
- Снижает дублирование: Избегает тестирования множества значений с одинаковым ожидаемым результатом.