Эквивалентное разбиение (equivalence partitioning, EP) — техника тест-дизайна «чёрного ящика», при которой входные данные делят на классы эквивалентности: группы значений, которые программа по спецификации обрабатывает одинаково. Из каждого класса берут одного представителя — этого достаточно, чтобы проверить весь класс. Так число тест-кейсов падает без потери покрытия.
Коротко, что даёт техника и как её применить:
- Делит вход на валидные и невалидные классы эквивалентности.
- По одному значению из класса заменяет десятки однотипных проверок.
- Работает в паре с анализом граничных значений (BVA), который добивает крайние точки классов.
- Применяется на компонентном, интеграционном и системном уровнях.
- Главный риск — неверно выделенные классы, поэтому опору берут из спецификации, а не из интуиции.
Обновлено в 2026 году.
Что такое эквивалентное разбиение и классы эквивалентности
Эквивалентное разбиение (его же называют разбиением или разделением на классы эквивалентности) исходит из простого допущения: если система корректно обработала одно значение из группы, она так же корректно обработает и остальные значения этой группы. И наоборот — если одно значение вызывает ошибку, её вызовут и соседние. По определению ISTQB, класс эквивалентности — это часть области входных или выходных данных, для которой поведение компонента или системы предполагается одинаковым на основе спецификации.
Классы делят на два типа:
- Валидные (допустимые) — значения, которые система должна принять и обработать штатно. Для поля «сумма заказа от 0» это любое неотрицательное число.
- Невалидные (недопустимые) — значения, которые система обязана отклонить или обработать как ошибку: отрицательные числа, буквы в числовом поле, пустой ввод, превышение лимита.
Смысл разбиения — не проверять каждое значение подряд. Поле, принимающее числа от 1 до 100, теоретически требует сотни проверок. Разбив диапазон на классы, вы сводите их к нескольким тестам: по одному представителю на класс. Это и есть экономия, ради которой технику держат в базовом наборе тест-дизайна.

- Возможность получить Доступ в Нейроклуб на целый месяц
- Как ИИ ускоряет работу и приносит деньги
- За 2 часа вы получите четкий план, как начать работать с ИИ прямо сейчас!
Пошаговый пример эквивалентного разбиения: поле «возраст 18–60»

Разберём технику на конкретном поле ввода. Форма регистрации принимает возраст пользователя, допустимый диапазон по спецификации — от 18 до 60 лет включительно. Проходим эквивалентное разбиение по шагам.
- Читаем спецификацию. Фиксируем правило: валидны целые числа 18–60, всё остальное — отклоняется.
- Выделяем валидный класс. Значения 18–60 — одна группа, система ведёт себя одинаково для любого числа внутри неё.
- Выделяем невалидные классы. Их два по диапазону: меньше 18 (например, 0–17) и больше 60 (например, 61–120). Плюс отдельные классы по типу данных: отрицательные числа, дробные, буквы, пустое поле.
- Берём по представителю. Из валидного класса — например, 35. Из «меньше 18» — 10. Из «больше 60» — 75. Из нечисловых — «abc».
- Собираем тест-кейсы. Каждый представитель превращается в проверку с ожидаемым результатом: принято или отклонено с сообщением об ошибке.
Классы эквивалентности для поля «возраст 18–60» удобно свести в таблицу:
| Класс эквивалентности | Тип | Представитель | Ожидаемый результат |
|---|---|---|---|
| Возраст 18–60 | Валидный | 35 | Принято |
| Возраст 0–17 | Невалидный | 10 | Отклонено: «меньше 18» |
| Возраст 61 и выше | Невалидный | 75 | Отклонено: «больше 60» |
| Отрицательные числа | Невалидный | −5 | Отклонено |
| Нечисловой ввод | Невалидный | «abc» | Отклонено: «только цифры» |
| Пустое поле | Невалидный | « » | Отклонено: «заполните поле» |
Пять–шесть тестов вместо перебора всех чисел от 0 до 120 — при этом каждая логическая ветка поведения формы проверена. В этом вся выгода эквивалентного разбиения.
Связь эквивалентного разбиения с анализом граничных значений
Эквивалентное разбиение показывает, что дефекты живут не только в центре классов, но и на их стыках. Именно там работает вторая техника — анализ граничных значений (boundary value analysis, BVA). Она проверяет значения на границах классов, потому что ошибки чаще всего скапливаются в точках перехода: перепутанный знак «больше» и «больше либо равно», сдвиг на единицу.
Для поля «возраст 18–60» границы дают дополнительные проверки: 17 и 18 (нижняя граница), 60 и 61 (верхняя). Классический промах — протестировать только «удобные» значения 20, 35, 50 и пропустить, что форма ошибочно отклоняет ровно 18 или принимает 61. Разбиение отвечает на вопрос «какие группы значений есть», граничный анализ — «где эти группы ломаются». Вместе они закрывают и типичные, и крайние случаи, поэтому в тест-дизайне их применяют связкой, а не по отдельности.
Как применять эквивалентное разбиение в тест-дизайне
Техника не привязана к одному этапу и работает на разных уровнях тестирования.
- Компонентное (модульное) тестирование. Здесь разбиение помогает проверить отдельную функцию или поле ввода с учётом всех классов и выловить дефекты на ранней стадии, пока правка стоит дёшево.
- Интеграционное тестирование. Технику применяют к данным, которые передаются между компонентами: классы эквивалентности строят по контракту интерфейса и проверяют, что модули корректно обмениваются валидными и невалидными значениями.
- Системное тестирование. На уровне всей системы разбиение используют для сценариев целиком — от формы ввода до итогового результата, покрывая ключевые ветки поведения без комбинаторного взрыва.
Разбиение применимо не только к диапазонам чисел. Классы строят по спискам (допустимые статусы заказа), по форматам (корректный и битый email), по логическим условиям — везде, где вход можно разложить на группы с одинаковым ожидаемым поведением.
Как выбрать представителя класса эквивалентности
Техника разрешает взять любое значение из класса, но на практике представителя выбирают осознанно — от этого зависит, найдётся ли дефект.
- Из валидного класса берут «обычное» значение из середины диапазона: для возраста 18–60 это 35, а не 19. Крайние точки оставляют граничному анализу.
- Из невалидного класса берут значение, которое явно нарушает правило, но правдоподобно для пользователя: не «−99999», а «−5» или «0» — такие данные реально вводят.
- Один представитель — один класс. Не пытайтесь одним значением закрыть два класса сразу: тест станет неоднозначным, и при падении будет неясно, какое именно правило сломалось.
- Разные классы данных не смешивают. Пустое поле, пробел, буквы и спецсимволы — это разные невалидные классы, и представитель нужен от каждого.
Мини-вывод: осмысленный представитель делает тест воспроизводимым и объяснимым, а таблица классов — самодокументируемой.
Плюсы и ограничения техники
Сильные стороны:
- Резко сокращает число тест-кейсов при том же покрытии — меньше рутины, быстрее прогон.
- Не требует доступа к коду: это техника «чёрного ящика», достаточно спецификации.
- Хорошо документирует логику: таблица классов сама по себе объясняет, что и зачем проверяется.
- Легко комбинируется с граничным анализом и таблицами решений.
Ограничения:
- Качество тестов равно качеству разбиения: неверно выделенный класс — пропущенный дефект.
- Допущение «все значения класса равнозначны» иногда ложно — реальная логика бывает сложнее спецификации.
- На запутанных зависимостях между полями одной техники мало, нужны таблицы решений или попарное тестирование.
- Сами по себе классы не ловят граничные ошибки — без BVA покрытие неполное.
Частые ошибки при разбиении на классы
Даже опытные тестировщики теряют дефекты на предсказуемых промахах:
- Проверяют только валидные классы. Форма «падает» не на числе 35, а на пустом поле или буквах — невалидные классы обязательны.
- Забывают про границы. Представитель из середины класса не заменяет проверку крайних точек. Разбиение и BVA идут вместе.
- Строят классы по интуиции, а не по спецификации. Если требование звучит «от 18 включительно», а тест считает 18 невалидным — ошибка в тесте, а не в продукте.
- Смешивают несколько правил в один класс. «Всё, что не число» — это не один класс: буквы, спецсимволы и пустое поле продукт может обрабатывать по-разному.
Мини-вывод: сначала выпишите спецификацию дословно, потом разложите её на валидные и невалидные группы, и только затем добавляйте граничные значения.
Вопросы и ответы
Чем эквивалентное разбиение отличается от анализа граничных значений?
Разбиение делит вход на классы и берёт по одному значению из середины каждого. Граничный анализ проверяет крайние точки этих классов, где чаще всего прячутся ошибки. Первая техника отвечает на вопрос «какие группы значений есть», вторая — «где они ломаются». Их применяют вместе.
Сколько тест-кейсов нужно на один класс эквивалентности?
Для проверки самого класса достаточно одного представителя — в этом суть техники. Но границы каждого валидного класса дополнительно закрывают анализом граничных значений, поэтому итоговое число кейсов складывается из представителей классов плюс граничные точки.
Эквивалентное разбиение — это «чёрный ящик» или «белый»?
Это техника «чёрного ящика»: тесты проектируют по спецификации и поведению системы, без доступа к исходному коду. Знать внутреннюю реализацию не требуется — достаточно понимать, какие входы допустимы, а какие нет.
Разбиение и разделение на классы эквивалентности — это одно и то же?
Да. «Эквивалентное разбиение», «эквивалентное разделение» и «разбиение на классы эквивалентности» — русские варианты одного термина equivalence partitioning. Смысловой разницы между ними нет.
Можно ли применять технику не к числам?
Да. Классы эквивалентности строят для любых входов, которые можно разложить на группы с одинаковым ожидаемым поведением: форматы email, статусы заказа, типы файлов, логические условия. Числовой диапазон — лишь самый наглядный случай.
Заключение
Эквивалентное разбиение — базовая техника тест-дизайна, которая экономит время без ущерба для покрытия: вместо перебора всех значений тестировщик проверяет по одному представителю из каждого класса. Максимум пользы техника даёт в связке с анализом граничных значений и при честной опоре на спецификацию — тогда несколько тест-кейсов надёжно закрывают и типичные, и крайние сценарии.
Определение техники и понятие класса эквивалентности сверены с глоссарием ISTQB.
- Выполним базовые задачи на российских нейросетях и посмотрим на результаты!
- Файл-инструкцию «Как сделать нейро-фотосессию из своего фото бесплатно, без иностранных карт и прочих сложностей»
- Покажем 10+ способов улучшить свою жизнь с ИИ каждому — от ребенка и пенсионера до управленца и предпринимателя
- Возможность получить Доступ в Нейроклуб на целый месяц
- Как ИИ ускоряет работу и приносит деньги
- За 2 часа вы получите четкий план, как начать работать с ИИ прямо сейчас!
- Выполним базовые задачи на российских нейросетях и посмотрим на результаты!
- Файл-инструкцию «Как сделать нейро-фотосессию из своего фото бесплатно, без иностранных карт и прочих сложностей»
- Покажем 10+ способов улучшить свою жизнь с ИИ каждому — от ребенка и пенсионера до управленца и предпринимателя
- Возможность получить Доступ в Нейроклуб на целый месяц
- Как ИИ ускоряет работу и приносит деньги
- За 2 часа вы получите четкий план, как начать работать с ИИ прямо сейчас!