Техника разбиения на классы эквивалентности

Разбиение на классы эквивалентности

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

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

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

Содержание

Что такое разбиение на классы эквивалентности?

Разбиение на классы эквивалентности – это метод тестирования “черного ящика” или метод тестирования на основе спецификации, в котором мы группируем входные данные в логические разделы, называемые классами эквивалентности.

Предполагается, что все данные, входящие в класс эквивалентности, обрабатываются тестируемым программным приложением одинаково.

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

Пример

Рассмотрим приложение, которое принимает на вход числовое значение от 10 до 100 и вычисляет его квадрат. Используя технику тестирования классов эквивалентности, мы можем создать следующие классы эквивалентности:

Класс эквивалентностиОбъяснение
Числа от 10 до 100В этот класс будут включены тестовые данные для положительного сценария.
Цифры от 0 до 9Этот класс будет включать тестовые данные, которые не соответствуют условиям, поскольку приложение предназначено для работы только с числами от 10 до 100.
Больше 100В этом классе снова будут использоваться тестовые данные, ограниченные приложением, но на этот раз для проверки верхнего предела.
Отрицательные числаПоскольку приложение может по-разному реагировать на отрицательные числа, мы создадим для них отдельный класс, чтобы проверить надежность приложения.
БуквыЭтот класс будет использоваться для проверки устойчивости приложения к буквенным символам.
Специальные символыПодобно классу эквивалентности для букв, мы можем иметь отдельный класс эквивалентности для специальных символов.

Определение классов эквивалентности

Давайте обсудим некоторые моменты или лучшие практики, касающиеся определения классов эквивалентности.

Мы должны создать классы тестовых данных таким образом, чтобы охватить все наборы положительных и отрицательных тестовых сценариев. При этом не должно быть никакой избыточности.

Если есть вероятность, что тестовые данные в определенном классе могут обрабатываться по-разному, то лучше разделить этот класс эквивалентности.

Например, в приведенном выше примере приложение не работает с числами меньше 10. Но для чисел меньше 10 мы создали не один класс, а два: числа 0-9 и отрицательные числа. Это сделано потому, что приложение может по-другому обрабатывать отрицательные числа.

Преимущества тестирования классов эквивалентности

Применение классов эквивалентности значительно сокращает количество тест-кейсов при сохранении того же тестового покрытия.

Этот метод тестирования помогает получить качественный продукт в минимальные сроки. Поэтому он идеально подходит для проектов с ограничениями по времени и ресурсам.

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

Недостатки тестирования классов эквивалентности

  • Весь успех тестирования классов эквивалентности зависит от определения этих классов. А правильность разбиения на классы зависит от способностей тестировщиков.
  • В случае сложных приложений определить все наборы классов эквивалентности очень сложно и для этого от тестировщика требуется большой опыт.
  • Неправильно определенные классы эквивалентности могут привести к снижению тестового покрытия и возможной утечке дефектов.

Перевод статьи «Equivalence Class Partitioning».

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

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