Документ взят из кэша поисковой машины. Адрес оригинального документа : 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
Часть XV - Таблично-древовидная комбинированная нотация TTCN  
Перейти в оглавлению раздела

Часть XV

15.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.

    Псевдособытия, например, позволяют указывать в качестве утверждений логические выражения, соответственно переход на поддерево такого утверждения произойдет при истинном значении этого выражения. Пример:

    
Дерево Tree1234

    (flag := FALSE, counter := 0)

    REPEAT SubTree(flag, counter) UNTIL [flag OR (counter=1000)]

    [flag]

    !THANKS

    [counter=1000]

    !TOO_LATE

    
Дерево SubTree

    Параметры 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. Таким образом, для спецификации тестовых комплектов обе рассмотренные выше нотации используются совместно.



Предыдущая глава Оглавление Следующая глава