您好,欢迎访问三七文档
TTCN-3工具培训简介本胶片介绍了使用TTCN-3进行测试的系统架构,重点讲述了TTCN-3的语法和特性,最后介绍如何使用TTCN-3集成开发工具GTR进行TTCN-3测试套的开发。希望对准备在开发环境GTR下进行TTCN-3测试套开发的测试人员有所帮助。TTCN-3概述TTCN-3TTCN-3:测试与测试控制记法(TestingandTestControlNotation-Version3),TTCN-3是由ETSI(欧盟通讯标准研究院)所设计,并公布成为ETSIES201873系列之标准文件,以及ITU-T(国际通讯联盟)的ITU-TRec.Z.140系列之标准文件。标准化的测试描述和测试实现语言。TTCN-3具有更精准的测试逻辑语法,可以描述更复杂的测试行为;TTCN-3可用于多种类型的测试,包括符合性测试(ConformanceTesting)、互操作性测试(InteroperabilityTesting)、健全性测试(RobustnessTesting)、回归测试(RegressionTesting)、系统和整合测试(SystemandIntegrationTesting)、以及负载测试(Load/StressTesting)。TTCN发展TTCN-1概念始于80年代中期,主要应用于OSI体系协议一致性测试。TTCN-2是树表结合记法,有完善的语法、语义,较高的测试抽象性和重用性,不依赖于操作系统和测试平台。TTCN-3打破了TTCN-2在OSI体系一致性测试的局限性,适应于更灵活、更复杂的软件系统测试。TTCN-3主要特性描述动态并发测试配置的能力;基于过程的操作和基于消息的通信;描述编码信息和其他属性(包括用户扩展性)的能力;描述数据和带有强有力的匹配机制的属性模板的能力;类型和值的参数化;赋值和测试判定的处理;测试套参数化和测试例选择机制;TTCN-3和ASN.1的结合良好定义的语法,格式的互换以及静态语义;不同的表示格式(如:表格和图形表示格式,目前暂不支持);TTCN-3语法介绍基本概念基本概念-测试组件:共有三种类型测试组件:抽象测试系统接口(ATSI),也可以叫系统测试组件(STC)主测试组件(MTC)并行测试组件(PTC)基本概念-通信端口1.通过端口完成测试组件之间的通信2.每个通信端口被抽象成一个先入先出队列3.端口(port)具有方向性(in,out,inout)4.支持三种端口类型:基于消息通信的端口基于过程通信的端口混合型端口基本概念-动态测试配置1.创建组件2.启动组件3.并发执行基本概念-动态测试配置1.连接端口2.映射端口基本概念-测试判决1.测试判决:nonepassinconcfailerror2.每一个测试组件可以设置(setverdict)或者获取(getverdict)自己的局部判决。3.测试用例中止执行时,返回一个全局的判决。4.全局判决由各个测试组件的局部判决决定。TTCN-3测试套结构模块(Module)是TTCN-3的基本构造块。一个模块由定义部分(可选的)和一个模块控制部分(可选的)组成。通常所说的一个测试套就是一个模块。模块可以参数化(跟TTCNRunner中的赋值一致)。一个模块可以从其他模块中引入定义。模块可以定义属性(Attributes)。AttributesModule(…)ModuleControlModuleDefinitions模块定义部分模块定义所有定义在整个模块中都是全局的。类型定义(DataTypes)都是基于预定义类型和结构类型(包括从其他非TTCN-3语言ASN.1定义中引入的类型)模板(Templates)和原型(Signature)定义测试数据。端口(ports)和测试组件(Components)在动态测试配置过程中使用。函数(Functions),测试步(Altsteps),测试用例(testcase)用来定义测试行为。TestCasesNamedAlternativesFunctionsTestComponentsCommunicationPortsSignatureTemplatesDataTemplatesRPSignaturesConstantsDataTypesTTCN3数据类型定义类型关键字Sub-type简单基本类型integerrange,listcharrange,listuniversalcharrange,listfloatrange,listbooleanlistobjidlistverdicttypelist基本串类型bitstringlist,lengthhexstringlist,lengthoctetstringlist,lengthcharstringrange,list,lengthuniversalcharstringrange,list,length结构类型record,setlistrecordof,setoflist,lengthenumeratedlistunionlist特殊数据类型anytypelist特殊配置类型address,port,component特殊默认类型default数据类型定义-整型/*整型范围约束定义*/typeintegerMyIntegerRange(1..100)typeintegerMyIntegerRange(0..infinity)/*整型列表约束定义*/typeintegerMyIntegerList(1,2,3,4)/*混合约束定义*/typeintegerMyIntegerListAndRange(1..5,7,9)数据类型定义-结构类型//record结构类型定义typerecordMyMessageType{integerfield1optional,booleanfield2}//record值定义varMyMessageTypeMyMessage:={field1:=1,field2:=true}//单独的域赋值MyMessage.field2:=false数据类型-与ASN.1类型兼容ASN.1类型等效的TTCN-3类型BOOLEANbooleanINTEGERintegerREAL(note1)floatOBJECTIDENTIFIERobjidBITSTRINGbitstringOCTETSTRINGoctetstringSEQUENCErecordSEQUENCEOFrecordofSETsetSETOFsetofENUMERATEDenumeratedCHOICEunionVisibleStringchar(note2),charstringIA5Stringchar(note2),charstringUniversalStringuniversalchar(note2),universalcharstring数据定义-模板模板(Templates)用于传送一个特定值的集合或是测试接收的值的集合是否与模板说明匹配。模板具有以下特性:模板可继承,便于组织数据和重复利用数据模板能够被参数化模板允许定义匹配机制,经常被使用来定义可能接收消息的值或者可能的远程调用过程响应模板同时支持基于消息的通信和基于过程的通信模板支持简单类型和复合类型数据定义-模板匹配机制元字符描述(…)匹配列表中的值Comlement(…)匹配非列表中的值(lower..upper)匹配一个范围内的整型值?匹配任意值*匹配任意值或者空..?..匹配字符串或者数组中任意单个元素..*..匹配字符串或者数组中任意元素(可能为空)length匹配指定长度的字符串ifpresent匹配可选元素存在的情况数据定义-参数化模板//参数化模板templateMyMessageTypeMyMessage(integerMyPar):={field1:=MyPar,field2:=true,field3:=‘110011’B}//模板调用P1.send(MyMessage(1));数据定义-模板继承templateMyMessageTypeMyMessage1{field1:=123,field2:=true}templateMyMessageTypeMyMessage2modifiesMyMessage1{field2:=false}//等效下面的写法templateMyMessageTypeMyMessage3{field1:=123,field2:=false}动态测试配置动态测试配置-测试组件测试组件(TestComponent)是测试行为执行的实体(并行)。测试组件的声明都是局部的。测试组件必须包含一个通信端口列表。在测试执行过程中是通过create,connect,map等操作来完成动态测试配置的。PortsUsedLocalDeclarationsTestComponent动态测试配置-通信端口定义//基于消息的端口定义typeportMyMessagePortTypemessage{inMsgType1,MsgType2;outMsgType3;inoutinteger}//基于过程的端口定义typeportMyProcedurePortTypeprocedure{outProcedureSignature1,ProcedureSignature2}动态测试配置-测试组件定义//测试组件类型定义typecomponentMyComponentType{//局部变量声明varintegerMyVar;timerMyTimer;//测试组件使用的端口列表MyMessagePortTypeP1,P2;MyProcedurePortTypeP3}测试行为描述测试行为描述-函数函数是描述测试行为的基本块。函数包含局部变量声明和程序部分。函数既可以只完成测试系统内部的任务,也可以通过send和receive与被测系统进行交互。支持外部函数(可扩展)。支持部分类型转换的预定义函数。Function(...)ProgramPartLocalDeclarations预定义函数预定义函数提供了TTCN-3内部类型之间的转换功能以及字符串操作功能。Int2charChar2intlengthofint2unicharUnichar2intsizeofInt2bitBit2intispresentInt2hexHex2intischosenInt2octOct2intregexpInt2strStr2intsubstrfloat2intbit2strrndint2floathex2strstr2octoct2strhex2bitbit2hexoct2hexhex2octoct2bitbit2oct//函数可以带参数,参数具有几种属性:in,out,inout.默认属性是in。functionMyFunction(inintegerMyPar){:}//函数可以带返回值,默认为voidfunctionMyFunctionreturninteger{:}//纯功能函数,没有涉及到端口操作。functionMyFunction{:}//函数使用指定类型组件中的端口进行通信操作functionMyFunctionrunsonMyPTC{PCO1.send(1);}测试行为描述-测试用例测试用例可以认为是特殊的能够在模块控制部分执行的函数。接口部分(runson子句)指定了测试用例所运行的MTC的组件类型。系统部分(system子句)指定了测试用例中需要使用的测试系统接口组件类型。System部分可以省略,默认和MTC类型一致TestCase(...)BehaviourPartSystemPartInterfaceParttestcaseMyTestCase()runsonMyMTCTypesy
本文标题:TTCN3工具培训
链接地址:https://www.777doc.com/doc-5089790 .html