Анализ граничных значений и эквивалентное разбиение

На практике часто невозможно провести полное тестирование для каждого набора данных из-за ограничений времени и бюджета. Для выбора эффективных тест-кейсов, которые охватывают все возможные сценарии, применяются две техники: эквивалентное разбиение и анализ граничных значений.

В данной статье мы подробно обсудим эти две техники тестирования, а также рассмотрим примеры их использования.

Друзья, поддержите нас вступлением в наш телеграм канал QaRocks. Там много туториалов, задач по автоматизации и книг по QA.

Содержание:

Что такое анализ граничных значений?

Анализ граничных значений – это методика тестирования ПО, которая проверяет поведение системы на границах значений входных данных.

  • Граничные значения – это крайние точки, такие как начальная-конечная, нижняя-верхняя, максимальная-минимальная.
  • Основная идея анализа граничных значений заключается в выборе таких входных значений, как:
  1. Минимум
  2. Чуть выше минимума
  3. Стандартное значение
  4. Чуть ниже максимума
  5. Максимум
  • В граничном тестировании разделение на эквивалентные классы играет важную роль.
  • Граничное тестирование происходит после разделения на эквивалентные классы.
Граничные значения в тестировании

Эквивалентное разбиение

Эквивалентное разбиение – это разновидность техники тестирования “черного ящика”, которая может применяться на всех уровнях тестирования ПО, таких как модульное, интеграционное, системное и т.д. Идея состоит в том, чтобы разделить все возможные входные данные на группы или классы таким образом, чтобы все значения внутри одного класса считались эквивалентными.

  • Это методика, которая разделяет входные данные ПО на различные классы эквивалентных данных.
  • Данную технику можно применять, когда в поле ввода есть диапазон.

Пример 1:

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

Вот условия проверки:

  1. Любое число меньше 1, введенное в поле Order Pizza, недействительно.
  2. Валидными считаются числа от 1 до 10.
  3. Любое число больше 10 считается недействительным.
  4. Любое трехзначное число также считается недействительным.

Из-за большого количества возможных входных значений мы не можем протестировать каждый отдельный случай. Для решения этой проблемы мы используем методику эквивалентного разбиения, в которой мы делим возможные входные значения на группы или наборы, как показано ниже:

Использование эквивалентного разбиения значений на группы в тестировании

Разделенные наборы называются эквивалентными разбиениями или эквивалентными классами. Мы выбираем только одно значение из каждого класса для тестирования. Идея состоит в том, что если одно условие/значение в классе проходит, то все остальные также пройдут. Аналогично, если одно условие в наборе не выполняется, то все остальные условия тоже не выполняются.

Анализ граничных значений (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Система НЕ должна принимать

Зачем нужно тестирование на эквивалентность и анализ границ?

  1. Это тестирование используется для сокращения количества тест-кейсов.
  2. Предлагаются ясные и понятные инструкции по созданию тест-кейсов, при этом не страдает эффективность тестирования.
  3. Подходит для приложений, требующих вычислений с большим количеством входных данных.

Анализ граничных значений и эквивалентное разбиение : видео

Заключение:

  • Тестирование с анализом граничных значений используется, когда практически невозможно протестировать большой набор тест-кейсов по отдельности.
  • Используются две техники – анализ граничных значений и эквивалентное разбиение.
  • При использовании метода эквивалентного разбиения вы разделяете набор тестовых условий на части, которые можно считать эквивалентными.
  • Анализ граничных значений и эквивалентное разбиение подходят для приложений, которые выполняют большое количество вычислений.

Перевод статьи Thomas Hamilton «Boundary Value Analysis and Equivalence Partitioning Testing».

11 комментариев к “Анализ граничных значений и эквивалентное разбиение”

  1. Пингбэк: Тестирование "черного ящика"

  2. Пингбэк: 15 вопросов на QA-собеседовании (2024)

Оставьте комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *