Приведите пример класса эквивалентности на примере магазина
Что проверяют
Умеете ли вы сокращать количество проверок, не теряя покрытия, и понимаете ли, что класс задаётся одинаковой обработкой на стороне системы, а не похожестью данных на вид. Это база тест-дизайна, её спрашивают почти на каждом собеседовании.
Как отвечать
Возьмите одно конкретное поле, иначе ответ расплывётся. Хороший выбор: количество товара в корзине, где разрешено от одной штуки до остатка на складе, пусть остаток равен десяти.
Классы получаются такими:
- валидный: целое от 1 до 10, представитель 5;
- ниже диапазона: 0 и отрицательные значения;
- выше диапазона: 11 и больше, здесь ожидается сообщение о нехватке остатка;
- неверный формат: дробное, буквы, пробел, пустое поле.
Из каждого класса берётся один представитель, и это даёт четыре проверки вместо перебора. Дальше сразу добавьте границы, потому что техники работают в паре: 0, 1, 10, 11. Ошибка в условии сравнения живёт ровно на краю, серединой диапазона её не поймать.
Сильный ответ показывает, что классы выводятся из поведения системы. Если при сумме заказа от трёх тысяч доставка бесплатна, то суммы до порога и после порога это разные классы, хотя данные выглядят одинаково. И наоборот, две суммы внутри одного диапазона остаются одним классом, сколько бы их ни было.
Где спотыкаются
Проверяют только валидный класс и пару случайных значений рядом. Невалидные ветки остаются без внимания, а именно там живут падения, потерянные сообщения об ошибке и прошедшие на сервер мусорные данные.
Второе: подменяют классы эквивалентности граничными значениями или считают их одной техникой. Первая отвечает, какие группы вообще есть, вторая проверяет края этих групп, и без разбиения границы просто не из чего выводить.
Третье: складывают все невалидные значения в один тест сразу. Форма покажет первую же ошибку, остальные проверки окажутся замаскированы, и отчёт о дефекте получится про одно поле вместо четырёх.