Технологии разработки программного обеспечения


Тестирование на основе состояний


В качестве источника исходной информации используют диаграммы схем состояний, фиксирующие динамику поведения класса. Данный способ позволяет получить набор тестов, проверяющих поведение класса и тех классов, которые сотрудничают с ним [43]. В качестве примера на рис. 16.2 показана диаграмма схем состояний класса Счет.

Рис. 16.2. Диаграмма схем состояний класса Счет

Видим, что объект Счета начинает свою жизнь в состоянии Пустой счет, а заканчивает жизнь в состоянии Удалить счет. Наибольшее количество событий (и действий) связано с состоянием Работа счета. Для упрощения рисунка здесь принято, что имена событий совпадают с именами действий (поэтому действия не показаны).

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

Тестовый вариант 1: Открыть >УстановитьСчет >Положить (начальное) >Снять (конечное) >Закрыть.

Отметим, что эта последовательность аналогична минимальной тестовой последовательности. Добавим к минимальной последовательности дополнительные тестовые варианты:

Тестовый вариант 2: Открыть >УстановитьСчет >Положить (начальное) >Положить >Остаток >Кредит >Снять (конечное) >Закрыть

Тестовый вариант 3: Открыть >Установить >Положить (начальное) >Положить >Снять >ИнфоСчета >Снять (конечное) >Закрыть

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

Возможна другая методика исследования состояний.— «преимущественно в ширину».

В этой методике:

q       каждый тестовый вариант проверяет один новый переход;

q       новый переход можно проверять, если полностью проверены все предшествующие переходы, то есть переходы между предыдущими состояниями.




Начало  Назад  Вперед



Книжный магазин