Эквивалентное разделение (Equivalence Partitioning)

Эквивалентное разделение (Equivalence Partitioning)

Введение

Поле «возраст» принимает числа от 18 до 65. Ты можешь ввести 18, 19, 20, 21... 65 — 48 вариантов только в допустимом диапазоне. Тестировать все 48 бессмысленно: если 25 работает, то 26 тоже работает. Они ведут себя одинаково.

Эквивалентное разделение — техника, которая делит входные данные на разделы (классы эквивалентности), внутри каждого из которых система ведёт себя одинаково. Достаточно протестировать одно значение из каждого раздела.


Принцип: разделы и их виды

Классы эквивалентности: валидная и невалидные зоны

Каждый набор входных данных делится минимум на два типа разделов:

  • Валидные разделы — данные, которые система должна принять и обработать корректно
  • Невалидные разделы — данные, которые система должна отклонить с ошибкой

Пример: поле «Возраст» (допустимо 18–65)

РазделДиапазонПредставительТип
Слишком молодой< 1810Невалидный
Допустимый возраст18–6535Валидный
Слишком старый> 6580Невалидный

Вместо 100+ вариантов — 3 теста. Каждый представитель «представляет» весь свой раздел.


Пример: текстовое поле «Имя»

Требования: только буквы, от 2 до 50 символов.

РазделПримерТип
Пустая строка""Невалидный
Слишком короткое (1 символ)"A"Невалидный
Валидное имя"Мария"Валидный
Слишком длинное (51+ символов)60 буквНевалидный
Цифры в имени"User123"Невалидный
Спецсимволы"<script>"Невалидный

Итого: 6 разделов → 6 тестов вместо бесконечного числа вариантов.


Правило: один тест = один раздел

Тестируй ровно одно значение из каждого раздела. Два значения из одного раздела — это дублирование, не дополнительное покрытие.

Плохо: тестировать 35 и 40 для «допустимого возраста» (оба из одного раздела). Хорошо: тестировать 35 (один валидный), 10 (один невалидный малый), 80 (один невалидный большой).


Как выделить разделы: пошагово

  1. Прочитай требования к полю/функции
  2. Выпиши допустимые значения → это валидный раздел (или несколько)
  3. Выпиши всё, что за пределами допустимого → это невалидные разделы
  4. Если есть несколько разных типов ошибок (пустая строка, слишком длинное, неверный формат) — каждый тип = отдельный раздел
  5. Выбери по одному представителю из каждого раздела

Преимущества техники

  • Резко сокращает количество тест-кейсов при сохранении покрытия
  • Систематизирует мышление: ты думаешь разделами, а не отдельными значениями
  • Легко объяснить команде и заказчику

Частые ошибки

  • Тестировать только валидные разделы — невалидные раскрывают разные классы ошибок
  • Делать один огромный «валидный» раздел вместо нескольких — иногда внутри «допустимых» данных поведение различается
  • Выбирать значения случайно, а не представительные для раздела

Что мы запомним

  • Эквивалентное разделение делит данные на группы с одинаковым поведением
  • Тестируй по одному значению из каждого раздела — остальные избыточны
  • Всегда есть валидные И невалидные разделы — тестируй и те, и другие
  • Техника применяется к любому полю ввода: числа, строки, даты, списки

Попробуйте интерактивную версию

Практические задачи, квизы и AI-наставник — бесплатный старт без карты

Перейти к практике