收藏 分享(赏)

TTCN3工具培训+++++.ppt

上传人:精品资料 文档编号:10343042 上传时间:2019-11-01 格式:PPT 页数:58 大小:727KB
下载 相关 举报
TTCN3工具培训+++++.ppt_第1页
第1页 / 共58页
TTCN3工具培训+++++.ppt_第2页
第2页 / 共58页
TTCN3工具培训+++++.ppt_第3页
第3页 / 共58页
TTCN3工具培训+++++.ppt_第4页
第4页 / 共58页
TTCN3工具培训+++++.ppt_第5页
第5页 / 共58页
点击查看更多>>
资源描述

1、TTCN-3工具培训,简介,本胶片介绍了使用TTCN-3进行测试的系统架构,重点讲述了TTCN-3的语法和特性,最后介绍如何使用TTCN-3集成开发工具GTR进行TTCN-3测试套的开发。希望对准备在开发环境GTR下进行TTCN-3测试套开发的测试人员有所帮助。,TTCN-3概述,TTCN-3,TTCN-3:测试与测试控制记法(Testing and Test Control Notation-Version3), TTCN-3是 由ETSI(欧盟通讯标准研究院)所设计,并公布成为ETSI ES 201 873系列之标准文件,以及ITU-T(国际通讯联盟)的ITU-T Rec. Z.140系列

2、之标准文件。 标准化的测试描述和测试实现语言。 TTCN-3具有更精准的测试逻辑语法,可以描述更复杂的测试行为; TTCN-3可用于多种类型的测试,包括符合性测试(Conformance Testing)、互操作性测试(Interoperability Testing)、健全性测试(Robustness Testing)、回归测试 (Regression Testing)、系统和整合测试(System and Integration Testing)、以及负载测试(Load/Stress Testing)。,TTCN发展,TTCN-1概念始于80年代中期,主要应用于OSI体系协议一致性测试。

3、TTCN-2是树表结合记法,有完善的语法、语义,较高的测试抽象性和重用性,不依赖于操作系统和测试平台。 TTCN-3打破了TTCN-2在OSI体系一致性测试的局限性,适应于更灵活、更复杂的软件系统测试。,TTCN-3主要特性,描述动态并发测试配置的能力;基于过程的操作和基于消息的通信;描述编码信息和其他属性(包括用户扩展性)的能力;描述数据和带有强有力的匹配机制的属性模板的能力;类型和值的参数化;赋值和测试判定的处理;测试套参数化和测试例选择机制;TTCN-3和ASN.1的结合良好定义的语法,格式的互换以及静态语义;不同的表示格式(如:表格和图形表示格式,目前暂不支 持);,TTCN-3语法介

4、绍,基本概念,基本概念-测试组件: 共有三种类型测试组件: 抽象测试系统接口(ATSI),也可以叫系统测试组件(STC) 主测试组件(MTC) 并行测试组件(PTC),基本概念-通信端口 通过端口完成测试组件之间的通信 每个通信端口被抽象成一个先入先出队列 端口(port)具有方向性(in,out, inout) 支持三种端口类型: 基于消息通信的端口 基于过程通信的端口 混合型端口,基本概念-动态测试配置 创建组件 启动组件 并发执行,基本概念-动态测试配置 连接端口 映射端口,基本概念-测试判决 测试判决:none pass inconc fail error 每一个测试组件可以设置(se

5、tverdict)或者获取(getverdict)自己的局部判决。 测试用例中止执行时,返回一个全局的判决。 全局判决由各个测试组件的局部判决决定。,TTCN-3测试套结构,模块(Module)是TTCN-3的基本构造块。一个模块由定义部分(可选的)和一个模块控制部分(可选的)组成。 通常所说的一个测试套就是一个模块。 模块可以参数化(跟TTCN Runner中的赋值一致)。 一个模块可以从其他模块中引入定义。 模块可以定义属性(Attributes)。,模块定义部分,模块定义 所有定义在整个模块中都是全局的。 类型定义(Data Types)都是基于预定义类型和结构类型(包括从其他非TTCN

6、-3语言ASN.1定义中引入的类型) 模板(Templates)和原型(Signature)定义测试数据。 端口(ports)和 测试组件(Components)在动态测试配置过程中使用。 函数(Functions),测试步(Altsteps),测试用例(testcase)用来定义测试行为。,TTCN3数据类型定义,数据类型定义-整型,/* 整型范围约束定义 */ type integer MyIntegerRange (1 100) type integer MyIntegerRange (0 infinity)/* 整型列表约束定义 */ type integer MyIntegerLis

7、t (1 , 2, 3, 4)/* 混合约束定义 */ type integer MyIntegerListAndRange (1 5, 7, 9),数据类型定义-结构类型,/ record 结构类型定义 type record MyMessageType integer field1 optional,boolean field2 / record 值定义 var MyMessageType MyMessage := field1 := 1,field2 := true / 单独的域赋值 MyMessage.field2 := false,数据类型与ASN.1类型兼容,数据定义模板 模板(T

8、emplates)用于传送一个特定值的集合或是测试接收的值的集合是否与模板说明匹配。 模板具有以下特性: 模板可继承,便于组织数据和重复利用数据 模板能够被参数化 模板允许定义匹配机制,经常被使用来定义可能接收消息的值或者可能的远程调用过程响应 模板同时支持基于消息的通信和基于过程的通信 模板支持简单类型和复合类型,数据定义模板匹配机制,数据定义参数化模板,/ 参数化模板 template MyMessageType MyMessage (integer MyPar) := field1 := MyPar,field2 := true,field3 := 110011B / 模板调用 P1.s

9、end(MyMessage(1);,数据定义模板继承,template MyMessageType MyMessage1 field1 := 123,field2 := true template MyMessageType MyMessage2 modifies MyMessage1 field2 := false / 等效下面的写法 template MyMessageType MyMessage3 field1 := 123,field2 := false ,动态测试配置,动态测试配置测试组件 测试组件(Test Component)是测试行为执行的实体(并行)。 测试组件的声明都是局部

10、的。 测试组件必须包含一个通信端口列表。 在测试执行过程中是通过create,connect,map等操作来完成动态测试配置的。,Test Component,动态测试配置通信端口定义,/ 基于消息的端口定义 type port MyMessagePortType message in MsgType1, MsgType2;out MsgType3;inout integer / 基于过程的端口定义 type port MyProcedurePortType procedure out ProcedureSignature1, ProcedureSignature2 ,动态测试配置测试组件定义

11、,/ 测试组件类型定义 type component MyComponentType / 局部变量声明var integer MyVar;timer MyTimer;/ 测试组件使用的端口列表MyMessagePortType P1, P2;MyProcedurePortType P3 ,测试行为描述,测试行为描述-函数 函数是描述测试行为的基本块。 函数包含局部变量声明和程序部分。 函数既可以只完成测试系统内部的任务,也可以通过send 和receive 与被测系统进行交互。 支持外部函数(可扩展)。 支持部分类型转换的预定义函数。,Function ( . . . ),预定义函数 预定义函

12、数提供了TTCN-3内部类型之间的转换功能以及字符串操作功能。,/ 函数可以带参数,参数具有几种属性: in, out, inout . 默认属性是in。 function MyFunction (in integer MyPar) : / 函数可以带返回值,默认为void function MyFunction return integer : ,/ 纯功能函数,没有涉及到端口操作。 function MyFunction : / 函数使用指定类型组件中的端口进行通信操作 function MyFunction runs on MyPTC PCO1.send(1); ,测试行为描述测试用例

13、测试用例可以认为是特殊的能够在模块控制部分执行的函数。 接口部分(runs on子句)指定了测试用例所运行的MTC的组件类型。 系统部分(system子句)指定了测试用例中需要使用的测试系统接口组件类型。 System部分可以省略,默认和MTC类型一致,Test Case ( . . . ),testcase MyTestCase() runs on MyMTCType system MyTestSystemType : / 定义测试行为 / 该用例只有包含MTC,没有涉及系统接口操作 testcase MyTestCase()runs on MyMTCType : / 定义测试行为 ,测试行

14、为描述基本编程语句,测试行为描述动态测试配置,/ 定义一个组件类型变量 var MyComponentType MyPTC; / 创建指定类型的组件,返回组件引用 MyPTC:= MycomponentType.create/ connect连接操作用来完成测试系统内部组件之间的通信 connect(MyPTC:P1, mtc:P1) / map映射操作用来完成测试组件与抽象测试接口之间的通信 map(MyPTC:P2, system:PCO),测试行为描述选择性行为 选择性行为由alt语句来完成。 alt语句表示,由通信的接收和处理或定时器事件以及并行测试成分终止引起的测试行为的分支。 al

15、t语句表示将与一个特定快照相匹配的可能的集合。,S1; alt S3; S6; S2; alt S4; S7; S5; S8; alt S9; S10;,测试行为描述alt语句执行示意图 每个alt分支包含三部分: 布尔防卫表达式(可能为空,但是不能省略) 可能触发的事件 需要执行的操作语句 每进入一个alt语句时,就会照一张快照,guard1,event1,alt,测试行为描述可选步 可选步(Altsteps)用来描述默认行为,或构造一个alt语句的选择对象。 可选步可以调用函数和可选步,或作为默认来激活可选步。 可选步的调用可以通过默认机制隐式地完成,或是通过在alt的一个直接调用显式的完

16、成。 对于借助于默认机制的可选步的一个隐式调用,在到达调用位置之前,必须通过activate语句将该可选步激活为一个默认。 独立的可选步的调用可以认为是仅带有一个描述显式调用该可选步的选择对象的alt语句的简写。,Altstep MyAltstep (in integer var1)runs on MyComponentType MyPort.receive(MyMessage1) setverdict(pass); MyPort.receive(MyMessage2) repeat; MyTimer.timeout stop; ,/在alt语句中可选步的显示调用。 Alt MyPort.re

17、ceive(MyMessage1) setverdict(pass); MyAltstep(1) ; MyTimer.timeout stop; ,/独立调用的可选步 MyAltstep(1) ; /等效于 Alt MyAltstep(1) ; ,/ 一个可选步激活为默认 var default MyDefVarTwo := activate(MySecondAltStep(); / 该组件在此区间的所有alt语句都会在分支没有被选中的情况下会执行默认可选步。 / 一个默认可选步去激活 deactivate(MyDefVarTwo); / 此后的所有alt语句都会在分支没有被选中的情况下不会执

18、行默认可选步。,测试行为描述定时器,/ 启动,停止,读取定时器 MyTimer.start(20E-3);/ 默认的时间单位是s MyTimer.stop; MyVar := MyTimer.read; / 检查定时器是否还在运行 if (MyTimer.running) / 定时器超时 Alt MyTimer.timeout ,模块控制部分,模块控制部分 测试例定义在模块定义部分,而模块控制部分管理它们的执行。 在每个测试例启动时,测试配置将被重新设置。 如果要在行为定义中使用定义在一个模块控制部分的所有的变量、定时器等,应该通过参数化来将它们传入测试例,没有全局变量的概念。 可以使用布尔表

19、达式选择和去选择要执行的测试例。,Control,/ 执行MyTestCase1,不存储返回的测试判定和时间监管 execute(MyTestCase1();/ 执行MyTestCase2,把结果判定存储在变量MyVerdict中 MyVerdict = execute(MyTestCase2();/ 执行MyTestCase3,把结果判定存储在变量MyVerdict中,如果测试例在500ms内没有终止,MyVerdict将得到值error. MyVerdict = execute(MyTestCase3(),0.5);,/ 测试用例多次执行。 while (x10) x:=x+1;execu

20、te(MyTestCase(); / 在特定的条件下,测试用例执行。 if (MySelectionExpression) execute(MyTestCase() ;,TTCN3测试套开发,TTCN-3测试系统组成,测试管理器 :工程管理,用例管理, 脚本编辑,日志输出测试执行环境:脚本编译执行被测系统适配器:测试执行环境与被测系统间的通信适配编解码器:BER,PER,SIP ABNF,XML编解码平台适配器:用户自定义扩展函数实现,测试构架,TTCN-3进行测试的开发步骤,用TTCN-3或其它语言(如ASN.1)描述测试数据。 用TTCN-3描述测试逻辑,生成抽象测试套。 开发适配器模块。 开发编解码模块(已经支持BER,PER,部分XER,HW自定义TLV编码方式)。 开发外部函数库(如果有特殊需要)。 执行抽象测试套,输出测试报告。,TTCN-3脚本构架,现场实例讲解,小结,本课程主要介绍了TTCN-3语言,以及如何在GTR上进行测试套开发的过程,同时介绍了目前TMC所开发的TTCN-3脚本结构,希望可以对大家使用GTR开发测试用例有所帮助。,ANY QUESTIONS?,

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

当前位置:首页 > 企业管理 > 管理学资料

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报