Стохастическое тестирование
Стохастические тестовые варианты генерируются следующей последовательностью шагов.
1. Для создания тестов используют списки операций каждого класса-клиента. Операции будут посылать сообщения в классы-серверы.
2. Для каждого созданного сообщения определяется класс-сотрудник и соответствующая операция в классе-сервере.
3. Для каждой операции в классе-сервере, которая вызывается сообщением из класса-клиента, определяются сообщения, которые она, в свою очередь, посылает.
4. Для каждого из сообщений определяется следующий уровень вызываемых операций; они вставляются в тестовую последовательность.
В качестве примера приведем последовательность операций для класса Банк, вызываемых классом Банкомат:
ПроверитьСчет >ПроверитьРIN >[[ПроверитьПолис >
ЗапросСнятия]?ЗапросДепозита?ИнфоСчета]n.
ПРИМЕЧАНИЕ
Здесь приняты следующие обозначения: стрелка означает операцию следования, точка — операцию И/ИЛИ, пара квадратных скобок — группировку операций классов, показатель степени — количество повторений группировки из операций классов.
Случайный тестовый вариант для класса Банк может иметь вид
Тестовый вариант N: ПроверитьСчет >ПроверитьРШ >ЗапросДепозита.
Для выявления сотрудников, включенных в этот тест, рассматриваются сообщения, связанные с каждой операцией, записанной в ТВ N. Для выполнения заданий ПроверитьСчет и ПроверитьРТМ Банк должен сотрудничать с классом ПодтверждениеПравильности. Для выполнения задания ЗапросДепозита Банк должен сотрудничать с классом Счет. Отсюда новый ТВ, который проверяет отмеченные сотрудничества:
Тестовый вариант М: ПроверитьСчетБанк >(ПодтвСчетПодтвПрав) >ПроверитьРINБанк >(ПодтвРШПодтвПрав) >ЗапросДепозитаБанк >(ПоложитьСчет).
В этой последовательности операции классов-сотрудников Банка помещены в круглые скобки, индексы отображают принадлежность операций к конкретным классам.