TTCN-3 (Testing and Test Control Notation version 3) - это строго типизированный язык тестирования, используемый при тестировании на соответствие коммуникационных систем. TTCN-3 написан ETSI в серии ES 201 873 [1] и стандартизирован ITU-T в серии Z.160. [2] TTCN-3 имеет свои собственные типы данных и может быть объединен с определениями типов ASN.1 , IDL и XML .
Стандартная организация
Стандарт ITU-T TTCN-3 является частью серии Z и состоит из нескольких частей:
- Z.161 - Базовый язык, определяющий базовую текстовую нотацию
- Z.162 - Табличный формат представления (TFT) - способ представления тестов в табличном представлении
- Z.163 - Формат графического представления (GFT) - способ представить тесты графически с представлением, аналогичным MSC
- Z.164 - Операционная семантика - Определяет, как выполняется TTCN-3
- Z.165 - TRI - Определяет API, предоставляемый и требуемый для тестера
- Z.166 - TCI - Определяет API, предоставляемый и требуемый для тестового контроллера.
- Z.167 - ASN.1 - Определяет, как использовать типы данных ASN.1 в наборе тестов TTCN-3.
- Z.168 - отображение IDL в TTCN-3
- Z.169 - Использование схемы XML с TTCN-3
Языковая организация
- Модуль
- Контейнер верхнего уровня в наборе тестов - это модуль. Обычно это файл.
- Составная часть
- Компонент - это исполняющая сущность. На компоненте выполняется тестовый пример или функция.
- Порт
- Компоненты взаимодействуют друг с другом или с ТУС через порты, которые сопоставлены друг другу.
- Прецедент
- Тестовый пример - это последовательность отправки и получения. Когда сообщение отправляется в SUT (тестируемая система), может быть получено несколько возможных ответов.
- Альтернатива
- Поскольку тестовый пример представляет собой последовательность стимулов, за которой следует набор возможных ответов, обозначение включает альтернативы. Это компактный способ перечислить все возможные альтернативы сценария.
- Шаблон
- При отправке или получении информации значение параметров имеет первостепенное значение. Они должны быть определены при отправке и должны быть проверены при получении. Конструкция шаблона направлена на определение значений параметров при отправке или проверку значений параметров при получении. Поскольку параметры могут быть довольно сложными, определение и проверка значений - это не вопрос одной строки. Шаблон позволяет выполнить сложную проверку в одном операторе, чтобы тестовый пример оставался разборчивым.
- Вердикт
- Вердикт является результатом выполнения тестового примера. Имеет 5 возможных значений: нет, пройден, несовместим, не пройден, ошибка.
Приложения
TTCN-3 использовался для определения наборов тестов на соответствие стандартным протоколам SIP , WiMAX и DSRC .
Mobile Alliance Open , принятый в 2008 году стратегию использования TTCN-3 для перевода некоторых из тестов в тестируемой Enabler спецификации в исполняемое представление. [3]
Проект AUTOSAR способствовал (2008 г.) использованию TTCN-3 в автомобильной промышленности. [4]
Проект 3GPP способствовал использованию TTCN-3 в мобильной индустрии. [5]
Архитектура
При выполнении архитектура организована следующим образом:
- TE: TTCN-3 Executable - это исполняемая форма набора тестов.
- TRI: Интерфейс времени выполнения TTCN-3 - это интерфейс между TE и SUT. Он разделен на 2 части:
- SA: Системный адаптер
- PA: Адаптер платформы
- TCI: Интерфейсы управления TTCN-3 - это интерфейс для управления выполнением теста. Он разделен на:
- TM: Управление тестированием
- TL: ведение журнала тестов
- CD: Кодирование и декодирование
- CH: обработка компонентов
Пример кода
Это пример TTCN-3 с его графическим эквивалентом в MSC ( диаграмма последовательности сообщений ).
module TestSystem { // Определяем подтип целочисленного типа integer myNewType ( 0 .. 50 ) // Объявление типа структуры запроса с 2 полями типа записи Request { myNewType param1 , charstring param2 }// Объявление типа структуры ответа с одной записью типа поля Ответ { myNewType param1 }// Объявление типа порта связи на основе сообщений port cEnv_type message { out Request ; в ответе ; }// Объявление компонента, на котором будет выполняться тестовый пример, type component sSystem { порт cEnv_type cEnv ; }// Шаблоны определяют значения исходящих параметров // и проверяют шаблоны значений входящих параметров Request Good_Req : = { param1 : = 42 , param2 : = "hello!" }; шаблон Ответ All_is_OK : = { param1 : = 0 }; // Определение testcase1 , который будет работать на sSystem компонента тестового testcase1 () работает на sSystem { // Отправляем сообщение запроса с (42, "привет!") В качестве параметра cEnv . отправить ( Good_Req ) ; // Альтернатива для 2 возможных ответов alt { // Получаем ли мы ответ с 0 в качестве параметра [] cEnv . получить ( All_is_OK ) { // Вынести вердикт! setverdict ( пройти ) } // Или мы получаем что-то еще [] cEnv . получить { // Неудачный вердикт setverdict ( fail ) } } }// Контролировать выполнение контрольных примеров цепочек частей автоматически control { вар verdicttype verdict1 ; вердикт1 : = выполнить ( testcase1 ()) ; }}
Смотрите также
Рекомендации
- ^ Страница ETSI TTCN-3
- ^ Z серии
- ^ Рабочая группа по совместимости OMA
- ^ Области применения TTCN-3 , официальный веб-сайт ETSI TTCN-3, получено 17 ноября 2015 г.
- ^ Центр мобильной компетенции 3GPP RAN5