TTCN-3介绍RNDL3内容提纲2TTCN-3背景知识TTCN-3系列标准TTCN-3的核心语言基于TTCN-3的测试平台总结TTCN-3背景知识(1/2)定义:TestingandTestControlNotation(TTCN)即测试及测试控制表示法,标准的黑盒测试规范和测试执行语言。发展:由欧洲电信标准协会(ETSI)于1999to2001开发。从最初的TTCN,到TTCN-2,再到TTCN-3。前2版均为树表描述语言(TreeandTabularCombinedNotation),有图表与其等价的机器可执行语言2种表达方式,TTCN-3增加了MSC和核心语言。3TTCN-3背景知识(2/2)优点:应用领域:多种通信端口上各种响应系统的描述语言。例如:电信系统(ISDN,ATM);移动通信系统(GSM,UMTS,LTE);互联网(IPv6);4抽象化–文件形式可移植–独立被测目标模块化–可重用结构和分布式开发灵活性–数据与行为分离并发性–并行测试数据定义–支持多种数据类型内容提纲5TTCN-3背景知识TTCN-3系列标准TTCN-3的核心语言基于TTCN-3的测试平台总结内容提纲6TTCN-3背景知识TTCN-3系列标准TTCN-3的核心语言基于TTCN-3的测试平台总结TTCN-3系列标准(1/3)TTCN-3UserGraphicalFormatTabularFormatASN.1Types&ValuesOtherTypes&ValuesnOtherTypes&Values2TTCN-3CoreNotationPresentationFormatnOtherTypes&Values3TTCN-3系列标准(2/3)TTCN-3UserGraphicalFormatTabularFormatASN.1Types&ValuesOtherTypes&ValuesnOtherTypes&Values2TTCN-3CoreNotationPresentationFormatnOtherTypes&Values3mscmi_synch1_conc1mtcISAP1MSAP2UMLTestingProfileIDLXMLC/C++:testcasemyTestcase()runsonMTCTypesystemTSIType{mydefault:=activate(OtherwiseFail);verdict.set(pass);:connect(PTC_ISAP1:CP_ISAP1,mtc:CP_ISAP1);:map(PTC_ISAP1:ISAP1,system:TSI_ISAP1);:PTC_ISAP1.start(func_PTC_ISAP1());PTC_MSAP2.start(func_PTC_MSAP2());Synchronization();allcomponent.done;log(”CorrectTermination”);}:TTCN-3标准规范内容TTCN-3系列标准(3/3)欧洲系列标准(ES)ES201873-1:TTCN-3CoreLanguageES201873-2:TTCN-3TabularPresentationFormat(TFT)ES201873-3:TTCN-3GraphicalPresentationFormat(GFT)ES201873-4:TTCN-3OperationalSemanticsES201873-5:TTCN-3RuntimeInterface(TRI)ES201873-6:TTCN-3ControlInterface(TCI)ES201873-7:UsingASN.1withTTCN-3ES201873-8:UsingIDLwithTTCN-3ES201873-9:UsingXMLwithTTCN-3ES201873-10:UsingC/C++withTTCN-3(planned)内容提纲10TTCN-3背景知识TTCN-3系列标准TTCN-3的核心语言基于TTCN-3的测试平台总结内容提纲11TTCN-3背景知识TTCN-3系列标准TTCN-3的核心语言基于TTCN-3的测试平台总结TTCN-3核心语言-组成要素基本数据类型和用户自定义的通用数据类型(例如消息,服务原语,信元,PDU)实际的测试数据,用于测试过程中的发送和接收测试成分的定义以及用于建立不同测试配置的通信端口动态测试行为的定义测试行为(4)测试配置(3)TTCN-3测试数据(2)数据类型(1)TTCN-3核心语言-组成要素1测试行为测试配置TTCN-3测试数据数据类型分类数据类型关键字简单基本类型integerfloatbooleanverdicttype基本string类型bitstringhexstringoctetstringcharstringuniversalcharstring复合类型recordrecordofsetsetofenumeratedunion特殊类型anytype特殊配置类型addressportcomponent特殊缺省类型defaultTTCN-3核心语言-组成要素2(1/2)模板(Templates)用于传送一个特定值的集合或是测试接收的值的集合是否与模板说明匹配。常用于对ASP的赋值;模板具有下列特性:a)模板提供了一种组织和重复使用测试数据的方法,其中包括继承的简单形式b)模板能够被参数化;c)模板允许匹配机制14测试行为(4)测试配置(3)TTCN-3测试数据(2)数据类型(1)TTCN-3核心语言-组成要素2(2/2)//GiventhemessagedefinitiontyperecordMyMessageType{integerfield1optional,charstringfield2,booleanfield3}//amessagetemplatecouldbetemplateMyMessageTypeMyTemplate(integercount):={field1:=count,field2:=Mystring,field3:=true}Alt{[]U_AM.receive(car_RLC_Data_Ind(utran_CellDedicated,tsc_RB2,cr_108_RRC_SecModeCmpl(tsc_RRC_TI,?)))-valuev_RLC_AM_DATA_IND}15TTCN-3核心语言-组成要素3(1/6)16MTC(MainTestComponent):主测试成分,是每个测试套必须具备的测试成分,所有的testcase都应在MTC上定义和执行,MTC是在执行测试例时由测试套自动创建的;PTC(ParallelTestComponent):平行测试成分,测试套可根据功能添加若干个PTC,PTC可以在测试例执行过程中动态的被创建。虽然testcase都是在MTC上定义的,但是testcase的主函数可以是在各个PTC上定义的。测试行为(4)测试配置(3)TTCN-3测试数据(2)数据类型(1)TTCN-3核心语言-组成要素3(2/6)17PTCPTCmessagequeuemessagequeuePort:一个测试成分包含若干接口(port),测试成分之间以及测试成分与被测系统之间都是通过接口进行通信;接口按照FIFO的原则处理接口消息队列中的消息;接口通过ASP(AbstractServicePrimitives)即原语进行通信;Testsuite:TTCN-3工程中包含的所有内容TTCN-3核心语言-组成要素3(3/6)TTCN-3TestSuitePort.send(Stimulus)Port.receive(Response)SystemUnderTestPort•AssignmentofaTestVerdictTTCN-3黑盒测试模型TTCN-3TestSuiteTTCN-3核心语言-组成要素3(4/6)createcreateMTCstartstartcreatePTCsPTCPTCstartSUTTTCN-3的一般测试配置TTCN-3核心语言-组成要素3(5/6)SUTRealTestSystemInterfaceTestSystemAbstractTestSystemInterfacePTCMTCINOUTOUTINConnectedPortsINOUTMappedPortsINOUTRealTestSystemInterfacePIFTTCN-3核心语言-组成要素3(6/6)测试判决:nonepassinconcfailerror每一个测试成分都会有自己的局部判决,可设置和读取。测试例结束时会由MTC返回最终判决MTCPTC1PTCN测试例执行结束后返回的判决结果Isetverdict(inconc)setverdict(fail)FPsetverdict(pass)TTCN-3核心语言-组成要素4(1/9)TTCN-3中的测试行为主要通过function和testcase进行定义。Function:输入参数,函数体,返回值,与c类似Function内容:基本程序语句行为程序语句操作关键字22测试行为(4)测试配置(3)TTCN-3测试数据(2)数据类型(1)TTCN-3核心语言-组成要素4(2/9)基本程序语句:表达式、操作、循环构造等。所有基本程序语句都可以用在模块的控制部分和TTCN-3的函数、可选步和测试例中23语句相关的关键字或字符表达式(…)赋值:=日志记录log标签/转到Lable/gotoIf-elseIf(…){…}else{…}For循环For(…){…}While循环While(…){…}Do-while循环Do(…)while{…}停止执行stopTTCN-3核心语言-组成要素4(3/9)行为程序语句:明确描述了通过通信端口上的测试成分的动态行为,可以作为一个选择对象集或它们的组合来顺序地表达测试行为。如:alt,repeat,return等;操作关键字:TTCN-3提供的一类可以触发相应操作的关键字。分为:配置操作;定时器操作;测试判定操作;通信操作等。24TTCN-3核心语言-组成要素4(4/9)配置操作:用于建立和控制测试成分。这些操作应仅用于TTCN-3测试例、函数和可选步(不能用于模块控制部分)25语句相关的关键字或字符创建并行测试成分creat连接/断开一个测试成分到另一个Connect/diconnect映射/去除成分端口到测试接口端口Map/unmap获得MTC地址Mtc获得测试系统接口地址system获得自身地址self启动/停止测试成分的执行Start/stop检查一个PTC的终止running等待一个PTC的终止doneTTCN-3核心语言-组成要素4(5/9)定时器操作:TTCN-3支持许多定时器操作,这些操作可以用在测试例、函数、可选步和模板控制中,用来对测试时间进行控制。主要包含:启动定时器:Start停止定时器:Stop读取定时器经过的时间:Read检查定时器是否运行:Running超时时间:Timeout26TTCN-3核心语言-组成要素4(6/9)测试判定操作:在每个测试成分(即在MTC和每个PTC中)终止执行时,都会更新和表示运行结果的全局变量。当测试例终止执行时,也返回判定值。如果这个返回的判定没有显式地保存在控制部分(如赋值给一个变量),那么就它就被丢掉了。测试判定操作:getverdict();setverdict()测试判定结果:error,pass,fail,inconclusive,none.通信操作:send,receive27TTCN-3核心语言-组成要素4(7/9)Testcase:测试套的核心,所有的对SUT的测试功能都是通过测试例来实现,通过在测试例中构造不同的测试步来实现不同的测试功能,不同的测试步是由不同的函数实