Документ взят из кэша поисковой машины. Адрес
оригинального документа
: http://old.hcs.cmc.msu.ru/lectures/AnalizeIT/Ch15_3.html
Дата изменения: Thu Jan 15 23:15:44 2004 Дата индексирования: Mon Oct 1 23:24:29 2012 Кодировка: Windows-1251 |
Часть XV15.3. Таблично-древовидная комбинированная нотация TTCNОсновным средством описания тестовых ситуаций служит специальный язык спецификаций или нотация TTCN (TTCN - Tree and Tabular Combined Notation - таблично-древовидная комбинированная нотация [X.292]). Таблично-древовидная комбинированная нотация (TTCN) была разработана для абстрактного описания взаимодействия посредством обмена сообщениями между тестируемой протокольной реализацией и тестирующей системой. Язык TTCN позволяет описывать статические (типы данных, форматы протокольных блоков данных и абстрактных сервисных примитивов) и динамические аспекты такого взаимодействия, выраженные в виде абстрактного тестового комплекта. Для описания статических свойств элементов взаимодействия используется рассмотренный выше язык ASN1. В данном контексте все внимание уделим динамической части нотации, позволяющей описывать последовательности взаимодействий в точках контроля и наблюдения (далее, точках PCO) между уровнями модели взаимосвязи открытых систем. В стандарте X.292 язык TTCN определяется в двух формах: TTCN.MP и TTCN.GR, которые эквивалентны по своей выразительной мощности. Если TTCN.GR использует визуальные способы представления (таблицы, отступы от левого поля и т.п.), то в TTCN.MP та же семантика выражается посредством определенных синтаксических конструкций (ключевые слова, специальные идентификаторы), т.к. TTCN.MP предназначается для машинной обработки. Дальнейшее изложение будет посвящено TTCN.GR. Деревья поведения и утверждения TTCN События, которые наблюдаются или, наоборот, инициируются тестирующей системой в точках PCO, описываются посредством утверждений в вершинах дерева поведения. Дерево 'растет' слева направо, так же направлена ось времени. Вершины, принадлежащие одному слою, размещаются с одинаковым отступом от левого поля, они описывают альтернативные утверждения. Переход к следующему слою дерева означает последовательное выполнение утверждений. Таким образом, можно описать поведение тестера (и, соответственно, предполагаемое поведение протокола). При достижении той или иной терминальной вершины можно сформулировать вердикт о конформности реализации, который в TTCN.GR указывается справа от вершины. Пример структуры дерева: Statement_A Statement_B Statement_C Statement_D Statement_E Statement_F Statement_G Исполнение утверждений дерева происходит в соответствии с анализом зафиксированного состояния системы, т.е. возможные альтернативы проверяются последовательно, в порядке перечисления, в это время состояние системы не изменяется. Если ни одно из утверждений не может быть выполнено, то рассматривается состояние системы через какой-то малый промежуток времени, проверка выполнимости альтернатив повторяется. Если какое-то утверждение выполняется при очередной проверке, то управление передается на поддерево, вершиной которого это утверждение является. Существует три вида утверждений: - конструкты, - события, - псевдособытия. Конструкты предназначены для более компактного описания тестовой ситуации, включают операцию подстановки поддерева ATTACH, операцию безусловного перехода GOTO, а также цикл REPEAT:UNTIL. Псевдособытия, например, позволяют указывать в качестве утверждений логические выражения, соответственно переход на поддерево такого утверждения произойдет при истинном значении этого выражения. Пример: (flag := FALSE, counter := 0) REPEAT SubTree(flag, counter) UNTIL [flag OR (counter=1000)] [flag] !THANKS [counter=1000] !TOO_LATE Параметры flag: Boolean; number: INTEGER ?B (flag := TRUE) ?OTHERWISE (number := number + 1) В этом примере выражения в квадратных и круглых скобках - псевдособытия. Первые содержат булевские выражения, и соответствующие альтернативы выбираются в случае их истинности. Утверждения в круглых скобках всегда истинны: после их исполнения происходит немедленный переход на соответствующее поддерево. Так же видно, что TTCN допускает параметризацию (параметры flag и number дерева SubTree). Аппарат событий В TTCN определяется четыре вида событий: SEND, RECEIVE, TIMEOUT и OTHERWISE. Событие SEND выражается символом '!', за которым следует идентификатор сообщения, которое необходимо отправить. Событие RECEIVE выражается символом '?', за которым следует идентификатор сообщения, прием которого ожидается. Оба утверждения могут предваряться идентификатором точки PCO. Событие OTHERWISE всегда ставится в качестве последней альтернативы и имеет место при приеме произвольного сообщения. Приведем пример использования этих утверждений: L!CONNECTrequest L?CONNECTconfirm L!DATArequest L?DATAindication L!DISCONNECTrequest PASS L?DISCONNECTindication FAIL L?DISCONNECTindication INCONC Вердикты Как было сказано выше, справа от утверждения терминальной вершины дерева поведения указывается вердикт, который выносится при завершении исполнения теста на данной вершине. В TTCN определяются три типа вердикта: PASS, означающий успешное завершение теста и достижение целей тестирования; FAIL, означающий, что произошла ошибка при взаимодействии с протокольным объектом, либо не были достигнуты какие-то из целей тестирования; INCONC, означающий, что тест прошел без ошибок (нарушений конформности не выявлено), но цели тестирования достигнуты не были, в силу чего не может быть вынесен вердикт PASS. Как отмечалось выше, язык TTCN является средством спецификации динамики ожидаемого поведения тестера реализации, взаимодействующего с ней в заданных точках PCO. Статические свойства элементов взаимодействия специфицируются средствами языка ASN1. Таким образом, для спецификации тестовых комплектов обе рассмотренные выше нотации используются совместно. |