Что такое классы эквивалентности?
- Как работает техника разбиения на классы эквивалентности?
- Как сократить количество проверок без потери качества?
Делим входные данные на группы, которые система обрабатывает одинаково, и берём по одному значению из каждой.
- Есть корректные и некорректные классы — проверяем все
- Почти всегда используют вместе с граничными значениями
А ещё Классы ищут по требованиям: где поведение меняется
Подробно
Проверить все возможные значения невозможно, поэтому их разбивают на классы. Внутри класса система ведёт себя одинаково, значит, одного представителя достаточно: если 30 работает, то и 31 скорее всего тоже.
Как применять:
- Найти в требованиях все условия, меняющие поведение: диапазоны, форматы, списки допустимых значений.
- Выделить корректные (валидные) классы и некорректные — значения, которые должны отклоняться.
- Взять по одному значению из каждого класса.
- Дополнить граничными значениями — ошибки чаще всего на краях классов.
Классы бывают не только числовые: тип файла (jpg, png — допустимы; pdf — нет), регион доставки, роль пользователя, пустое значение, слишком длинная строка.
Техника уменьшает число проверок без заметной потери покрытия и даёт понятное объяснение, почему выбраны именно эти значения.
Пример
Требование: «Скидка: до 18 лет — 50 %, 18–64 — нет скидки, 65 и старше — 30 %; возраст — целое число от 0 до 120».
| Класс | Пример |
|---|---|
| 0–17, скидка 50 % | 10 |
| 18–64, без скидки | 30 |
| 65–120, скидка 30 % | 70 |
| меньше 0 — ошибка | −1 |
| больше 120 — ошибка | 150 |
| не число — ошибка | «abc» |
Что хотят услышать
- Идея одинаковой обработки внутри класса.
- Корректные и некорректные классы.
- Пример разбиения по требованию.
- Связь с граничными значениями.
Частые ошибки
- Забыть некорректные классы.
- Брать несколько значений из одного класса и пропускать другой.
Проверьте себя
Один верный вариант. Подумайте, потом откройте ответ.
Показать варианты и ответ
- ✗Проверить каждое возможное значение
- ✗Проверять только корректные классы
- ✗Классы эквивалентности заменяют граничные значения: достаточно одного значения из диапазона
- ✓Группы данных с одинаковой обработкой; берут по значению из каждой, включая некорректные
Что спросят дальше
Связанные вопросы
Разбор собеседования с sotto
После собеседования sotto разбирает разговор: оценка, каждый вопрос — хорошо, частично или слабо, чего не хватило в ответе и над чем поработать к следующему разу. Первые 30 минут бесплатно.