Меню


Site Logo

Принцип тестирования модулей

Как отдельные модули, так и продукт в целом, тестируются по одному принципу — непосредственное сравнение для каждого элемента продукта предусмотренной реакции («события») на возможное воздействие («сообщение»).

Универсальный тестирующий модуль

Для автоматизации тестирования модулей используется универсальный тестирующий модуль — Тестер. Он может использоваться для тестирования любого модуля, в том числе и себя самого.

Тестирование выполняется посредством приема и отправки сообщений.

При этом тестируемый модуль находится в тестовом окружении, когда вместо реальных модулей с ним по протоколу «общается» проверяющий модуль. Само тестирование строится по принципу отправки модулю каких-то сообщений команд и контроле получаемой реакции модуля.

Сценарий тестирования

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

Скрипт тестирования — текстовый файл, написанный на специально разработанном в Uniteller структурированном языке TSL (Test Script Language). Обычно каждый скрипт соответствует отдельному пункту в чек-листе и соответственно отдельному сценарию поведения модуля.

Структура скрипта тестирования

Любой скрипт тестирования состоит из трех секций:

  • Head — содержит информацию о скрипте тестирования (имя, описание цели, связь с пунктами в чек-листе).
  • Modules — содержит описание тестируемых модулей, загружаемых для выполнения теста.
  • Script— содержит сообщения, подаваемые на вход тестируемого модуля, и соответствующие им сообщения, ожидаемые на выходе из тестируемого модуля. Может содержать и другие инструкции, влияющие на очерёдность проведения тестирования.

Секция Modules имеет следующий формат:

Modules
  Alias : имя_модуля
    [Generation : поколение_модуля]

где:

  • Alias — указываемый уникальный алиас тестируемого модуля;
  • имя_модуля— полное имя тестируемого модуля;
  • поколение_модуля— целочисленный номер поколения модуля (необязательный параметр).

Секция Script имеет следующий формат:

Script
  Номер_шага : Команда [параметры команды] 
    [доп. ключи команды]

где:

  • Номер_шага— порядок в очереди теста выполнения этой инструкции (цифры и буквы латинского алфавита).
  • Команда— инструкция модулю тестирования.

Секция Script обязательна в каждом скрипте тестирования.

Как описать отправку сообщения

Для отправки сообщения из скрипта модулю-получателю используется инструкция Send. Она имеет следующий формат:

# : Send  [: ][, Пауза]
  Имя_события : Поколение
    [Параметр1 : Значение1]
    [...]
    [ПараметрX : ЗначениеX]

где:

  • Alias1 — алиас модуля-получателя.
  • Alias2 — алиас модуля-отправителя (если отсутствует, то событие отправляется от имени Тестера).
  • Пауза — пауза в миллисекундах перед отправкой сообщения (если отсутствует, то событие отправляется сразу).
  • Имя_события — полное имя отправляемого события.
  • Поколение — номер поколения отправляемого события (необязательный параметр).
  • Параметр1(-X) — имя(-ена) параметра(-ов) отправляемого события.
  • Значение1(-X) — значение(-я) соответствующего параметра(-ов) отправляемого события.

Если какой-то параметр отправляемого события не будет указан, то ему будет присвоено значение по умолчанию (если такое определено в протоколе) или значение по умолчанию для данного типа: пустая строка, 0 или false.

Как описать прием сообщения

Инструкция Receive инициирует приём от заданного модуля определённого события и возможность контроля его параметров. Она имеет следующий формат:

# : Receive  [, Время_ожидания]
  Имя_события : Поколение
    [Параметр1 : Значение1]
    [...]
    [ПараметрX : ЗначениеX]

где:

  • Alias — алиас модуля, от которого ожидается заданное событие.
  • Время_ожидания — время в миллисекундах, в течение которого Тестер ждёт заданное событие (если отсутствует, то событие ожидается одну минуту).
  • Имя_события — полное имя ожидаемого события.
  • Поколение — номер поколения ожидаемого события.
  • Параметр1(-X) — имя(-ена) параметра(-ов) ожидаемого события.
  • Значение1(-X) — значение(-я) соответствующего параметра(-ов) ожидаемого события, используется для контроля принятого сообщения.

Выполняется мягкое сравнение принятого события с ожидаемым, то есть, необязательно указывать все параметры ожидаемого события – только те, которые интересуют. Если принимаемое значение неизвестно, но наличие параметра необходимо проверить, то вместо значения можно указать «*».