Что такое Граничные значения (Boundaries) и Эквивалентные классы (Equivalence partitioning) в Тестировании ПО?


Эквивалентные классы

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

Чтобы легче было понять давайте предположим что есть простой скрипт или программа, которая предлагает нам ввести возраст человека в текстовое поле вместимостью в 2 символа и что ниже находится кнопка для отправки данных. Результат данной программы должна быть стоимость мед страховки в зависимости от той цифры, которую мы введем. В соответствии с функциональной спецификацией все возраста разделили на четыре категории. Первая это Дети (включает от 0 до 12 лет), Вторая категория это Подростки (включает от 13 до 17 лет), Третья категория это Взрослые (включает от 18 до 59 лет), и последняя Пятая категория это Пенсионеры (включает от 60 до 99 лет). В зависимости от категории к которой относится человек, будет вычисляться стоимость мед страховки:
  • Дети — 10 у.е. в месяц
  • Подростки — 20 у.е. в месяц
  • Взрослые — 30 у.е. в месяц
  • Пенсионеры — 40 у.е. в месяц

В данном случае все входные данные мы можем разделить на 4 эквивалентных класса. Как изображено на изображении ниже.

Equivalence-partitioning

Вопрос: Сколько же тест кейсов нам нужно для проверки всех эквивалентных классов и какие именно?

Для проверки всех четырех эквивалентных классов нам понадобится провести тесты с одним представителем из каждого Эквивалентного класса.

Почему мы можем не проверять к примеру 0,1,2,3… и так далее, перебирая все варианты, которые может ввести пользователь? Все просто, потому что мы делаем лишнюю работу. Покрыть все эквивалентные классы можно всего четырьмя тестами.
В первом случае берем любое число от 0 до 12 (к примеру 5)
Во втором случае берем любое чисто от 13 до 17 (к примеру 15)
В третьем случае берем любое число от 18 до 59 (к примеру 36)
В четвертом случае берем любое число от 60 до 99 (к примеру 78)

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

Граничные значения

Что же такое Граничные значения. В нашем примере программа позволяет вводить максимум 2 символа и текстовое поле принимает только числа от 0 до 99. Поэтому граничные значения для этого поля -1,0 и 99,100
Но нам нужно также проверить и граничные значения эквивалентных классов, для большей уверенности в качестве нашей программы.

Какие же Граничные значения у наших эквивалентных классов?
В данном случае это 0, 12, 13, 17, 18, 59, 60, 99.

Следовательно чтобы покрыть эквивалентные классы и граничные значения для нашего примера нужно протестировать программу с такими входными данными:
-1, 0, 5, 12, 13, 15, 17, 18, 36, 59, 60, 78, 99, 100


0 комментариев