Boundary Value Analysis строится на простой, но очень практичной идее: ошибки часто возникают на краях диапазонов и условий. Именно там разработчики чаще допускают проблемы со знаками сравнения, включённостью границ и обработкой пустых или предельных значений.
Что считать границей
- →Минимально допустимое значение.
- →Максимально допустимое значение.
- →Значение ровно перед границей.
- →Значение ровно на границе.
- →Значение сразу после границы.
Пример
Если длина пароля должна быть от 8 до 20 символов, то хорошие кандидаты для проверки: 7, 8, 9, 19, 20 и 21 символ. Такой набор часто даёт больше пользы, чем случайные длины 11 и 14.
Где техника особенно полезна
- →Числовые диапазоны, лимиты, длины строк и размеры файлов.
- →Даты и временные интервалы: начало, конец, дедлайны, истечение срока.
- →Количественные ограничения: число попыток, элементов, запросов, пользователей.
- →Пороговые бизнес-правила: скидка от суммы, доступ от роли, переход статуса после выполнения условий.
Частые ошибки
- →Проверять только сами границы и забывать соседние значения.
- →Игнорировать логические границы, которые не выражены напрямую числом.
- →Не учитывать разницу между inclusive и exclusive условиями.
- →Считать BVA достаточной техникой для сложной бизнес-логики без других методов.
📏
Boundary analysis почти всегда хорошо работает в паре с equivalence partitioning: сначала выделяем классы, потом усиливаем их проверками на краях.