Опубликован: 05.03.2005 | Уровень: специалист | Доступ: платный

Практическая работа 7: Автоматическая генерация тестов на основе формального описания

Тесты составляются на основе спецификации требований. При формулировании требований на естественном языке существует проблема их различных толкований. Одним из способов избежать этого является применение формальных языков для описания структуры и поведения системы (UML, SDL, MSC). Кроме того, описание требований на формальном языке является формальным описанием тестовых случаев, на основе которого можно генерировать тестовый код. В практикуме для создания тестов будет использоваться язык диаграмм взаимодействия (Message Sequence Charts, MSC - п.11). В этом случае под тестом мы будем понимать его представление в виде MSC- диаграммы.

В Практикуме для реализации тестирования используется учебная система автоматизации тестирования TAT - Test Automation Training. На вход система принимает формальное описание тестов в виде MSC диаграмм (в текстовом формате MSC PR). На основе этих MSC диаграмм и конфигурационного файла (в формате XML), который описывает интерфейс тестируемой системы, генерируется тест на С#. (Интерфейс тестируемого приложения (Application Under Test - AUT) содержит сигналы, сообщения, транзакции, которые система может посылать тестовому окружению или может принимать от тестового окружения). Для запуска системы с этим тестом необходимо написать Wrapper, который транслирует сигналы от теста к системе и наоборот.

Таким образом, методика тестирования системы с помощью TAT выглядит следующим образом:

  • написать Wrapper для тестируемой системы;
  • создать файл конфигурации;
  • создать формальное описание тестов в виде MSC-диаграмм;
  • нарисовать MSC-диаграммы в MS Visio;
  • сгенерировать с помощью макроса тестовый файл в формате MPR;
  • настроить в ConfigTAT проект теста (указать пути) или набора тестов;
  • запустить тест или набор тестов;
  • проанализировать получаемые log-файлы.

В данном случае wrapper и файл конфигурации (первые два пункта методики) уже созданы, поэтому вам необходимо будет выполнить только п. 3-6.

В рассматриваемом подходе не только запуск тестов и проверка результатов прогона тестового случая будут осуществляться автоматически, но и сам тестовый код будет генерироваться автоматически на основе MSC-диаграммы (рис. 7.1).

При разработке тестов был использован следующий подход:

Когда реализуется определенное событие, модель посылает сигнал запроса состояния к тестовому окружению.

Система и ее окружение (автоматическая генерация)

Рис. 7.1. Система и ее окружение (автоматическая генерация)

Состояние окружения задается в тесте ( входные данные ) в виде параметров сигналов. Тест возвращает состояние окружения ( StoreStat, AxlePar, RollerPar, StoreMessage, CommandStatus ), посылая модели сигнал с параметрами в соответствии с запросом.

Получаемая информация сохраняется в журнале теста.

Взаимодействие теста и модели (MSC-диаграмма)

Рис. 7.2. Взаимодействие теста и модели (MSC-диаграмма)

Подробное описание тестового случая №1

Изучение материала настоящего пункта полезно предварить ознакомлением с п. 9, содержащим описание подхода к автоматической генерации тестов на основе MSC. Здесь рассматривается тест, представляющий собой MSC-диаграмму, созданную в Visio. Подобные тесты необходимо будет разработать (нарисовать) самостоятельно при выполнении заданий. Приведенный пример был разработан в соответствии со спецификацией тестового случая №1 (рис. 7.3).

Тестовый случай №1

Рис. 7.3. Тестовый случай №1
Федор Антонов
Федор Антонов

Здравствуйте!

Записался на ваш курс, но не понимаю как произвести оплату.

Надо ли писать заявление и, если да, то куда отправлять?

как я получу диплом о профессиональной переподготовке?

Сергей Чурбанов
Сергей Чурбанов
Юрий Коробков
Юрий Коробков
Россия, Москва, МЭИ, 1998