GB T 26857.1-2011 信息技术 开放系统互连 测试方法和规范 (MTS) 测试和测试控制记法 第3版 第1部分:TTCN-3核心语言.pdf

上传人:towelfact221 文档编号:257490 上传时间:2019-07-13 格式:PDF 页数:178 大小:6.43MB
下载 相关 举报
GB T 26857.1-2011 信息技术 开放系统互连 测试方法和规范 (MTS) 测试和测试控制记法 第3版 第1部分:TTCN-3核心语言.pdf_第1页
第1页 / 共178页
GB T 26857.1-2011 信息技术 开放系统互连 测试方法和规范 (MTS) 测试和测试控制记法 第3版 第1部分:TTCN-3核心语言.pdf_第2页
第2页 / 共178页
GB T 26857.1-2011 信息技术 开放系统互连 测试方法和规范 (MTS) 测试和测试控制记法 第3版 第1部分:TTCN-3核心语言.pdf_第3页
第3页 / 共178页
GB T 26857.1-2011 信息技术 开放系统互连 测试方法和规范 (MTS) 测试和测试控制记法 第3版 第1部分:TTCN-3核心语言.pdf_第4页
第4页 / 共178页
GB T 26857.1-2011 信息技术 开放系统互连 测试方法和规范 (MTS) 测试和测试控制记法 第3版 第1部分:TTCN-3核心语言.pdf_第5页
第5页 / 共178页
亲,该文档总共178页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

1、ICS 35.100 L 79 gB 中华人民主K-、和国国家标准GB/T 26857.1-2011 信息技术开放系统互连测试方法和规范(MTS)测试和测试控制记法第3版第1部分:TTCN-3核心语言Information technology-Open systems interconnection-Methods for testing and specificationCMTS)-The testing and test control notation一Version 3一-Part1 : TTCN-3 core language 2011-07-29发布。17$,曲。,106j-t.

2、 V-O,.i4 琛/龟-宿事/ / 中华人民共和国国家质量监督检验检疫总局中国国家标准化管理委员会2011-11-01实施发布GB/T 26857.1一20门目次前言.1 I 范围-2 规范性引用文件. 3 术语和定义4 缩略语.5 5 引论56 基本语言元素7 类型和值138 模块289 测试配置4010 对常量的声明481 对变量的声明412 对定时器的声明4813 对消息的声明.、.49 14 声明特征标记49日对模板的声明50M 运算符四川函数和备选步MM 测试用例6919 程序语句和操作的概览7020 基本程序语句21 行为性程序语句7722 默认处理Mn 配置操作8724 通信操

3、作9325 定时器操作10726 测试判定操作11027 外部动作11128 模块控制部分11229 规定的属性114附录A(规范性附录)巴克斯-诺尔形式(BNF)和静态语义120附录B(规范性附录)匹配入值.147附录C(规范性附录)TTCN-3预定义函数 154 附录D(规范性附录)其他类型与TTCN-3一起使用162附录E(资料性附录)有用的类型库171参考文献.174 GB/T 26857.1-2011 目U昌GB/T 26857(信息技术开放系统互连测试方法和规范(MTS)测试和测试控制记法由下列几部分组成:一一第1部分:TTCN-3核心语言;一一第2部分:TTCN-3表格表示格式;

4、一一第3部分:TTCN-3图形表示格式;一一一第4部分:TTCN-3操作语义;一一第5部分:TTCN-3运行时接口(TRI); 第6部分:TTCN-3控制接口(TCI)。本部分为GB/T26857的第1部分。本部分参考了ETSIES 201 873-1 v2. 2.1(测试方法和规范测试和测试控制记法第3版第1部分:TTCN-3核心语言。本部分按照GB/T1. 1-2009给出的规则起草。请注意本文件的某些内容可能涉及专利。本文件的发布机构不承担识别这些专利的责任。本部分由全国信息技术标准化技术委员会(SAC/TC28)归口。本部分起草单位:中国电子技术标准化研究所。本部分主要起草人:杨宏、郝

5、丹丹、卓兰、付晓宇、张晖、郭楠、徐全平、徐冬梅、张翠、董挺、韩丽。I 1 范围信息技术开放系统互连测试方法和规范(MTS)测试和测试控制记法第3版第1部分:TTCN-3核心语言GB/T 26857.1-2011 本部分规定了TTCN第3版即TTCN-3)核心语言。TTCN-3可作为各种通信端口上全部类型的反应系统测试的规范。典型的应用领域有协议测试t包括移动协议和互联网协议)、服务测试(包括增补服务)、模块测试、基于CORRA平台的测试、API等。TTCN-3不限于符合性测试,而能用于许多其他种类的测试,包括互操作性测试、健壮性测试、回归测试、系统和集成测试。对物理层协议的测试套规定不在本部分

6、的程围之内。TTCN-3旨在用作独立于测试方法、层和协议的测试套的规定。TTCN-3定义了各种表示格式,如表格表示格式和图形表示格式。这且表示恪式的规定不在本部分i应用之内。本部分定义了ASN.1使用的一个规定性方式司正如(B/TlG262. 1-2006标准中定义的一样。其他语言与TTCN-3的协调使用不在本部分研究范围之内。TTCN-3的设计虽然已经考虑到丁TCN-.3翻译器和编译器的最终实现,但从抽象测试套(ATS)到可执行测i式套CETS)的实现子应超出本部分的范围。2 规范性引用文件下列文件对于本文件的应用是必不可少的。凡是注日期的引用文件,仅注目期的版本适用于本文件。凡是不在日期的

7、引用文件,其最新版本(包括所有的修改单)适用于本文件。GB/T 198a-198 信息技术信息交换用七位编码字符集GB/T 5261岛1994、信息技术七位和八位编码字符集的控制功能GB/T 16262. 1寸2006信息技术抽象语法记法一(ASN.l)第1部分:基本记法规定GB/T 16262.2-2006 信息技术抽象语法记法一(ASN.1)第2部分:信息客体规定GB/T 16262.3-2006 信息技术抽象语法记法一(ASN.1)第3部分:约束规定GB/T 16262.4-2006 信息技术摘象语法记法一(ASN.l)第4部分:ASN. 1规定的参数化GB/T 16263.1-2006

8、 信息技术ASN.1编码规则第1部分:基本编码规则(BER)、正则编码规则(CER)和非典型编码规则(DER)规定GB/T 16263.2-2006 信息技术ASN.1编码规则第2部分:紧缩编码规则(PER)规定GB/T 17178.1-1997信息技术开放系统互连一致性测试方法和框架第1部分:一般概念GB/T 17969. 1-2000 信息技术开放系统互连OSI登记机构的操作规程第1部分:一般规程ISO/IEC 9646-3: 1998信息技术开放系统互连一致性测试方法和框架第3部分:数和表组合记法(TTCN)ISO/IEC 10646 信息技术通用多八位编码字符集(UCS)ITU-T建议

9、T.100(1988)交互图文的国际信息交换ITU-T建议T.101(1994)交互服务的国际互通ETSI ES 201 873-2(V2. 2. 1) 测试和规定方法(MTS)测试和测试控制记法第3版第2部G/T 26857.1一2011分:TTCN-3表格表示格式(TFT)ETSI TR 101 873-3(V1. 1. 2) 测试和规定方法(MTS)树和表组合记法第3版第3部分zTTCN-3图形表示格式(GFT)3 术语和定义GB/T 17178.1-1997、ISO/IEC9646-3中界定的以及下列术语和定义适用于本文件。3. 1 实参actual parameter 在调用处定义的

10、,作为参数传递给被调用实体(函数、测试用例、备选步等)的值、模板或名称引用(标识符)。3.2 3.3 3.4 注:在单一的启用中所传递的所有实参的数目、顺序和类型,应与被调用实体中定义的形参清单一致。基本类型basic types 本部分的7.2.1和7.2.2中所描述的预定义的TTCN-3类型的集合。注:基本类型集通过其名称加以引用。兼容类型compatible type 与TTCN-3类型兼容的类型。TTCN-3虽不是强制类型的,但确实要求类型兼容性。注:当7.8中的条件得到满足时,变量、常量、模板等即具有兼容类型的特征。通信端口communication port 便于测试组件之间通信的

11、抽象机制。注:通信端口在接收方向建模化为一个先进先出(FIF()队列。端口可基于消息的、基于过程的或这二者的混合。3.5 数据类型data types 单一的基本类型、基本串类型、结构化类型、专用数据类型以及基于以上类型而由用户定义的全部类型的统称(见表3)。3.6 己定义的(TTCN-3)类型defined (TTCN-3) types TTCN-3预定义的全部类型(基本类型、所有结构化类型、任何类型(anytype)类型、地址类型、端口类型、组件类型和默认类型)以及在所用模块中声明的或从另一TTCN-3模块中引人的用户定义的全部类型的集合。3. 7 动态参数化dynamic paramet

12、erization 其中实参依赖于运行时事件的一种参数化。例如实参的值是在运行期间接收的值或依赖于通过逻辑关系接收的值。3.8 异常exception 在基于过程的通信的情况下,当一个回复实体对远程过程调用出现不能以正常期望的响应来回答时的条件(如果已经定义)。3. 9 形(式)参(数)formal parameter 不是在定义一个实体(函数、测试用例、备选步等)时,而是在对其启用时进行解析的值或模板的名2 GB/T 26857.1-2011 称引用(标识符)。注:从启用该实体处传递在形参的位置所用的实际的值或模板(或其名称)。3. 10 全局可见global visibility 实体(模

13、块参数、常量、模板等)的属性,可以在定义实体的模块中任意位置引用该实体的标识符,包括所有函数、测试例以及定义在相同模块的备选步和该模块的控制部分。3. 11 实现一致性声明Implementation Conformance Statement ICS 由声称与所给规范一致的实现或系统的提供者所做的声明,陈述已实现了哪些能力。ICS可有以下诸表:协议ICS、轮廓ICS、轮廓特定ICS和信息客体ICS。3. 12 测试实现附加信息Implementation eXtra Information for Testing IXIT 由IUT的提供者或实现者所做的陈述,它包含或引用了与IUT及其测试环

14、境有关的全部信息。CS给出的信息除外),该陈述使测试实验室能对IUT运行适当的测试套。一份IXIT可以有以下诸表:协议IXIT、轮廓IXIT、轮廓特定IXIT和信息课题IXIT、TMP实现声明。3. 13 被测实现Implementation Under Test IUT 具有相邻用户/提供者关系的一个或多个OS1协议的一种实现,这种实现将作为开放式系统的一部分通过测试进行研究。3. 14 3. 15 3.16 3. 17 已知类型known types 已定义类型集,引入了ASN.l和其他外部类型。本地可见local visibility 实体(常量,变量等)的属性,实体标识符仅能在其被定义

15、的函数,测试例或备选步内部被引用。主测试组件Main Test Component MTC 测试组件配置中单个测试组件负责建立和控制并行测试组件并计算和分配测试判定。按值引用passing parameter by value 在可参数化的实体进入之前变量被评估的传参方式。注:仅变量值被传递且被调用实体内的变茧的变化在调用方看来对实际变量无影响。3. 18 按引用传参passing parameter by reference 传参方式,变量在函数、备选步等进入之前未被评估,且对参数的引用通过调用程序向被调用程序传递。注:被调用程序内部的变茧的变化在调用方看来对实际参数有影响。3. 19 并行

16、测试组件Parallel Test Component PTC 主测试组件创建的测试组件。3 GB/T 26857.1-20门3.20 根类型root type 可被追溯的用户定义的TTCN刁类型那个基本类型,结构化类型,特殊数据类型,特殊配置类型或特殊默认类型。注:考虑到基于引人的ASN.l类型的类型,跟类型有相关的TTCN-3类型来决定(见D.1. 3)。3.21 静态参数化static parameterization 参数化的种类,其中实际参数独立于运行时时间;如在编译时得知或以防在测试套执行开始得知模块参数(如,从测试套规范中得知,此处计算引入的定义,或测试系统在执行时间之前得知其值

17、)。3.22 强分类strong typing 通过类型名严格实施无异常的类型兼容。3.23 被测系统System Under lest SUT IUT所在的开放实系统。注:所有的类型在编译时被传知,如静态邹定。3.24 模板template TTCN-3模板时测试的特定数据结掏;用于发远不同值的集合或检查接收到的值的集合是否匹配模板规范。3.25 测试例test case 抽象或可执行的测试例。注:一般来讲。本部分的测试i司只表示一般的意义.有时也可以作为抽象测试例或.i:Jf执行测试例的简称。上下文应使意思明确。3.26 测试例错误阳tcase、error用于描述在测试例自身发现错误时测试

18、例执行结果。3.27 测试套test suite 引人完整规定所有定义和必要的完整定义测试例集合的行为描述的声明的显示或隐式的TTCN-3模块。3.28 测试系统test system 包括下测试器实现的实系统。注:统一测试系统可用作多个测试工具的一部分。3.29 测试系统接口test system interface 提供在(抽象)TTCN-3测试系统中可用端口到实测试系统提供的端口的映射的测试组件。3.30 测试兼窑性语言特征,允许使用给定类型的值或模板为另一类型的实际值(如,在分配时,作为在调用函数时的4 GB/T 26857.1-2011 实际参数,参考模板等,或作为函数返回值)。注:

19、值或模板的类型和当前值应与其他类型兼容。3.31 值参数化作为实际参数的对象值或模板传递到参数化对象的能力。注:该实际值参数然后完成该对象的规范。3.32 用户定义的类型基本类型的图表类型定义的类型,声明一个结构化的类型或用点符号限制任意类型为单类型。注:用户定义的类型被其标识符(名称)所引用。3.33 4 5 5. 1 值符号value notation 标识符与给定值或特定类型范围相关联所用的符号。注:值可为常量或变量。缩略语APl 应用程序接口(Application Programming Intedace) ASN.l 抽象语法i己法一(Abtract Syntax Notation

20、ne) ASP 抽象服务原语(Abstract Service Primitive) ATS 抽象测试套(Ab主tractTest Suitel BNF 巴科斯-诺尔范式(Backus-Nauer Form) CORBA 公用对象请求代理程序体系结构(Lmmon Object Reqllest Broker八rchitecture)ETS 可执行的测试套(Executable Test Suite) FIFO 先进先出(First 1n First Ollt) 1DL 接口描述语言(Intcrface Description Language) lUT 在测实现Omplementation U

21、nder Test) 岛1TC主测试组件(Master Test Componnt) PDU 协议数据单元(Protocol Data UniU PTC 并行测试组件(Parallel Test Compont;nt) (PHCS (协议)实现符合性声明( (ProtoD Implementation Conformance Statement) (P)IXIT 测试用(协议)实现附加信息( (Protocol) 1mp1ementation eXtra lnformation for Testing) SUT 在测系统(System Under Test) TTCN 测试和测试控制记法(Te

22、sting and Test Control Notation) 引论概述TTCN-3核心语言是一种灵活和强有力的语言,适用于各种通信接口上的全部类型的反应的系统测试的规定。所适用的典型领域有协议测试(包括移动和互联网协议)、服务测试(包括补充服务)、模块测试、基于CORBA平台的测试、APl测试等。TTCN-3并不仅限于符合性测试,而能用于许多其他种类的测试,包括互操作性测试、健壮性测试、回归测试、系统和集成测试。从句法的角度看,TTCN-3与在IS0/1EC9646-3中定义的该语言的早期各版本有很大区别。不GB/T 26857.1-2011 过,TTCN的业已证实的基本功能系统大多予以保

23、留,并在某些方面得到增强改进。TTCN-3包括以下重要特性:a) 规定动态并发测试配置的能力;b) 基于过程和基于消息的通信的操作;c) 规定编码信息和其他属性(包括用户可扩展性)的能力;d) 规定带有强有力匹配机制的数据和特征标记模板的能力pe) 类型和值的参数化;f) 测试判定的赋值和处理;g) 测试套参数化和测试用例选择机制;h) TTCN-3与ASN.l的结合使用(以及与其他语言例如IDL的潜在使用); i) 良好定义的句法,互换格式以及静态语义;j) 不同的表示格式(如:表格的和图形的表示格式hk) 精确的执行算法(操作语义)。5.2 核心语言和表示格式TTCN通常和符合性测试关联在

24、一起。为了在标准和行业两个领域都把该语言的应用范围扩展到更为广泛的测试应用范围,本部分将TTCN-3的规定分为以下几个部分:本部分为第1部分,定义TTCN-3核心语言;第2部分是TTCN-3表格表示格式,在外观和功能系统两方面都与TTCN的早期版本相似;第3部分是TTCN-3图形表示格式;第4部分包含了TTCN-3的操作语义;第5部分为TTCN-3运行时接口(TRD;第6部分为TTCN-3控制接口(TCD。其中核心语言及各种标识格式的视图如图l所示。ASN.l类型和值其他类型和值2其他类型和值n本核心语言有3个目的:TTCN-3 核心语言表格格式表示格式n图1对核心语言和各种表示格式的视图a)

25、 作为广义的基于文本的测试语言;b) 作为TTCN工具之间TTCN测试套的标准化互换格式;c) 作为各种表示格式的语义基础(如果适合,也是句法基础)。一一一CN-3用户l 阴影部分不在本文中定义本核心语言可独立于表示格式使用。但是,表格格式和图形格式均不能脱离核心语言使用。这些表示格式的使用和实现均应以本核心语言为基础。在不同表示格式预期集合中,表格格式和图形格式是首要的,其他格式可以是标准化的表示格式,也可以是由TTCN-3用户自行定义的专有表示格式。本部分中不定义这些附加格式。TTCN-3与ASN.l完全协调,后者可以与TTCN-3模块可选地一起使用,作为一种替换的数据类型和值句法。在TT

26、CN-3模块中采用ASN.l在本部分的附录D中定义。将TTCN-3与ASN.l相结合的办法有可能应用于支持其他类型的和值的系统与TTCN-3的一起使用。然而,本部分并不定义后GB/T 26857.1-2011 者的细节。TTCN-3核心语言由一种完全的句法(见附录A)和操作语义(见第4部分)定义。出于一些基础性应用领域或方法体系上的考虑,它包含不限制本语言使用的最低限度静态语义(本部分正文部分及附录A中给出)。使用专有工具所能获得的测试套索引等TTCN以前各版本的功能系统,不属于TTCN-3的组成部分。5.3 规范的一致性本语言借助于当前版本主体中的文本性描述(第6章至第29章)以及附录A中的

27、形式化方法,从句法上和语义上加以规定。每当文本性描述未穷举时,均以形式化描述完成。当文本规定和形式规定发生矛盾时,应以形式化规定为准。5.4 符合性本部分对本语言的实现级别未作规定。但是,对一个声称符合TTCN-3语言的实现来说,本部分所有已实现的特征均应与本部分给出的要求一致。注:这不妨碍添加在当前版本规定中未规定的额外特征的具有符合性实现。6 基本语言元素6. 1 概述TTCN-3的顶层单元是模块。模块中不能构造成子模块,但能从其他模块中移入定义。模块可具有参数清单以便给出测试套参数化的形式,这与TTCN-2的PICS和PIXIT参数化机制相似。模块由定义部分和控制部分组成。模块的定义部分

28、定义测试组件、通信端口、数据类型、常量、测试数据模板、函数、端口上过程调用的特征标记、测试用例等。TTCN-3语言元素的情况如表1所示。模块的控制部分调用测试用例并控制其执行。控制部分也可以声明(局部)变量等,程序语句(如if-else和do-while)能用于规定各个测试用例的选择和执行顺序。TTCN-3不支持全局变量的概念。TTCN-3有许多预定义的基本数据类型和结构化类型,如记录、集合、联合、枚举类型和数组。移人的ASN.l类型和值可与TTCN-3一起使用。一种称为模板的特定的数据结构为规定在测试端口上发送的或接收的测试数据提供参数化和匹配机制。在这些端口上的操作提供基于消息的和基于过程

29、的两种通信能力。过程调用可用于不基于消息的测试实现。动态测试行为表达为测试用例。TTCN-3程序语句包括强有力的行为描述机制,如通信和定时器事件的替换性接收、交叉和默认行为。TTCN-3也支持测试判定赋值和日志机制。最后,可以为TTCN-3语言元素指派诸如编码信息和显示属性等属性。也可能规定(非标准化的)用户定义的属性。表1TTCN-3语言元素概览语日兀索关联的关键字是否是在模块定是否是在模块控是否是在函数/是否是在测义中规定的制中规定的备选步/测试用试组件中例中规定的规定的TTCN-3模块定义module 从其他模块移入定义import 是定义分组group 是7 G/T 26857.1-2

30、011 表1(续)是否是在模块定是否是在模块控是否是在函数/是否是在测语言元索关联的关键字义中规定的制中规定的备选步/测试用试组件中例中规定的规定的数据类型定义type 是通信端口定义port 是测试组件定义component 是特征标记定义signature 是外部函数/常盐定义external 是常量定义onst 是是是是数据/特征标记模板定义template 是函数定义function 是备选步定义altstep 是测试用例定义testcase 是一:F77|变量声明var 是是定时器声明tmer 是是6.2 语言元素的定序通常,能作出声明的顺序是任意的。在一个话句块和声明块中,如函数体

31、或if-else语句的分支中,所有的声明(如果有)均应只在所在块的开始处进行。示例:/这是一个TTCN3声明的合法混合varMyVarType MyVar2:=3; const integer MyC(nst: = 1 ; if(x 10) var integer MyVarl: =J , My飞1arl:=MyVar1十10;模块定义部分中的定义可以接任何顺序给出,但出于可读性原因,应避免向前引用,不过这并不是强制性的。例如,调用其他函数和模块参数化的函数等递归元素就可能导致不可避免的向前引用。向前引用只允许在模块定义部分来声明,而决不应在模块的控制部分、测试用例定义、函数和备选步中作出。这

32、就意味着对局部变量、局部定时器和局部常量,绝不应出现向前引用。对这个规则的仅有的例外是标签。在goto语句中也许用到对于标签的向前引用,以便跳转到前面(见20.6)。6.3 参数化6.3.1 静态参数化和动态参数化TTCN-3按以下限制支持值的参数化:8 GB/T 26857.1-2011 a) 不能参数化的语言元素有:const、var、timer、control、group和lmport;b) 语言元素模块允许静态的值参数化以支持测试套参数,也就是说,在编译时这个参数化既可以是可解析的也可以是不可解析的,但是它应在运行开始时被解析(即在运行时是静态的),这就意味着在运行时模块的参数值是全局

33、可见的,但是不能更改;c) 所有用户定义的类型定义(包括结构化的类型定义,如record、set等)和专用的配置类型地址支持静态值的参数化,即此参数化应在编译时进行解析;d) 语言元素template、signature、testcase,al tstep和function支持动态的值的参数化(即此参数化应在运行时进行)。表2给出了哪些语言元素能加以参数化以及什么能作为参数向其传递的小结。表2TTCN-3可参数化的语言元素概览关键字值参数化在形参与实参清单中允许出现的值的类型mdlr一所有基本类型、所有用户定义类型和address类型的值一type(注1)在编译时,静态所有基本类型、所有用户定

34、义类型和1address类型的值-templat 在,nl1,f.动ZE所有基本类型、所有用户定义尝型、ocldress类型和1契板tcmplate类型的值一-一一-一一一一一一一一-funnion 在运行时.QJ态所有基卒类型、所有片J)1 i二义类型、!Lddres,component、port、Jefaull、templ孔1和tirr川类型的值alt step :t.ib时,动态! 所有蒜本13型、所有用户1义类型、addr(s、cornponent、port、default、1tIllJbtt和tlmer类型的值一叮testcase 在后行一时功态刊|晴出有基本再类型、所有jH尸,义类

35、1), add res 和teml址ate类型的值slgnllture 在运行时.动所有用户正义类型、addre阳和component类型的值|注1:reord of、setof、enumerateu、por1、lornp)TJt:llt和sul川y町类型定义不允叶参数化a注2:不同语言元素中参数化的句法和特定肘法的例乒在本部分的有美章条中给出。6.3.2 按引用传参和按值传参6.3.2.1 概述按默认方式,基本类型、基本串类型、用户定义的结构化类型、地址类型和组件类型均按值传递所有的实参。可以选择性地使用关键宇1ll来表示。而如果通过引用的方法传递以上提到的类型的参数,则应使用关键字out或

36、inout。定时器和端口均按引用传参,并通过关键字timer和port来标识。可以选择使用关键宇inout来指代按引用传参。6.3.2.2 按引用传参引址传参有以下限制:a) 只对altsteps的形参清单显式调用,functions、signatures和testcase可包含引址传递的参数(pass-by-reference parameters); 注:对如何在特征标记中使用引址传递参数有进一步的限制(见第24章)。b) 实参应仅是变量(例如不是常量也不是模板)。9 GB/T 26857.1-2011 示例:function MyFunction(inout boolean MyRefe

37、renceParameter) ; /通过引址来传递MyReferenceParameter,且能从该函数内读出和设置该实参。function MyFunction(out boolean MyReferenceParameter) ; /通过引址来传递MyReferenceParameter,且仅能从该函数内设置该实参。6.3.2.3 按值传参按值传递的实参可以是变量以及常量、模板等。示例:function MyFunction(in template MyTemplateType MyValueParameter) ; /按值传递MyValueParameter,关键字m可选。6.3.3

38、形参和实参清单在实参清单中出现的元素的数目及其顺序,应与其对应的形参清单中的元素数目和出现顺序相同。而且,每个实参的类型应与每个对应的形参的类型兼容。示例:/带有形参清单的一个函数定义function MyFunction( integer FormalPar 1, boolean FormalPar2 , bitstring FormalPar3) /带有实参清单的一个函数调用MyFunction023 , true , 1100 B) ; 6.3.4 空形参清单3如果TTCN-3语言元素function、testcase、slgnature、altstep或externalfunction

39、的形参清单是空的,那么在该元素的声明和调用中都应包含空的括号。而在所有其他情形,该空括号均应予以省略。示例:/带有空参数清单的函数定义应写为function MyFunction( ) /带有空参数清单的记录定义应写为type record MyRecord ) 6.3.5 嵌套式参数清单通常,规定为一个实参的所有参数化实体在实参清单中均应有自己的解析的参数。示例:/给定消息定义type record MyMessageType integer fieldl , charstring field2 , boolean field3 /一个消息模板可以是template MyMessageTyp

40、e MyTemplate(integer MyValue): = 10 fieldl: = MyValue , field2: = pattern abc祷xyz, field3 : = true GB/T 26857.1-2011 /带有一个模板参数化的测试用例可以是testcase TCOOl (template MyMessageType RxMsg) runs on PTCl system TSl MyPCO. receive (RxMsg); /当测试用例在控制部分中被调用且该参数化模板用作一个实参时,应对该模板的实参提供control TCOOl (MyTemplate( 7);

41、6.4 范围规则6.4.1 概述TTCN-3提供7个基本的作用范围单元:a) 模块定义部分;b) 模块的控制部分;c) 组件类型;d) 函数;e) 备选步(altsteps); f) 测试用例;g) 复合语句中的声明块和语句块。注1:用于组(groups)的附加范围规则见8.4.2。注2:用于for循环中计数的附加范围规则见20.8。范围的每个单元由声明(可选的)组成。可以通过使用TTCN-3程序语句和操作,用范围单元:模块的控制部分、函数、测试用例、备选步和复合语句中的声明和语句块来额外规定行为的某种形式(见第19章)。模块定义部分的定义,其他范围单元之外的定义是全局可见的,也就是说它们可以

42、用在模块的任一位置,包括该模块定义的所有函数、测试用例和备选步以及控制部分。从其他模块中引人的标识符对于引人模块来说也是全局可见的。模块控制部分中的定义具有的是局部可见性,即只能用在该控制部分中。通过使用一个runson语句,在测试组件类型中做的定义仅可以在调用该组件类型或一个相一致的测试组件类型的函数、测试用例和备选步中使用它们(见17.4)。函数、测试用例和备选步是独立的范围单元,它们之间没有层次关系,即它们主体开始处做的声明具有局部可见性,且仅可以用在给定的函数、测试用例或备选步中(如:在一个测试用例中做的声明对于被这个测试用例调用的函数或被该测试用例使用的备选步来说是不可见的)。复合语

43、句包括语句和声明块,如if-else-、while-、do-while-或alt-语句。它们可以用在一个模块的控制部分、测试用例、备选步、函数中,或嵌套在其他复合语句中,如在一个while-循环中使用if-else语句。复合语句和嵌套式复合语句中的语句和声明块对于包括给定语句和声明块的范围单元和任一嵌套的语句和声明块二者来说具有层次关系,在一个语句和声明块中所做的定义具有局部可见性。GB/T 26857.1-2011 范围单元的层次关系如图2所示。高层的范围单元声明对其所在层次关系中的同一分支中下面层次的所有单元来说是可见的,而层次关系中低层的范围单元的声明对于其上层的那些单元的来说是不可见的

44、。图2范围单元的层次结构示例:module MyModule const integer MyConst: = 0; !对于MyHehaviour八和MyRehaviourH来说.MyConst可见function MyBehaviourAC ) const integer A: = 1 ;常量A仅对MyBehaviourA可见function MyBehaviourBC ) const integer B: = 1; / /常量B仅对MyBehaviourB可见6.4.2 形参的范围在一个参数化的语言元素中(如在一个函数调用中)形参的范围应限定到这些参数出现的定义中和相同范围层次关系中的较低

45、的范围层次。这就是说它们遵循正常的范围规则(见6.5)。6.4.3 标识符的唯一性TTCN-3要求标识符具有唯一性,即在相同范围层次中的所有标识符互不相同。这就意味着在范12 GB/T 26857.1-2011 围层次的同一分支中,低层范围中的声明不应重复使用与高层范围声明中相同的标识符。结构类型宇段、枚举值和组的标识符不必全局唯一,然而在枚举值的情况下,标识符应仅被其他枚举类型中的枚举值重复使用。标识符唯一性规则应也用于形参标识符。示例:module MyModule const integer A: = 1 ; function MyBehaviourA( ) const integer A: = 1; / /不允许、/. . . ( 叶HI飞cont boole叩A:=true; / /不允许/下面不在相同范围层次中声明的常量是允许的假设在模块的头部没有A的声明)。function MyBehaviourA( ) const in优gerA: =1; function MyBehaviourB( ) const integer A 1 = 1; 6.5 标识符和关键字TTCN-3标识符是

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 标准规范 > 国家标准

copyright@ 2008-2019 麦多课文库(www.mydoc123.com)网站版权所有
备案/许可证编号:苏ICP备17064731号-1