


Класс эквивалентности объединяет значения, которые система по выбранному правилу должна обрабатывать одинаково. Вместо перебора всех значений тестировщик выбирает представителей классов. Основанием служат требования и модель обработки, а не внешнее сходство данных.
В учебном примере Mentoring.digital API принимает JSON с полем quantity. Зафиксируем контракт: поле обязательно, его значение должно быть числом с целым значением от 1 до 99. Строки и null не преобразуются автоматически. Это условия примера, а не свойства конкретного магазина.
Один огромный класс «неправильно» скрывает разные способы отказа. Здесь полезно выделить следующие непересекающиеся варианты входа:
Важно сначала разделить типы, затем числовые подмножества. Иначе «меньше 1» и «нецелое» будут пересекаться на значении 0.5. Если система нормализует строки до проверки, модель будет другой и классы нужно пересмотреть.
Недостаточно перечислить 12, -3 и 120. Для каждого представителя сохраните условие, вход, ожидаемый ответ и проверяемое последствие. Например, для quantity=120 ответ должен сообщить о диапазоне, а недопустимое значение не должно сохраниться в заказе.
Сначала держите остальные поля корректными. Если одновременно испортить quantity и адрес доставки, первая ошибка может скрыть вторую. После независимых проверок переходите к сочетаниям полей по отдельной стратегии.
Покрытие показывает долю выделенных классов, для которых выполнен хотя бы один тест. Оно зависит от качества модели. Прохождение всех запланированных проверок не доказывает отсутствие других классов, ошибок реализации и проблем при сочетании параметров.
Если выяснилось, что одинаковые на первый взгляд значения проходят разные обработчики, разделите класс и добавьте представителей. Список классов является рабочей моделью, которую уточняют вместе с требованиями.
Значение 12 представляет допустимый числовой класс, но не проверяет поведение на границах 1 и 99. Граничный анализ дополняет разбиение проверками самих границ и соседних значений. Это отдельный приём, а не причина включать сотни случайных чисел в один сценарий.
Для самостоятельной работы добавьте правило «для оптового заказа минимум 10 единиц». Определите, какие классы меняются и где появляется зависимость между типом заказа и количеством. Не называйте ожидаемые результаты фактическими, пока тесты не выполнены.
Техники тест-дизайна изучают на курсах QA. Проверить полноту модели для вашей формы или API поможет наставник по тестированию.