Какие граничные значения проверить для диапазона возраста от 18 до 50 лет?
Что проверяют
Знаете ли вы технику граничных значений не на уровне «17, 18, 50, 51», а понимаете, откуда берутся границы и где они неоднозначны. Следом часто спрашивают, как изменится набор, если возраст считается по дате рождения.
Как отвечать
Начните с уточнения требования. «От 18 до 50» может включать 50, а может означать «до пятидесятилетия», и тогда 50 уже недопустимо. Такой вопрос аналитику сам по себе находка, озвучьте его.
Дальше классы эквивалентности: меньше 18, от 18 до 50, больше 50 и отдельно невалидный ввод. Границы:
- двухточечный анализ: 17, 18, 50, 51. Минимальный набор, ловит ошибку
>вместо>=; - трёхточечный анализ: 17, 18, 19 и 49, 50, 51. Добавляет значения внутри диапазона рядом с границей, полезно, когда условие написано нестандартно;
- экстремумы поля: 0, отрицательное число, очень большое число, предел длины поля ввода;
- формат: пусто, пробелы, буквы,
17.9и50.5, если поле допускает дроби, ведущие нули018.
Если возраст вычисляется из даты рождения, границы переезжают в даты: день рождения сегодня, завтра и вчера, родившиеся 29 февраля, часовой пояс сервера и клиента. Человеку, которому 18 исполняется сегодня, по большинству правил доступ уже положен, и именно здесь чаще всего сидит ошибка на единицу.
Проверяйте и то, где стоит валидация. Если ограничение есть только в интерфейсе, запрос с age: 16 через DevTools или Postman может пройти, поэтому граничные значения прогоняют и на уровне API.
Где спотыкаются
Не уточняют, включена ли верхняя граница, и молча выбирают свою трактовку. Тест тогда проверяет догадку, а не требование.
Называют только 18 и 50. Значения за границей, 17 и 51, находят больше всего дефектов, без них техника теряет смысл.
Ограничиваются числовым полем и забывают про вычисление возраста из даты. На собеседовании это ровно тот шаг, который отличает опытного тестировщика от начинающего.