Эквивалентное разбиение и границы
Эквивалентное разбиение помогает не проверять каждое значение, если значения ведут себя одинаково. Граничные значения нужны потому, что ошибки часто появляются на переходах: минимум, максимум, рядом с лимитом, пустое значение, переполнение.
Что важно понять
- Классы валидных и невалидных значений.
- Нижнюю и верхнюю границу диапазона, а также значения рядом с ними.
- Пустые, слишком длинные, обрезанные и форматно неверные значения.
- Разные типы ввода: клавиатура, copy-paste, API, импорт файла.
Рабочий порядок
- Найдите правило: диапазон, формат, длина, обязательность, уникальность.
- Разделите значения на классы, которые должны вести себя одинаково.
- Выберите по одному представителю класса и значения на границах.
- Проверьте UI и backend, если правило может различаться на слоях.
Что отдавать команде
- Таблица классов эквивалентности.
- Набор граничных значений.
- Баги на расхождения UI/API валидации.
Частые провалы
- Проверять только красивые значения внутри диапазона.
- Забывать значения
min - 1иmax + 1. - Не проверять источник данных, который обходит UI.
Практика
Возьмите поле возраста 18-120 и составьте проверки: 17, 18, 19, 119, 120, 121, пусто, строка, дробное значение, пробелы.