На практике часто невозможно провести полное тестирование для каждого набора данных из-за ограничений времени и бюджета. Для выбора эффективных тест-кейсов, которые охватывают все возможные сценарии, применяются две техники: эквивалентное разбиение и анализ граничных значений.
В данной статье мы подробно обсудим эти две техники тестирования, а также рассмотрим примеры их использования.
Друзья, поддержите нас вступлением в наш телеграм канал QaRocks. Там много туториалов, задач по автоматизации и книг по QA.
Содержание:
- Что такое анализ граничных значений?
- Эквивалентное разбиение
- Пример 1
- Пример 2
- Пример 3
- Зачем нужно тестирование классов эквивалентности и граничных значений?
- Видео о тестировании анализа граничных значений и эквивалентного разбиения
- Заключение
Что такое анализ граничных значений?
Анализ граничных значений – это методика тестирования ПО, которая проверяет поведение системы на границах значений входных данных.
- Граничные значения – это крайние точки, такие как начальная-конечная, нижняя-верхняя, максимальная-минимальная.
- Основная идея анализа граничных значений заключается в выборе таких входных значений, как:
- Минимум
- Чуть выше минимума
- Стандартное значение
- Чуть ниже максимума
- Максимум
- В граничном тестировании разделение на эквивалентные классы играет важную роль.
- Граничное тестирование происходит после разделения на эквивалентные классы.

Эквивалентное разбиение
Эквивалентное разбиение – это разновидность техники тестирования “черного ящика”, которая может применяться на всех уровнях тестирования ПО, таких как модульное, интеграционное, системное и т.д. Идея состоит в том, чтобы разделить все возможные входные данные на группы или классы таким образом, чтобы все значения внутри одного класса считались эквивалентными.
- Это методика, которая разделяет входные данные ПО на различные классы эквивалентных данных.
- Данную технику можно применять, когда в поле ввода есть диапазон.
Пример 1:
- Рассмотрим поведение текстового поля Order Pizza (“Заказать пиццу”).
- Значения пиццы от 1 до 10 считаются валидными. Отображается сообщение об успехе.
- Значения от 11 до 99 считаются недопустимыми для заказа, и появляется сообщение об ошибке: “Можно заказать только 10 пицц”.
Вот условия проверки:
- Любое число меньше 1, введенное в поле Order Pizza, недействительно.
- Валидными считаются числа от 1 до 10.
- Любое число больше 10 считается недействительным.
- Любое трехзначное число также считается недействительным.
Из-за большого количества возможных входных значений мы не можем протестировать каждый отдельный случай. Для решения этой проблемы мы используем методику эквивалентного разбиения, в которой мы делим возможные входные значения на группы или наборы, как показано ниже:

Разделенные наборы называются эквивалентными разбиениями или эквивалентными классами. Мы выбираем только одно значение из каждого класса для тестирования. Идея состоит в том, что если одно условие/значение в классе проходит, то все остальные также пройдут. Аналогично, если одно условие в наборе не выполняется, то все остальные условия тоже не выполняются.
Анализ граничных значений (Boundary Value Analysis) – это методика тестирования ПО, при которой вы проверяете границы между эквивалентными разбиениями.

В нашем примере с эквивалентным разбиением вместо проверки одного значения для каждого раздела мы проверяем значения на границах, такие как 0, 1, 10, 11 и так далее. Это означает, что мы тестируем значения как на допустимых, так и на недопустимых границах. Анализ граничных значений также называется проверкой диапазона значений.
Эквивалентное разбиение и анализ граничных значений (BVA – Boundary Value Analysis) тесно связаны и могут использоваться совместно на всех этапах тестирования.
Пример 2:
Данное поле для ввода пароля принимает значения от минимум 6 до максимум 10 символов.

Это означает, что результаты для значений в разделах 0-5, 6-10, 11-14 должны быть эквивалентными.
№ сценария тестирования | Описание | Ожидаемый результат |
---|---|---|
1 | Введите от 0 до 5 символов | Система не должна принимать |
2 | Введите от 6 до 10 символов | Система должна принять |
3 | Введите от 11 до 14 символов | Система не должна принимать |
Пример 3:
В этом примере мы рассмотрим тест-кейсы граничных значений. Поле ввода должно принимать числа от 1 до 10.
Описание сценария тестирования | Ожидаемый результат |
---|---|
Граничное значение = 0 | Система НЕ должна принимать |
Граничное значение = 1 | Система должна принимать |
Граничное значение = 2 | Система должна принимать |
Граничное значение = 9 | Система должна принимать |
Граничное значение = 10 | Система должна принимать |
Граничное значение = 11 | Система НЕ должна принимать |
Зачем нужно тестирование на эквивалентность и анализ границ?
- Это тестирование используется для сокращения количества тест-кейсов.
- Предлагаются ясные и понятные инструкции по созданию тест-кейсов, при этом не страдает эффективность тестирования.
- Подходит для приложений, требующих вычислений с большим количеством входных данных.
Анализ граничных значений и эквивалентное разбиение : видео
Заключение:
- Тестирование с анализом граничных значений используется, когда практически невозможно протестировать большой набор тест-кейсов по отдельности.
- Используются две техники – анализ граничных значений и эквивалентное разбиение.
- При использовании метода эквивалентного разбиения вы разделяете набор тестовых условий на части, которые можно считать эквивалентными.
- Анализ граничных значений и эквивалентное разбиение подходят для приложений, которые выполняют большое количество вычислений.
Перевод статьи Thomas Hamilton «Boundary Value Analysis and Equivalence Partitioning Testing».