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