Стохастическое тестирование класса
При стохастическом тестировании исходные данные для тестовых вариантов генерируются случайным образом. Обсудим методику, предложенную С. Кирани и В.Тсай[43].
Рассмотрим класс Счет, который имеет следующие операции: Открыть, Установить, Положить, Снять, Остаток, Итог, ОграничитьКредит, Закрыть.
Каждая из этих операций применяется при определенных ограничениях:
q счет должен быть открыт перед применением других операций;
q счет должен быть закрыт после завершения всех операций.
Даже с этими ограничениями существует множество допустимых перестановок операций. Минимальная работа экземпляра Счета включает следующую последовательность операций:
Открыть > Установить > Положить > Снять > Закрыть.
Здесь стрелка обозначает операцию следования. Иначе говоря, здесь записано, что экземпляр Счета сначала выполняет операцию открытия, затем установки и т. д. Эта последовательность является минимальным тестовым вариантом для Счета. Впрочем, в эту последовательность можно встроить группировку, обеспечивающую создание других вариантов поведения:
Открыть > Установить > Положить > [Остаток?Снять?Итог?ОграничитьКредит?Положить]n > Снять > Закрыть.
Здесь приняты дополнительные обозначения: точка означает операцию И/ИЛИ, пара квадратных скобок — группировку, а показатель степени — количество повторений группировки.
Набор различных последовательностей может генерироваться случайным образом:
Тестовый вариант N:
Открыть > Установить > Положить > Остаток > Снять >Итог > Снять > Закрыть.
Тестовый вариант М:
Открыть > Установить > Положить > Итог > ОграничитьКредит > Снять > Остаток > Снять > Закрыть.
Эти и другие тесты случайных последовательностей проводятся для проверки различных вариантов жизни объектов.