Основы тестирования программного обеспечения

       

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


Тесты составляются на основе спецификации требований. При формулировании требований на естественном языке существует проблема их различных толкований. Одним из способов избежать этого является применение формальных языков для описания структуры и поведения системы (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), посылая модели сигнал с параметрами в соответствии с запросом.

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


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



Содержание раздела