Техника · Equivalence Class Partitioning
Классыэквивалентности
ECP разбивает множество всех возможных входных значений на классы, внутри которых система ведёт себя одинаково. Один представитель класса — один тест-кейс. Остальные избыточны.
Сценарий — Поле «Email» при регистрации
Правила валидации:
Не пустое
Содержит ровно один символ @
До @ : минимум 1 символ
После @ : домен с точкой, минимум 2 символа после точки
Длина: не более 254 символов
Классы эквивалентности (5 невалидных + 1 валидный)
P1 · Валидный
Корректный email
user@example.com
P2 · Невалидный
Нет символа @
userexample.com
P3 · Невалидный
Нет домена после @
user@
P4 · Невалидный
Пустое значение
"" (пустая строка)
P5 · Невалидный
Два знака @
user@@example.com
P6 · Невалидный
Слишком длинный
a×255@example.com
Упражнение — назначь каждый тест-кейс в класс
Нажми нужную кнопку (P1–P6) напротив каждого значения. Затем нажми «Проверить».
Проверить ответы
Вопрос 01
Почему достаточно одного тест-кейса на класс эквивалентности?
Потому что тестирование занимает много времени
Потому что система ведёт себя одинаково для всех значений класса — баг воспроизведётся на любом представителе
Потому что невалидные значения не нужно тестировать совсем
Вопрос 02
Нужно ли выбирать разные тест-кейсы для P1: hello@mail.ru и x@y.io?
Да — чем больше примеров валидного класса, тем лучше
Нет — оба из P1, достаточно одного. Лучше потратить второй тест на другой класс
Вопрос 03
Тестировщик нашёл 6 классов. Сколько минимум тест-кейсов нужно для покрытия всех классов?
1 — один комплексный тест
6 — по одному на каждый класс
36 — все комбинации классов
Что запомнить
Один класс = одно поведение системы. Если поведение одинаково — один тест-кейс покрывает весь класс.
Невалидные классы так же важны, как валидный: каждый может давать разное сообщение об ошибке — это тоже нужно проверить.
ECP и BVA работают вместе: ECP определяет классы , BVA уточняет конкретные значения на границах классов.
Хороший тест-кейс принадлежит ровно одному классу . Если тест проверяет и «нет @», и «пустое поле» — это два разных теста, замешанных в один.