Почему техники эквивалентных классов так называются
Что проверяют
Стоит ли за названием понимание. Ждут, что вы объясните, откуда взялось слово «эквивалентные», и признаете, что эквивалентность это предположение о поведении программы, а не свойство самих данных.
Как отвечать
Класс эквивалентности это множество входных значений, на которых программа, по нашей модели, ведёт себя одинаково: идёт по той же ветке и даёт результат того же вида. Внутри класса значения взаимозаменяемы, поэтому достаточно проверить одного представителя и считать проверенным весь класс. Отсюда и название.
Разбиение покрывает всю область значений и не пересекается: каждое возможное значение попадает ровно в один класс. Классы делят на допустимые и недопустимые, причём недопустимые проверяются по одному на тест, иначе первая же сработавшая проверка скроет остальные.
Пример для поля возраста, которое принимает целое от восемнадцати до шестидесяти пяти: допустимый класс внутри диапазона, недопустимые снизу и сверху, отдельно нечисловой ввод и пустое значение.
Дальше обязательно добавить, что техника не живёт одна. Ошибки концентрируются на краях классов, поэтому её всегда дополняют анализом граничных значений: берут значения по обе стороны границы. И саму эквивалентность стоит сверять с реализацией: если внутри допустимого диапазона есть особый случай, например отдельная ветка для нуля или другой расчёт после некоторого порога, значит класс на самом деле не один.
Где спотыкаются
Делят только по диапазонам из требований и забывают про классы по результату. Эквивалентность строится по поведению системы, поэтому классы бывают и такими: успех, отказ по бизнес-правилу, ошибка внешнего сервиса.
Второе: складывают несколько недопустимых значений в один тест, например пустой логин и короткий пароль сразу. Проверка остановится на первой ошибке, второй класс останется непроверенным, хотя в отчёте будет числиться покрытым.
Третье: считают, что техника доказывает корректность. Она лишь сокращает перебор при принятом допущении об одинаковом поведении. Реальные дефекты живут на границах и в сочетаниях полей, поэтому рядом нужны граничные значения и попарное тестирование.