Тестирование пограничных значений

Тестирование пограничных (граничных) значений — важная техника тест‑дизайна, направленная на выявление ошибок на границах допустимых диапазонов входных данных. Именно здесь чаще всего возникают дефекты из‑за неверного указания знаков неравенства (>, >=, <, <=) или смещения границ.

Суть метода

Техника основана на анализе классов эквивалентности — групп значений, которые система должна обрабатывать одинаково. У каждого класса есть:

  • нижняя граница;
  • верхняя граница;
  • внутренняя область.

На границах вероятность ошибок максимальна, поэтому их проверяют особо тщательно.

Пошаговый алгоритм тестирования

  1. Определите классы эквивалентности для каждого входного параметра (например, для поля «возраст»: < 16, 16–65, > 65).
  2. Выделите границы каждого класса (16, 65).
  3. Для каждой границы проверьте 3 значения:
    • на границе (16, 65);
    • чуть ниже границы (15, 64);
    • чуть выше границы (17, 66).
  4. Проверьте крайние случаи (минимальное и максимальное допустимое значение).
  5. Протестируйте выход за границы (значения ниже минимума и выше максимума).

Примеры тестирования веб‑форм

1. Поле «Возраст» (допустимый диапазон: 16–65 лет)

  • Ниже минимума: 15 → ошибка/запрет.
  • На минимуме: 16 → приём.
  • Внутри диапазона: 30 → приём.
  • На максимуме: 65 → приём.
  • Выше максимума: 66 → ошибка/запрет.

2. Поле «Сумма заказа» (скидка 10% при сумме ≥ 5 000 ₽)

  • Ниже порога: 4 999 → без скидки.
  • На пороге: 5 000 → скидка 10%.
  • Выше порога: 5 001 → скидка 10%.

3. Поле «Длина комментария» (максимум 255 символов)

  • 254 символа → приём.
  • 255 символов → приём.
  • 256 символов → ошибка/обрезка.

Типичные ошибки на границах

  • Неверный знак сравнения: > 16 вместо ≥ 16.
  • Смещение границы: проверка на 17 вместо 16.
  • Игнорирование крайних значений: отсутствие тестов для минимума/максимума.
  • Некорректная обработка граничных дробных значений (например, 0,99 вместо 1,00).

Рекомендации по реализации

  1. Уточняйте требования у аналитиков:
    • Входит ли граница в допустимый диапазон? ( или >).
    • Какая точность нужна (целые числа, десятые, сотые).
  2. Комбинируйте с другими техниками:
    • Эквивалентное разбиение (проверка внутри классов).
    • Негативное тестирование (ввод заведомо некорректных данных).
  3. Автоматизируйте проверку границ для регрессионного тестирования.
  4. Фиксируйте результаты в тест‑кейсах с чётким указанием:
    • входного значения;
    • ожидаемого результата;
    • фактического результата.

Инструменты

  • Ручное тестирование — для сложных сценариев и юзабилити‑проверки.
  • Автотесты (Selenium, Playwright) — для повторяемых граничных проверок.
  • Плагины для браузеров (например, BugMagnet) — для быстрого ввода тестовых данных.

Итог: тестирование пограничных значений позволяет выявить до 70% ошибок ввода ещё на этапе функционального тестирования, снижая риски багов в проде.