В работе рассматривается оригинальный подход к модельно-ориентированному тестированию системы, основанному на UML, а также автоматической генерации тестов на основе критериев покрытия. Рассматриваемый метод встроен в LEIROS Test Designer tool и в настоящее время используется в корпоративном и финансовом софте. В работе определяется конкретное подмножество UML, необходимое для такого рода тестирования, также приводится пример его использования.
Авторы рассматривают модельно-ориентированное тестирование как процесс автоматизации генерации тестов, основыванный на поведенческой модели тестируемой системы (ТС). Сами тесты генерируются в виде последовательностей операций, выполняемых на ТС, результат которых сравнивается с заранее известными правильными ответами.
Описание подмножество UML (UML-MBT) основывается на 3 диаграммах: классов, объектов и состояний. При этом накладываются следующие ограничения: В диаграмме классов нет наследования, ассоциаций, аттрибуты могуть быть только Integer, Boolean, Enum. На диаграмме объектов запрещено динамическое их создание или уничтожение. Оно моделируется сорзданием / уничтожением ссылок. События в диаграмме состояний ограничены действиями, описанными в диаграмме классов. Каждое событие может быть обработано только после завершения обработки предыдущего.
Для вызовов и обработки переходов UML-MBT использует OCL-выражения двух типов: пассивные и активные. В пассивном контексте выражение интерпретируется как булева формула. Активные выражения подразумевают изменения состояния, модели, переменных или используется для инициализации возвращаемого значения действий. Выражения OCL могут быть использованы для описания поведения моделей и генерации тестов на основе этого поведения. UML-MBT поддерживает определение внешних условий для модели. Определяются такие условия в специальных блоках комментариев, ограниченных маркерами вида “/*@REQ:” и “@*/”.
В статье рассматривается конкретный пример применения UML-MBT для генерации тестов на основе описания модели. Моделируется стек с операциями push,pop,size и максимальным размером MAX. Ниже приведен список требований для модели, диаграмма классов, диаграмма объектов и диаграмма состояний. Также в работе приводится детальное описание переходов на диаграмме состояний.
В результате, приводится набор тестов, который будет сгенерирован на основе такой модели: