В книге «Тестирование программного обеспечения. Основы» мной подробно описан двадцать один метод проектирования тестов. В данной статье мы сосредоточимся на одном из них — методе дерева классификации. Метод дерева классификации (классификационного дерева) – метод, используемый для проектирования тестов на основании различных условий и их комбинаций, описанных с помощью дерева классификации.
Англоязычное именование метода «Classification tree method». Этот метод помогает определить, какие тесты следует провести, чтобы максимально охватить разнообразные сценарии работы программы.
Алгоритм проектирования тест-кейсов по данному методу:
- Определить основные факторы, которые влияют на поведение программы.
- Определить значения для каждого фактора.
- Построить дерево классификации, где каждый узел представляет собой один из факторов, а ветви из узла – соответствующие значения.
- Определить комбинации значений для конечных тест-кейсов.
Рассмотрим на примере интернет-магазина.
Определяем факторы, которые влияют на поведение программы:
- Категория товаров.
- Способ оплаты.
- Тип пользователя.
Определяем значения для каждого фактора:
- Фактор: Категория товаров:
- Значение: Электроника.
- Значение: Одежда.
- Значение: Книги.
- Фактор: Способ оплаты:
- Значение: Картой.
- Значение: Наличными.
- Значение: Сертификатом.
- Фактор: Тип пользователя:
- Значение: Обычный клиент.
- Значение: VIP клиент.
Строим дерево:
Самый верхний узел дерева – тестируемая программа (интернет-магазин). Следующий уровень узлов – факторы программы (категория товара, способ оплаты, тип пользователя). Следующий уровень узлов – значения факторов (электроника, одежда, книги и т.д.) или дополнительные факторы, вложенные в основной фактор. Какие дополнительные факторы могут быть? Пример:
Фактор 1 уровня: Тип пользователя:
- Фактор 2 уровня: Зарегистрированный:
- Значение: VIP пользователь.
- Значение: Обычный пользователь.
- Фактор 2 уровня: Незарегистрированный:
- Значение: Обычный пользователь.
С дополнительными факторами разобрались. Их вложенность зависит от сложности программы.
После того как диаграмма создана требуется от каждого значения провести линию вниз. После этого провести ряд горизонтальных линий. У нас получилась сетка линий под диаграммой. Для наглядности у нас горизонтальные линии подписаны («Тест 1», «Тест 2» и т.д.). Смотрим на дерево классификаций. Теперь перейдём к рассмотрению тестов. «Тест 1» (первая горизонтальная линия):
- Ставим маркер на пересечении горизонтальной линии и первой слева вертикальной линии под значением «Электроника». Этим мы обозначили, что надо проверить покупку электроники. Вертикальные линии напротив одежды и книг пропускаем, так как их мы не собираемся в данном тесте покупать.
- Ставим маркер на пересечении горизонтальной линии и вертикальной линии под значением «Карта». Этим мы обозначаем, что будем покупать электронику оплачивая её картой. Вертикальные линии напротив наличные и сертификат пропускаем, так как не собираемся платить наличными и сертификатом.
- Ставим маркер на пересечении горизонтальной линии и вертикальной линии под значением «VIP клиент». Этим мы обозначаем, что будем покупать электронику, оплаченную картой от имени VIP клиента. Вертикальную линию напротив обычного клиента пропускаем, так как не собираемся в этом тесте от его имени совершать покупку.
Глянув на «Тест 1», мы видим, что, выполняя данный тест нам необходимо войти в личный кабинет интернет-магазина под VIP клиентом и купить товар из категории электроники оплатив его картой. Аналогичным образом расставляем маркеры для остальных тестов. В итоге у нас получилось 18 тестов. Теперь имея эти данные, мы можем приступать к написанию чек-листа проверок или тест-кейсов опираясь на данные дерева классификаций.
Метод дерева классификации помогает систематизировать и оптимизировать проектирование тестов, покрывая максимальное количество возможных сценариев использования программы. Если программа имеет сложный и разветвлённый набор функций, то составление дерева классификации вручную сложное и трудоёмкое занятие или не представляется возможным. В этом случае используют специализированные инструменты для автоматического формирования дерева классификации.
Попробуйте самостоятельно дописать тесты продолжив вниз сетку дерева классификации зная, что:
- Совместно можно купить товары: из электроники и одежды; электроники и книг; одежды и книг; из всех имеющихся типов товаров.
- Одновременно можно совершать оплату: картой и сертификатом; наличными и сертификатом.