TTCN-3编程语言ES 201 873-1:MTS测试方法与核心语言标准

需积分: 9 4 下载量 178 浏览量 更新于2024-07-23 收藏 1.47MB PDF 举报
TTCN-3 编程语言 ETSI ES 201 873-1 是一份由欧洲电信标准化协会 (ETSI) 发布的重要标准,其版本 V4.2.1 更新于2010年7月。这份标准专注于“Methods for Testing and Specification (MTS)”领域,特别是关注第三版的测试和测试控制符号 (TTCN-3)。TTCN-3 Core Language 是标准的主要组成部分,它提供了一种统一且强大的方法论来设计、实现和执行复杂的网络和通信系统测试。 TTCN-3 的核心目的是为了简化和标准化测试过程,使得不同厂商能够开发互操作的测试工具和服务。它强调了测试方法学 (methodology),即一套系统化的步骤和流程,用于确保产品的功能性和可靠性。MTS 部分则关注整个测试生命周期的规范,包括需求分析、测试设计、执行和报告等各个环节。 关键词"methodology", "MTS", "testing", 和 "TTCN" 显示了标准的重点在于测试策略、规范框架和使用的语言特性。TTCN-3 旨在支持电信和网络行业中的自动化测试,其应用范围广泛,涵盖了路由、协议验证、设备兼容性测试等多方面。 此外,标准文档还提供了参考文献 RES/MTS-00111-1T3ED421CORE,表明此标准是基于之前的工作基础进行的,并可能与其他相关项目或技术有所交互。用户需要注意的是,尽管在线下载的电子版本可能存在一致性问题,但PDF打印版本在ETSISecretariat特定网络驱动器上的存储被视为最终参考。 ETSI 的地址和联系方式也包含其中,以便于获取最新版本或解决任何疑问。同时,用户应意识到该文档可能会随着技术进步和需求变化而进行修订或更新,因此在使用时需确保查阅的是当前有效的状态信息。 TTCN-3 编程语言 ETSI ES 201 873-1 是一个关键的标准化工具,对于从事电信和信息技术领域的测试工程师、标准化工作者以及网络设备制造商来说,理解和掌握其原则和语法至关重要。它通过提供一致的测试方法和框架,有助于提升产品质量和行业的互操作性。
2011-02-23 上传
目录 知识产权..........................................................................................................................................................13 前言 13 1 本文研究范围........................................................................................................................................14 2 参考........................................................................................................................................................14 3 定义和缩写............................................................................................................................................15 3.1 定义................................................................................................................................................................. 15 3.2 缩写................................................................................................................................................................. 17 4 介绍........................................................................................................................................................17 4.0 概述................................................................................................................................................................. 17 4.1 核心语言和表示格式..................................................................................................................................... 18 4.2 描述的一致性................................................................................................................................................. 19 4.3 一致性............................................................................................................................................................. 19 5 基本语言元素........................................................................................................................................19 5.0 概述................................................................................................................................................................. 19 5.1 语言元素的顺序............................................................................................................................................. 20 5.1.1 向前引用.................................................................................................................................................... 20 5.2 参数化............................................................................................................................................................. 21 5.2.0 静态参数化和动态参数化........................................................................................................................ 21 5.2.1 参数传递——传参和传值........................................................................................................................ 21 5.2.1.0 概要...................................................................................................................................................... 21 5.2.1.1 使用传参的方法传递参数.................................................................................................................. 22 5.2.1.2 使用传值的方法传递参数.................................................................................................................. 22 5.2.2 形参和实参列表........................................................................................................................................ 22 5.2.3 空形参列表................................................................................................................................................ 22 5.2.4 嵌入式参数列表........................................................................................................................................ 22 5.3 范围规则......................................................................................................................................................... 23 5.3.0 概要............................................................................................................................................................ 23 5.3.1 形参的作用范围........................................................................................................................................ 24 5.3.2 标识符的唯一性........................................................................................................................................ 25 5.4 标识符和关键字............................................................................................................................................. 25 6 类型和值................................................................................................................................................25 6.0 概要................................................................................................................................................................. 25 6.1 基本类型和值................................................................................................................................................. 26 6.1.0 简单基本类型和值.................................................................................................................................... 26 6.1.1 基本串类型和值........................................................................................................................................ 27 6.1.2 存取单个串元素........................................................................................................................................ 29 6.2 基本类型的子类型 ......................................................................................................................................... 29 6.2.0 概要............................................................................................................................................................ 29 6.2.1 值列表........................................................................................................................................................ 29 6.2.2 值域............................................................................................................................................................ 29 6.2.2.0 概要...................................................................................................................................................... 29 6.2.2.1 无限值域.............................................................................................................................................. 30 6.2.2.2 列表和值域的混合.............................................................................................................................. 30 6.2.3 串长度限定................................................................................................................................................ 30 6.3 结构化的类型和值......................................................................................................................................... 30 6.3.0 概要............................................................................................................................................................ 30 6.3.1 记录类型和值............................................................................................................................................ 31 6.3.1.0 概要...................................................................................................................................................... 31 6.3.1.1 引用一个record类型的字段................................................................................................................ 32 6.3.1.2 record类型的可选元素........................................................................................................................ 32 6.3.2 集合(Set)类型和值............................................................................................................................... 32 6.3.2.0 概要...................................................................................................................................................... 32 6.3.2.1 对集合类型字段的引用...................................................................................................................... 33 6.3.2.2 集合中的可选元素.............................................................................................................................. 33 6.3.3 单一类型的记录和集合类型.................................................................................................................... 33 6.3.4 枚举类和值................................................................................................................................................ 34 6.3.5 联合类型.................................................................................................................................................... 35 6.3.5.0 概要...................................................................................................................................................... 35 6.3.5.1 对union类型字段的引用..................................................................................................................... 35 6.3.5.2 可选性和联合类型.............................................................................................................................. 36 6.4 任意类型......................................................................................................................................................... 36 6.5 数组................................................................................................................................................................. 36 6.6 递归类型......................................................................................................................................................... 37 6.7 类型兼容性..................................................................................................................................................... 37 6.7.0 概要............................................................................................................................................................ 37 6.7.1 非结构化类型的类型兼容性.................................................................................................................... 37 6.7.2 结构化类型的类型兼容性........................................................................................................................ 38 6.7.2.0 概要...................................................................................................................................................... 38 6.7.2.1 枚举类型的兼容性.............................................................................................................................. 38 6.7.2.2 record和record of类型的类型兼容性.................................................................................................. 38 6.7.2.3 set和set of类型的类型兼容性............................................................................................................. 39 6.7.2.4 子结构的兼容性.................................................................................................................................. 40 6.7.3 成分类型的类型兼容性 ................................................................................................................................... 40 6.7.4 通信操作的类型兼容性............................................................................................................................ 40 6.7.5 类型变换.................................................................................................................................................... 40 7 模块(Modules )..................................................................................................................................40 7.0 概要................................................................................................................................................................. 40 7.1 模块的命名..................................................................................................................................................... 41 7.2 模块参数......................................................................................................................................................... 41 7.2.0 概要............................................................................................................................................................ 41 7.2.1 模块参数的默认值.................................................................................................................................... 41 7.3 模块定义部分................................................................................................................................................. 41 7.3.0 概要............................................................................................................................................................ 41 7.3.1 组定义........................................................................................................................................................ 42 7.4 模块控制部分................................................................................................................................................. 43 7.5 从模块引入..................................................................................................................................................... 43 7.5.0 概要............................................................................................................................................................ 43 7.5.1 可引入定义的结构.................................................................................................................................... 44 7.5.2 使用引入操作的规则................................................................................................................................ 45 7.5.3 递归引入Recursive import ........................................................................................................................ 47 7.5.4 引入单个定义............................................................................................................................................ 48 7.5.5 引入一个模块的所有定义........................................................................................................................ 48 7.5.6 引入组........................................................................................................................................................ 49 7.5.7 引入相同种类的定义................................................................................................................................ 49 7.5.8 处理引入中的名字冲突............................................................................................................................ 50 7.5.9 处理相同定义的多个引用........................................................................................................................ 50 7.5.10 从非TTCN-3模块中引入定义.................................................................................................................. 51 8 测试配置................................................................................................................................................51 8.0 概要................................................................................................................................................................. 51 8.1 端口通信模型................................................................................................................................................. 52 8.2 连接上的限制................................................................................................................................................. 52 8.3 抽象测试系统接口 ......................................................................................................................................... 54 8.4 定义通信端口类型 ......................................................................................................................................... 55 8.4.0 概要............................................................................................................................................................ 55 8.4.1 混合型端口................................................................................................................................................ 55 8.5 定义通信类型................................................................................................................................................. 56 8.5.0 概要............................................................................................................................................................ 56 8.5.1 在一个成分中声明本地变量和定时器.................................................................................................... 56 8.5.2 定义带有端口数组的成分........................................................................................................................ 57 8.6 SUT 内部的编址实体...................................................................................................................................... 57 8.7 成分引用......................................................................................................................................................... 57 8.8 定义测试系统接口 ......................................................................................................................................... 58 9 常量声明................................................................................................................................................59 10 变量声明................................................................................................................................................59 11 定时器声明............................................................................................................................................59 11.0 概要................................................................................................................................................................. 59 11.1 定时器做参数................................................................................................................................................. 60 12 消息声明................................................................................................................................................60 13 过程特征的声明....................................................................................................................................60 13.0 概要................................................................................................................................................................. 60 13.1 阻塞的和非阻塞的通信中的过程特征.......................................................................................................... 61 13.2 过程特征的参数............................................................................................................................................. 61 13.3 远程过程的返回值......................................................................................................................................... 61 13.4 例外描述......................................................................................................................................................... 61 14 模板声明................................................................................................................................................62 14.0 概要................................................................................................................................................................. 62 14.1 消息模板的声明............................................................................................................................................. 62 14.1.0 概要............................................................................................................................................................ 62 14.1.1 用于发送消息的模板................................................................................................................................ 63 14.1.2 用于接收消息的模板................................................................................................................................ 63 14.2 过程特征模板的声明..................................................................................................................................... 63 14.2.0 概要............................................................................................................................................................ 63 14.2.1 用于过程调用的模板................................................................................................................................ 64 14.2.2 用于接收过程调用的模板........................................................................................................................ 64 14.3 模板匹配机制................................................................................................................................................. 65 14.4 模板参数化..................................................................................................................................................... 66 14.4.0 概要............................................................................................................................................................ 66 14.4.1 带有匹配属性的参数化............................................................................................................................ 66 14.5 作为参数传递模板 ......................................................................................................................................... 67 14.6 修改模板......................................................................................................................................................... 67 14.6.0 概要............................................................................................................................................................ 67 14.6.1 修改模板的参数化.................................................................................................................................... 68 14.6.2 嵌入式修改模板........................................................................................................................................ 68 14.7 改变模板字段................................................................................................................................................. 68 14.8 匹配操作......................................................................................................................................................... 68 14.9 操作的值......................................................................................................................................................... 69 15 运算符....................................................................................................................................................69 15.0 概要................................................................................................................................................................. 69 15.1 算术运算符..................................................................................................................................................... 71 15.2 串运算符......................................................................................................................................................... 71 15.3 关系运算符..................................................................................................................................................... 71 15.4 逻辑运算符..................................................................................................................................................... 73 15.5 位运算符......................................................................................................................................................... 73 15.6 移位运算符..................................................................................................................................................... 74 15.7 循环移位运算符............................................................................................................................................. 75 16 函数和可选步........................................................................................................................................75 16.1 函数................................................................................................................................................................. 75 16.1.0 概要............................................................................................................................................................ 75 16.1.1 函数的参数化............................................................................................................................................ 76 16.1.2 调用函数.................................................................................................................................................... 76 16.1.3 预定义的函数............................................................................................................................................ 77 16.2 可选步............................................................................................................................................................. 78 16.2.0 概要............................................................................................................................................................ 78 16.2.1 可选步的参数化........................................................................................................................................ 78 16.2.2 可选步中的局部定义................................................................................................................................ 78 16.2.2.0 概要...................................................................................................................................................... 78 16.2.2.1 可选步中局部定义初始化的限制...................................................................................................... 79 16.2.3 可选步的调用............................................................................................................................................ 79 16.3 用于不同成分类型的函数和可选步.............................................................................................................. 80 17 测试例....................................................................................................................................................80 17.0 概要................................................................................................................................................................. 80 17.1 测试例的参数化............................................................................................................................................. 81 18 程序语句和操作的纵览........................................................................................................................81 19 基本的程序语句....................................................................................................................................83 19.0 概要................................................................................................................................................................. 83 19.1 表达式............................................................................................................................................................. 83 19.1.0 概要............................................................................................................................................................ 83 19.1.1 布尔表达式................................................................................................................................................ 83 19.2 赋值................................................................................................................................................................. 84 19.3 日志语句......................................................................................................................................................... 84 19.4 标签语句......................................................................................................................................................... 84 19.5 Goto语句......................................................................................................................................................... 84 19.6 If-else 语句...................................................................................................................................................... 85 19.7 for语句............................................................................................................................................................. 86 19.8 While语句 ....................................................................................................................................................... 86 19.9 do-while语句................................................................................................................................................... 86 19.10 停止执行语句................................................................................................................................................. 87 20 行为的程序语句....................................................................................................................................87 20.0 概要................................................................................................................................................................. 87 20.1 选择性行为..................................................................................................................................................... 87 20.1.0 概要............................................................................................................................................................ 87 20.1.1 选择对象行为的执行................................................................................................................................ 89 20.1.2 选择对象的选择和去除选择.................................................................................................................... 90 20.1.3 选择对象中的Else分支............................................................................................................................. 90 20.1.4 空................................................................................................................................................................ 91 20.1.5 alt语句的再次求值.................................................................................................................................... 91 20.1.6 作为选择对象的可选步的调用................................................................................................................ 91 20.2 repeat语句........................................................................................................................................................ 91 20.3 交叉的行为..................................................................................................................................................... 92 20.4 返回语句......................................................................................................................................................... 93 21 默认处理................................................................................................................................................93 21.0 概要................................................................................................................................................................. 93 21.1 默认机制......................................................................................................................................................... 94 21.2 缺省引用......................................................................................................................................................... 94 21.3 激活操作......................................................................................................................................................... 95 21.3.0 概要............................................................................................................................................................ 95 21.3.1 参数化可选步的激活................................................................................................................................ 95 21.4 去激活操作..................................................................................................................................................... 95 22 配置操作................................................................................................................................................96 22.0 概要................................................................................................................................................................. 96 22.1 创建操作......................................................................................................................................................... 96 22.2 连接和映射操作............................................................................................................................................. 97 22.2.0 概要............................................................................................................................................................ 97 22.2.1 一致性连接和映射.................................................................................................................................... 98 22.3 断开连接和取消映射操作 ............................................................................................................................. 98 22.4 MTC、System和Self 操作.............................................................................................................................. 98 22.5 启动测试成分操作 ......................................................................................................................................... 99 22.6 停止测试成分操作 ......................................................................................................................................... 99 22.7 运行操作....................................................................................................................................................... 100 22.8 完成操作....................................................................................................................................................... 100 22.9 使用成分数组............................................................................................................................................... 101 22.10 带有成分的any和all的使用总结.................................................................................................................. 102 23 通信操作..............................................................................................................................................102 23.0 概要............................................................................................................................................................... 102 23.1 通信操作的通用格式 ................................................................................................................................... 103 23.1.0 概要.......................................................................................................................................................... 103 23.1.1 发送操作的通用格式.............................................................................................................................. 103 23.1.2 接收操作的通用格式.............................................................................................................................. 104 23.2 基于消息的通信........................................................................................................................................... 104 23.2.0 概要.......................................................................................................................................................... 104 23.2.1 发送操作.................................................................................................................................................. 105 23.2.2 接收操作.................................................................................................................................................. 105 23.2.2.0 概要.................................................................................................................................................... 105 23.2.2.1 接收任意消息.................................................................................................................................... 106 23.2.2.2 在任意端口上接收............................................................................................................................ 106 23.2.3 触发操作.................................................................................................................................................. 106 23.2.3.0 概要.................................................................................................................................................... 106 23.2.3.1 在任意消息上的触发........................................................................................................................ 107 23.2.3.2 在任意端口上的触发........................................................................................................................ 107 23.3 基于过程的通信........................................................................................................................................... 107 23.3.0 概要.......................................................................................................................................................... 107 23.3.1 调用操作.................................................................................................................................................. 108 23.3.1.0 概要.................................................................................................................................................... 108 23.3.1.1 处理对一个调用的响应和例外........................................................................................................ 109 23.3.1.2 处理调用的超时例外........................................................................................................................ 109 23.3.1.3 调用不带返回值、输出参数、输入/出参数和例外的阻塞类过程................................................ 110 23.3.1.4 调用非阻塞类过程............................................................................................................................ 110 23.3.2 getcall操作............................................................................................................................................... 110 23.3.2.0 概要.................................................................................................................................................... 110 23.3.2.1 接收任意调用.................................................................................................................................... 111 23.3.2.2 在任意端口上获得调用.................................................................................................................... 111 23.3.3 应答操作.................................................................................................................................................. 111 23.3.4 获得应答操作.......................................................................................................................................... 112 23.3.4.0 概要.................................................................................................................................................... 112 23.3.4.1 获得任意应答.................................................................................................................................... 113 23.3.4.2 在任意端口上获得应答.................................................................................................................... 113 23.3.5 Raise操作................................................................................................................................................. 113 23.3.6 捕获操作.................................................................................................................................................. 113 23.3.6.0 概要.................................................................................................................................................... 113 23.3.6.1 超时例外............................................................................................................................................ 114 23.3.6.2 捕获任何意外.................................................................................................................................... 114 23.3.6.3 在任意端口上的捕获........................................................................................................................ 114 23.4 检查操作....................................................................................................................................................... 115 23.4.0 概要.......................................................................................................................................................... 115 23.4.1 检查任意操作.......................................................................................................................................... 115 23.4.2 在任意端口上的检查.............................................................................................................................. 115 23.5 控制通信端口............................................................................................................................................... 116 23.5.0 概要.......................................................................................................................................................... 116 23.5.1 清除端口操作.......................................................................................................................................... 116 23.5.2 启动端口操作 (The Start port operation )............................................................................................ 116 23.5.3 停止端口操作.......................................................................................................................................... 116 23.6 any和all与端口一起使用.............................................................................................................................. 117 24 定时器操作..........................................................................................................................................117 24.0 概要............................................................................................................................................................... 117 24.1 启动定时器操作........................................................................................................................................... 117 24.2 停止定时器操作........................................................................................................................................... 118 24.3 读定时器操作............................................................................................................................................... 118 24.4 运行定时器操作........................................................................................................................................... 118 24.5 超时操作....................................................................................................................................................... 119 24.6 与定时器一起使用的any和all的总结.......................................................................................................... 119 25 测试判定操作......................................................................................................................................119 25.0 概要............................................................................................................................................................... 119 25.1 测试例判定................................................................................................................................................... 120 25.2 判定值和重写规则....................................................................................................................................... 120 25.2.0 概要.......................................................................................................................................................... 120 25.2.1 错误判定.................................................................................................................................................. 121 26 外部动作..............................................................................................................................................121 27 模块控制部分......................................................................................................................................122 27.0 概要............................................................................................................................................................... 122 27.1 测试例的执行............................................................................................................................................... 122 27.2 测试例的终止 (Termination of test cases )................................................................................................ 122 27.3 测试例的控制执行....................................................................................................................................... 122 27.4 测试例选择................................................................................................................................................... 123 27.5 控制部分中定时器的使用 ........................................................................................................................... 124 28 描述属性..............................................................................................................................................124 28.0 概要............................................................................................................................................................... 124 28.1 显示属性....................................................................................................................................................... 124 28.2 值的编码....................................................................................................................................................... 125 28.2.0 概要.......................................................................................................................................................... 125 28.2.1 编码属性.................................................................................................................................................. 125 28.2.2 变量属性.................................................................................................................................................. 125 28.2.3 专用串...................................................................................................................................................... 126 28.2.4 无效的编码.............................................................................................................................................. 127 28.3 扩展属性....................................................................................................................................................... 127 28.4 属性的范围................................................................................................................................................... 127 28.5 属性的重写规则........................................................................................................................................... 127 28.6 改变引入语言元素的属性 ........................................................................................................................... 128 附录A (范式): BNF和静态语义...................................................................................................................130 A.1 TTCN-3 BNF .......................................................................................................................................130 A.1.0 概要............................................................................................................................................................... 130 A.1.1 语法描述的转换........................................................................................................................................... 130 A.1.2 语句终结符................................................................................................................................................... 130 A.1.3 标识符........................................................................................................................................................... 130 A.1.4 注释............................................................................................................................................................... 130 A.1.5 TTCN-3终结符.............................................................................................................................................. 131 A.1.6 TTCN-3句法BNF形式.................................................................................................................................. 132 A.1.6.0 TTCN模块............................................................................................................................................... 132 A.1.6.1 模块定义部分.......................................................................................................................................... 133 A.1.6.1.0 概要.................................................................................................................................................... 133 A.1.6.1.1 Typedef定义....................................................................................................................................... 133 A.1.6.1.2 常量定义............................................................................................................................................ 134 A.1.6.1.3 模板定义............................................................................................................................................ 134 A.1.6.1.4 函数定义............................................................................................................................................ 136 A.1.6.1.5 过程特征定义.................................................................................................................................... 136 A.1.6.1.6 测试例定义........................................................................................................................................ 136 A.1.6.1.7 可选步定义........................................................................................................................................ 137 A.1.6.1.8 引入定义............................................................................................................................................ 137 A.1.6.1.9 组定义................................................................................................................................................ 138 A.1.6.1.10 外部函数定义.................................................................................................................................... 138 A.1.6.1.11 外部常量定义.................................................................................................................................... 138 A.1.6.1.12 模块参数定义.................................................................................................................................... 138 A.1.6.2 控制部分.................................................................................................................................................. 139 A.1.6.2.0 概要.................................................................................................................................................... 139 A.1.6.2.1 变量实例化........................................................................................................................................ 139 A.1.6.2.2 定时器实例化.................................................................................................................................... 139 A.1.6.2.3 测试成分操作.................................................................................................................................... 139 A.1.6.2.4 端口操作............................................................................................................................................ 140 A.1.6.2.5 定时器操作........................................................................................................................................ 141 A.1.6.3 类型.......................................................................................................................................................... 141 A.1.6.4 值.............................................................................................................................................................. 142 A.1.6.5 参数化...................................................................................................................................................... 143 A.1.6.6 With语句.................................................................................................................................................. 143 A.1.6.7 行为语句.................................................................................................................................................. 144 A.1.6.8 基本语句.................................................................................................................................................. 145 A.1.6.9 其它产生式.............................................................................................................................................. 146 附录 B (范式): 匹配引入值..................................................................................................................147 B.1 模板匹配机制......................................................................................................................................147 B.1.0 概要............................................................................................................................................................... 147 B.1.1 匹配特殊值................................................................................................................................................... 147 B.1.1.1 省略值...................................................................................................................................................... 147 B.1.2 匹配机制代替值........................................................................................................................................... 147 B.1.2.0 概要.......................................................................................................................................................... 147 B.1.2.1 值列表...................................................................................................................................................... 148 B.1.2.2 值列表的补集.......................................................................................................................................... 148 B.1.2.3 任意值...................................................................................................................................................... 148 B.1.2.4 任意值或空.............................................................................................................................................. 148 B.1.2.5 值域.......................................................................................................................................................... 149 B.1.2.6 超集.......................................................................................................................................