Большинство ошибок прячется на краях допустимых диапазонов: разработчики пишут > вместо >=, забывают про единичный шаг, путают включение и исключение границ.
Сценарий — Поле «Возраст» при регистрации водителя
Система принимает возраст от 21 до 60 лет включительно. Вводится целое число. Значения вне диапазона должны быть отклонены с сообщением об ошибке.
Числовая ось с граничными точками
Интерактив — классифицируй каждое значение
Выбери значение, затем нажми кнопку с нужным классом. После классификации всех — нажми «Показать ответы».
Валидное
Невалидное
Граничное (валидное)
Вопрос 01
Почему BVA тестирует значение на единицу ниже нижней границы (20), а не просто любое отрицательное число?
Потому что это быстрее вводить
Потому что ошибки off-by-one (> вместо >=) видны только у самой границы, не далеко от неё
Потому что 20 — единственное невалидное значение
Вопрос 02
Сколько граничных тест-значений даёт диапазон 21–60 по классической двухточечной BVA?
2 — только сами границы: 21 и 60
6 — по три на каждую границу: min−1, min, min+1 и max−1, max, max+1
8 — по четыре на каждую сторону
Вопрос 03
Нужно ли тестировать значение 35 (середина диапазона) при BVA?
Да — нужно проверить хотя бы одно значение из середины
Нет — BVA + ECP уже покрывают валидный класс значениями 22 и 59
Что запомнить
6 граничных значений для одного диапазона: min−1, min, min+1, max−1, max, max+1.
BVA ловит ошибки off-by-one (> вместо >=, < вместо <=) — самый частый тип ошибок в условиях проверки.
BVA и ECP дополняют друг друга: ECP выбирает классы, BVA уточняет конкретные значения на краях каждого класса.
Для нецелочисленных типов: граничные значения — минимальный шаг от границы (0.01 для денег, 1 секунда для времени).