Эквивалентное разбиение и границы

Эквивалентное разбиение помогает не проверять каждое значение, если значения ведут себя одинаково. Граничные значения нужны потому, что ошибки часто появляются на переходах: минимум, максимум, рядом с лимитом, пустое значение, переполнение.

Что важно понять

  • Классы валидных и невалидных значений.
  • Нижнюю и верхнюю границу диапазона, а также значения рядом с ними.
  • Пустые, слишком длинные, обрезанные и форматно неверные значения.
  • Разные типы ввода: клавиатура, copy-paste, API, импорт файла.

Рабочий порядок

  1. Найдите правило: диапазон, формат, длина, обязательность, уникальность.
  2. Разделите значения на классы, которые должны вести себя одинаково.
  3. Выберите по одному представителю класса и значения на границах.
  4. Проверьте UI и backend, если правило может различаться на слоях.

Что отдавать команде

  • Таблица классов эквивалентности.
  • Набор граничных значений.
  • Баги на расхождения UI/API валидации.

Частые провалы

  • Проверять только красивые значения внутри диапазона.
  • Забывать значения min - 1 и max + 1.
  • Не проверять источник данных, который обходит UI.

Практика

Возьмите поле возраста 18-120 и составьте проверки: 17, 18, 19, 119, 120, 121, пусто, строка, дробное значение, пробелы.