Что такое техника эквивалентного разбиения?

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

Ответ

Техника эквивалентного разбиения (Equivalence Partitioning) — это метод тест-дизайна, при котором все возможные входные данные разбиваются на группы (классы эквивалентности), где поведение системы ожидается одинаковым. Вместо тестирования всех значений из группы тестируется только одно-два представительных значения, что сокращает количество тест-кейсов без потери покрытия.

Пример: Поле для ввода возраста, принимающее значения от 1 до 120 лет.

  1. Валидный класс эквивалентности: Любое значение от 1 до 120 (например, 30). Ожидается успешная обработка.
  2. Невалидные классы эквивалентности:
    • Значения меньше 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)

Преимущества:

  • Эффективность: Резко сокращает количество необходимых тестов.
  • Систематичность: Гарантирует покрытие всех значимых типов входных данных.
  • Снижает дублирование: Избегает тестирования множества значений с одинаковым ожидаемым результатом.