← Назад к вопросам

Приведи пример применения техники граничных значений

1.2 Junior🔥 262 комментариев
#Теория тестирования

Комментарии (2)

🐱
deepseek-v3.2PrepBro AI6 апр. 2026 г.(ред.)

Ответ сгенерирован нейросетью и может содержать ошибки

Пример применения техники граничных значений (Boundary Value Analysis)

Техника граничных значений (Boundary Value Analysis, BVA) — это один из фундаментальных методов тестирования черного ящика. Его суть заключается в том, что ошибки чаще всего возникают на границах входных данных, а не внутри допустимого диапазона. Поэтому мы тестируем не все возможные значения, а:

  • Минимальное допустимое значение.
  • Значения чуть выше и чуть ниже минимального.
  • Максимальное допустимое значение.
  • Значения чуть выше и чуть ниже максимального.
  • Номинальное (стандартное) значение внутри диапазона.

Это позволяет с минимальным набором тестовых данных получить высокую вероятность обнаружения дефектов.

Практический пример: тестирование поля "Возраст пользователя"

Рассмотрим реальную ситуацию. У нас есть форма регистрации, где поле "Возраст" должно принимать целое число. По бизнес-логике, пользователем сервиса может быть лицо в возрасте от 18 до 120 лет.

1. Определяем границы и классы эквивалентности

Первым шагом мы определяем:

  • Нижняя граница (Lower Bound): 18 лет.
  • Верхняя граница (Upper Bound): 120 лет.
  • Класс допустимых значений: все целые числа от 18 до 120 включительно.
  • Класс недопустимых значений: всё, что меньше 18 и больше 120.

2. Применяем правила BVA для генерации тестовых данных

Для одной границы (например, 18) мы берем три значения: саму границу, значение сразу ниже и значение сразу выше. Повторяем для верхней границы (120). Добавляем одно любое номинальное значение внутри диапазона.

Таким образом, для нашего поля "Возраст" мы получим следующий набор тестовых данных по методике BVA:

# Тестовые данные для поля "Возраст" (границы: 18 и 120)
test_values = [
    17,  # Минимальное значение - 1 (недопустимое, ниже границы)
    18,  # Минимальное допустимое значение (нижняя граница)
    19,  # Минимальное значение + 1 (допустимое, внутри диапазона)
    60,  # Номинальное допустимое значение (внутри диапазона, например, середина)
    119, # Максимальное значение - 1 (допустимое, внутри диапазона)
    120, # Максимальное допустимое значение (верхняя граница)
    121  # Максимальное значение + 1 (недопустимое, выше границы)
]

3. Формулируем тестовые случаи (Test Cases)

Для каждого значения мы определяем ожидаемый результат и создаем тестовый случай.

ID тестаВходное значениеОжидаемый результатПримечание
TC-BVA-117Ошибка валидации. Сообщение: "Возраст должен быть от 18 до 120 лет".Тестирование ниже нижней границы.
TC-BVA-218Успешная валидация. Поле принимается, регистрация продолжается.Тестирование самой нижней границы.
TC-BVA-319Успешная валидация.Тестирование чуть выше нижней границы.
TC-BVA-460Успешная валидация.Тестирование номинального значения внутри диапазона.
TC-BVA-5119Успешная валидация.Тестирование чуть ниже верхней границы.
TC-BVA-6120Успешная валидация.Тестирование самой верхней границы.
TC-BVA-7121Ошибка валидации. Сообщение: "Возраст должен быть от 18 до 120 лет".Тестирование выше верхней границы.

4. Почему это эффективно? Потенциальные дефекты

Применяя эти 7 тестов, мы с высокой вероятностью обнаружим типичные ошибки разработки:

  • Ошибка в условиях сравнения: Например, разработчик мог написать условие age > 18 вместо age >= 18. Тогда наш тест TC-BVA-2 со значением 18 провалится — система неожиданно откажет 18-летнему пользователю. Номинальный тест со значением 60 мог бы пройти, маскируя эту ошибку.
  • Ошибка с максимальным значением: Аналогично, условие age < 120 вместо age <= 120 приведет к провалу теста TC-BVA-6 со значением 120.
  • Ошибки обработки нечисловых данных: Если поле не имеет дополнительной защиты, BVA может выявить проблемы с пустым значением (null), которое часто является "скрытой границей". Это расширяет метод до 3-value BVA (тестирование min, max и среднего значения), но в строгом подходе для числовых полей мы фокусируемся на границах диапазона.

Ключевые выводы

  • BVA — это метод, основанный на опыте: Статистически дефекты концентрируются на границах из-за ошибок в операторах >=, <=, >, <.
  • Экономия ресурсов: Вместо тестирования всех 103 допустимых значений (от 18 до 120) мы используем всего 7 тестов, сохраняя высокую эффективность.
  • Комбинация с другими методами: BVA часто применяется вместе с анализом классов эквивалентности (Equivalence Partitioning). Сначала мы разделяем входные данные на классы (допустимые/недопустимые), а затем применяем BVA к границам этих классов.
  • Применимость: Метод универсален. Он работает не только для числовых диапазонов, но и для границ количества элементов (например, "можно добавить от 1 до 10 товаров в корзину"), длины строк ("имя от 2 до 50 символов"), временных интервалов и других параметров с четко определенными пределами.

Таким образом, техника граничных значений — это не теоретическая конструкция, а ежедневный практический инструмент в работе QA-инженера, позволяющий системно и эффективно выявлять критичные дефекты в логике валидации входных данных.

Приведи пример применения техники граничных значений | PrepBro