В книге «Тестирование программного обеспечения. Основы» мной подробно описан двадцать один метод проектирования тестов. В данной статье мы сосредоточимся на одном из них — методе дерева классификации. Метод дерева классификации (классификационного дерева) – метод, используемый для проектирования тестов на основании различных условий и их комбинаций, описанных с помощью дерева классификации.

Англоязычное именование метода «Classification tree method». Этот метод помогает определить, какие тесты следует провести, чтобы максимально охватить разнообразные сценарии работы программы.

Алгоритм проектирования тест-кейсов по данному методу:

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

Рассмотрим на примере интернет-магазина.

Определяем факторы, которые влияют на поведение программы:

  1. Категория товаров.
  2. Способ оплаты.
  3. Тип пользователя.

    Определяем значения для каждого фактора:

    1. Фактор: Категория товаров:
      • Значение: Электроника.
      • Значение: Одежда.
      • Значение: Книги.
    2. Фактор: Способ оплаты:
      • Значение: Картой.
      • Значение: Наличными.
      • Значение: Сертификатом.
    3. Фактор: Тип пользователя:
      • Значение: Обычный клиент.
      • Значение: VIP клиент.

    Строим дерево:

    Дерево классификации

      Самый верхний узел дерева – тестируемая программа (интернет-магазин). Следующий уровень узлов – факторы программы (категория товара, способ оплаты, тип пользователя). Следующий уровень узлов – значения факторов (электроника, одежда, книги и т.д.) или дополнительные факторы, вложенные в основной фактор. Какие дополнительные факторы могут быть? Пример:

      Фактор 1 уровня: Тип пользователя:

      • Фактор 2 уровня: Зарегистрированный:
        • Значение: VIP пользователь.
        • Значение: Обычный пользователь.
      • Фактор 2 уровня: Незарегистрированный:
        • Значение: Обычный пользователь.

      С дополнительными факторами разобрались. Их вложенность зависит от сложности программы.

      После того как диаграмма создана требуется от каждого значения провести линию вниз. После этого провести ряд горизонтальных линий. У нас получилась сетка линий под диаграммой. Для наглядности у нас горизонтальные линии подписаны («Тест 1», «Тест 2» и т.д.). Смотрим на дерево классификаций. Теперь перейдём к рассмотрению тестов. «Тест 1» (первая горизонтальная линия):

      • Ставим маркер на пересечении горизонтальной линии и первой слева вертикальной линии под значением «Электроника». Этим мы обозначили, что надо проверить покупку электроники. Вертикальные линии напротив одежды и книг пропускаем, так как их мы не собираемся в данном тесте покупать.
      • Ставим маркер на пересечении горизонтальной линии и вертикальной линии под значением «Карта». Этим мы обозначаем, что будем покупать электронику оплачивая её картой. Вертикальные линии напротив наличные и сертификат пропускаем, так как не собираемся платить наличными и сертификатом.
      • Ставим маркер на пересечении горизонтальной линии и вертикальной линии под значением «VIP клиент». Этим мы обозначаем, что будем покупать электронику, оплаченную картой от имени VIP клиента. Вертикальную линию напротив обычного клиента пропускаем, так как не собираемся в этом тесте от его имени совершать покупку.

      Глянув на «Тест 1», мы видим, что, выполняя данный тест нам необходимо войти в личный кабинет интернет-магазина под VIP клиентом и купить товар из категории электроники оплатив его картой. Аналогичным образом расставляем маркеры для остальных тестов. В итоге у нас получилось 18 тестов. Теперь имея эти данные, мы можем приступать к написанию чек-листа проверок или тест-кейсов опираясь на данные дерева классификаций.

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

      Попробуйте самостоятельно дописать тесты продолжив вниз сетку дерева классификации зная, что:

      • Совместно можно купить товары: из электроники и одежды; электроники и книг; одежды и книг; из всех имеющихся типов товаров.
      • Одновременно можно совершать оплату: картой и сертификатом; наличными и сертификатом.