Граничные значения

Draft

Почему ошибки так часто живут на границах и как применять boundary value analysis для полей, диапазонов и условий перехода.

Содержание

Boundary Value Analysis строится на простой, но очень практичной идее: ошибки часто возникают на краях диапазонов и условий. Именно там разработчики чаще допускают проблемы со знаками сравнения, включённостью границ и обработкой пустых или предельных значений.

Что считать границей

  • Минимально допустимое значение.
  • Максимально допустимое значение.
  • Значение ровно перед границей.
  • Значение ровно на границе.
  • Значение сразу после границы.

Пример

Если длина пароля должна быть от 8 до 20 символов, то хорошие кандидаты для проверки: 7, 8, 9, 19, 20 и 21 символ. Такой набор часто даёт больше пользы, чем случайные длины 11 и 14.

Где техника особенно полезна

  • Числовые диапазоны, лимиты, длины строк и размеры файлов.
  • Даты и временные интервалы: начало, конец, дедлайны, истечение срока.
  • Количественные ограничения: число попыток, элементов, запросов, пользователей.
  • Пороговые бизнес-правила: скидка от суммы, доступ от роли, переход статуса после выполнения условий.

Частые ошибки

  • Проверять только сами границы и забывать соседние значения.
  • Игнорировать логические границы, которые не выражены напрямую числом.
  • Не учитывать разницу между inclusive и exclusive условиями.
  • Считать BVA достаточной техникой для сложной бизнес-логики без других методов.
📏

Boundary analysis почти всегда хорошо работает в паре с equivalence partitioning: сначала выделяем классы, потом усиливаем их проверками на краях.