Приведи пример применения техники граничных значений
Комментарии (2)
Ответ сгенерирован нейросетью и может содержать ошибки
Пример применения техники граничных значений (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-1 | 17 | Ошибка валидации. Сообщение: "Возраст должен быть от 18 до 120 лет". | Тестирование ниже нижней границы. |
| TC-BVA-2 | 18 | Успешная валидация. Поле принимается, регистрация продолжается. | Тестирование самой нижней границы. |
| TC-BVA-3 | 19 | Успешная валидация. | Тестирование чуть выше нижней границы. |
| TC-BVA-4 | 60 | Успешная валидация. | Тестирование номинального значения внутри диапазона. |
| TC-BVA-5 | 119 | Успешная валидация. | Тестирование чуть ниже верхней границы. |
| TC-BVA-6 | 120 | Успешная валидация. | Тестирование самой верхней границы. |
| TC-BVA-7 | 121 | Ошибка валидации. Сообщение: "Возраст должен быть от 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-инженера, позволяющий системно и эффективно выявлять критичные дефекты в логике валидации входных данных.