Ответ
Анализ граничных значений (Boundary Value Analysis, BVA) — техника тест-дизайна, фокусирующаяся на значениях на границах допустимых диапазонов. Основные проверки для диапазона [min, max]:
1. Проверка непосредственно на границах (Valid Boundaries)
- Минимальное допустимое значение (
min) - Максимальное допустимое значение (
max)
2. Проверка за границами (Invalid Boundaries)
- Значение чуть ниже минимума (
min - 1) - Значение чуть выше максимума (
max + 1)
3. Проверка типичных значений внутри диапазона (Robustness)
- Значение чуть выше минимума (
min + 1) - Значение чуть ниже максимума (
max - 1)
4. Проверка особых случаев
- Пустое значение (если поле необязательное).
- Нулевое значение (если 0 входит или не входит в диапазон).
Пример теста для поля "Возраст" с допустимым диапазоном от 18 до 99 лет:
def test_age_field_boundaries():
# Недопустимые значения за границами
assert not is_valid_age(17), "17 (min-1) должно быть недопустимо"
assert not is_valid_age(100), "100 (max+1) должно быть недопустимо"
# Допустимые значения на границах
assert is_valid_age(18), "18 (min) должно быть допустимо"
assert is_valid_age(99), "99 (max) должно быть допустимо"
# Допустимые значения внутри диапазона
assert is_valid_age(19), "19 (min+1) должно быть допустимо"
assert is_valid_age(98), "98 (max-1) должно быть допустимо" Ответ 18+ 🔞
Да ты посмотри на эту красоту, блядь! Анализ граничных значений, сука! Ну, это как если бы ты проверял, насколько крепкий у тебя забор, ага? Не просто по центру пнуть, а именно там, где доски сходятся, где гвозди торчат — вот где вся соль, ёпта!
Смысл в том, чтобы не просто ввести "25 лет" и сказать "работает, похуй". Нет, ты подходишь к этому делу с подвохом, как хитрая жопа! Система говорит: "Возраст от 18 до 99". Ну окей. А ты ей такой: "А 17, сука? А 100, блядь? А 18 ровно? А 99, ебать? А 19? А 98?" Вот это и есть проверка на вшивость!
Основные приколы, на которые надо давить:
1. По самые помидоры в границу (Valid Boundaries)
- Самое нижнее пограничное (
min) — 18 лет. Можно или нет? Должно можно! - Самое верхнее пограничное (
max) — 99 лет. Можно или нет? Тоже должно можно!
2. Залезть за буфер, куда не просили (Invalid Boundaries)
- Чуть-чуть не дотянул (
min - 1) — 17 лет. Вот тут должен быть пиздец и ошибка! - Чуть-чуть переборщил (
max + 1) — 100 лет. И тут тоже должен быть отлуп!
3. Поковыряться рядом с границей, но внутри (Robustness)
- Чуть выше дна (
min + 1) — 19 лет. Ну должно ж работать. - Чуть ниже потолка (
max - 1) — 98 лет. Тоже должно.
4. Особые художества, чтоб совсем добить
- Вообще ничего не вводить (если можно).
- Ноль вписать (интересно же, как оно с нулём, он же часто особый случай, блядь).
Вот смотри, как это в коде выглядит, на примере возраста "от 18 до 99":
def test_age_field_boundaries():
# Эти уродцы за забором — им тут не рады
assert not is_valid_age(17), "17 (min-1) должно быть недопустимо"
assert not is_valid_age(100), "100 (max+1) должно быть недопустимо"
# А эти стоят на самом краю забора — и всё ок
assert is_valid_age(18), "18 (min) должно быть допустимо"
assert is_valid_age(99), "99 (max) должно быть допустимо"
# Эти уже внутри гуляют — тем более
assert is_valid_age(19), "19 (min+1) должно быть допустимо"
assert is_valid_age(98), "98 (max-1) должно быть допустимо"
Вот и весь анализ, ебать мои старые костыли! Не дай системе расслабиться, проверяй её на прочность именно там, где она ждёт подвоха меньше всего — на самых краях!