ТТЦН-3
TTCN-3 (нотация тестирования и управления тестированием, версия 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 .
В 2008 году Open Mobile Alliance принял стратегию использования TTCN-3 для перевода некоторых тестовых примеров из спецификации вспомогательного теста в исполняемое представление. [3]
Проект AUTOSAR способствовал (2008 г.) использованию TTCN-3 в автомобильной промышленности. [4]
Проект 3GPP способствовал использованию TTCN-3 в мобильной индустрии. [5]
Архитектура
[ редактировать ]При исполнении архитектура организована следующим образом:
- TE: Исполняемый файл TTCN-3 — это исполняемая форма набора тестов.
- TRI: Интерфейс времени выполнения TTCN-3 — это интерфейс между TE и SUT. Он разделен на 2 части:
- SA: Системный адаптер
- PA: Адаптер платформы
- TCI: TTCN-3 Control Interfaces — это интерфейс для управления выполнением теста. Он разделен на:
- ТМ: Управление тестированием
- TL: Тестовое ведение журнала
- Компакт-диск: Кодирование и декодирование
- CH: Обработка компонентов
Пример кода
[ редактировать ]Это пример TTCN-3 с его графическим эквивалентом в MSC ( таблица последовательности сообщений ).

module TestSystem {
// Define a subtype of integer
type integer myNewType (0..50)
// Declare Request struct type with 2 fields
type record Request {
myNewType param1,
charstring param2
}
// Declare Answer struct type with one field
type record Answer {
myNewType param1
}
// Declare a message based communication port
type port cEnv_type message {
out Request;
in Answer;
}
// Declare the component on which the test case will run
type component sSystem {
port cEnv_type cEnv;
}
// The templates define the outgoing parameter values
// and verify the incoming parameter values
template Request Good_Req := {param1 := 42, param2 := "hello !" };
template Answer All_is_OK := {param1 := 0};
// Define testcase1 that will run on sSystem component
testcase testcase1() runs on sSystem
{
// Send Request message with (42, "hello !") as parmeters
cEnv.send(Good_Req);
// An alternative for the 2 possible answers
alt
{
// Do we receive Answer with 0 as parameter
[]cEnv.receive(All_is_OK)
{
// Pass verdict !
setverdict(pass)
}
// Or do we receive something else
[]cEnv.receive
{
// Fail verdict
setverdict(fail)
}
}
}
// Control part chains test cases execution automatically
control {
var verdicttype verdict1;
verdict1 := execute(testcase1());
}
}
См. также
[ редактировать ]Ссылки
[ редактировать ]- ^ Страница ETSI TTCN-3
- ^ Серия Z
- ^ Рабочая группа по совместимости OMA
- ^ Области применения TTCN-3 , официальный веб-сайт ETSI TTCN-3, получено 17 ноября 2015 г.
- ^ Центр мобильных компетенций 3GPP RAN5