您好,欢迎访问三七文档
当前位置:首页 > 电子/通信 > 电子设计/PCB > 38第三章 树表描述语言与协议软件测试
第三章树表描述语言TTCNOSI/ITU组织颁布的协议一致性测试基本框架和方法标准(ISO/IEC9646(ITUX.290series)由五大部分构成,树表描述语言(TreeTabularCombineNotation)是其中的第三部分,即ISO/IEC9646-3。该标准的颁布为通讯协议的一致性测试提供了准则,所以TTCN得到了广泛的应用。下面分别介绍TTCN的基本语法、符号的语义及TTCN的应用。3.1协议一致性测试基础框架3.1.1协议一致性测试系统结构在一致性测试中一个被测试部分(ImplementUnderTest简称IUT)是一个OSI协议实体,IUT所在的系统称为被测试系统(SystemUnderTest简称SUT)。一个概念上的一致性测试体系结构如图3.1所示。IUT有一个上层测试(UpperTest)接口和下层测试(LowTest)接口,UT和LT通过控制观察点(PointsofControlandObservation简称PCOs)对系统进行测试。通常LT是远程可访问接口,因此IUT定义一个远端的PCO,即底层接口被设置在远端。通信被认为是异步通信,所以在每一个PCO都对应两个队列(FIFO),一个是输入,另一个是输出。在一致性测试方法框架(ConformanceTestingMethodologyFramework简称CTMF)中,严格区分上层测试和下层测试功能,IUT的上层测试由UT控制,下层测试由LT控制。在测试过程中,UT扮演一个用户来使用IUT提供的功能,而LT模仿一个IUT下层的通信实体。也就说UT与IUT的交互是通过LT来实现的。IUT和UT之间通过抽象服务元语(AbstractServicePrimitives简称ASPs)进行通信。从概念角度,IUT和LT通过协议数据单元(ProtocolDataUnits简称PDUs)交换数据;从实际角度,PDUs采用ASPs对基本服务动作进行编码,即PDUs不是直接进行交互,而是CTMF允许根据PDUs的编码进行交互,即在一个抽象的测试中使用PDUs进行交换,所以ASPs与PDUs不再加以区分。正如图3.1所示,测试协调过程(TestCoordinationProcedures简称TCP)来协调LT和UT的动作,这在LT和UT是两个独立的过程时十分必要。图3.1仅表现了一致性测试方法框架(CTMF)的概念结构,实际中的测试系统可根据采用的测试方法的不同有相应的变化。在CTMF中测试方法可分为局部的、分布的、协调的和远程的测试几种。它们的主要不同是对UTIUTUnderLyingServiceLTASPsPDUs图3.1一致性测试体系结构CTMFTCPPCOPCOLT和UT的协调以及对它们的控制与观察程度不同。图3.2是一个基于CTMF的测试过程。一个IUT首先由测试例的触发条件激活,并从稳定状态进入被测试状态;经过测试用例在测试体中运行,进入结束状态;如果执行的结果不唯一,则需要经检查步分析结果中存在的问题,从而进入EndState(Verification)状态;根据检查结果提出反馈,进入下一次的测试阶段。在上面的测试过程中,如果测试例的结束状态相同,则直接进入到下一次测试过程。3.1.2X-协议一致性测试为了解释TTCN一致性测试的过程,本节给出一个假想的协议,称为X-协议;给出协议一致性测试的要求。结合CTMF的X-协议执行脚本如下:MTC(MasterTesterComponent)首先通过产生PTCs(ParallelTesterComponents)对测试系统进行初始化。对于X-协议产生一个低端PTC和一个高端PTC。通过IUT,低端PTC建立一个与高端PTC的一个X-连接。出于简单考虑,我们假定一个N网络连接连接已经建立,即不会出现一个X_CONNECTrequest被拒绝(该假定是为了解释TTCN特性);低端PTC发送一个数据包,该数据包将通过IUT在高端PTC返回,这个数据包将在一个指定的时间间隔内返回,该过程重复多次;在完成数据传递后,低端PTC断开,并发送它的最初结果给MTC后,计算最终结论并终止测试。为了对X-协议进行测试需要提供以下配置和相关描述。X-协议一致性测试基于CTMF,其中IUT是一个X-协议的实现。我们也假设有一个网络服务提供商提供网络服务(N),X-协议测试在此基础进行。因此有以下测试例:LT将用N-SERVICE元语和X-PDUs加以说明,分别用N_DATArequest和CR_PDU进行说明;UT将用X-SERVICE元语加以说明,使用X_CONNECTrequest;一般说来,ISO一致性标准需要对N-1层的ASP、N层ASPs和N层PDUs进行说明。为此,TTCN提供了一个最小的功能集合。提供能够通过测试系统发送和/或接收ASPs的能力;StablestateTeststateEndstate(TestBody)EndState(Verification)postamblepreambleTestBodyVerification图3-2测试例方案提供嵌在ASPs中PDUs的描述能力;说明ASPs在PCOs被发送和/或被接收的次序;TTCN采用以下方法提供上述功能:声明ASP和PDU的类型;声明PCOs说明实际的ASPs和PDUs说明行为实例在以后的章节中,我们将深入学习以上内容。本测试例的使用有两种意义:IUT在限定的时间内通过X-协议,接收并返回指定数量的数据包。每一个测试目标将用不同的测试例表达。我们将在以后的章节中,逐步建立该协议一致性测试例的测试套,X-协议测试的完整的说明将在本章的后面“完整实例”一节给出。3.2测试系统行为描述为了测试IUT,我们需要建立一个仿真测试事件集合或交互行动序列。这个用于描述测试任务的事件或行动的序列称为测试例(testcase),一个特定协议的测试例集合称为测试套。TTCN就是一种用于说明测试例的符号集,它可以建立一个实际被测系统的抽象模型,并说明测试例的执行过程。抽象的测试例包括所有的IUT所支持的被测目标,但它不包括测试系统的信息。然而,说TTCN是一个符号集,并不意味着TTCN本身是抽象的,现在TTCN已经逐渐进化成具有可操作的语法和语义的形式化描述语言,用TTCN描述协议测试例如同编写程序一样。在ISO/IEC9646-3中定义了两种TTCN的图表,一种是图形符号,另一种是语义符号。图形符号采用表格的形式描述测试例的内容。这种表现形式比较直观,所以称为TTCN-GR,它适合于测试例的分析与设计。语义符号采用巴氏克范式Backus-NaurForm简称BNF)形式说明TTCN测试例,所以它更适合与计算机处理,所以把这种形式的表示称为TTCN-MP(TTCN-machineprocessable)。在本教材中主要采用TTCN-GR来描述测试用例。3.2.1行为树在我们深入讨论TTCN语言之前,首先讨论TTCN是如何描述一个测试组件的行为。在TTCN中,许多标准服务定义和协议说明都采用图或表来描述,并在此基础上产生测试例。然而,一致性测试只关心控制与观察点上的交互,所以系统行为用一颗树来表示比较自然,这棵树就称之为行为树。在行为树中,每一个树枝表示两个协议状态之间可能发生交互。在TTCN中,为了与表格形式一致,把行为树的分支随着时间逐层横向缩排,并写在一个表框内。在行为树中,处在同一层的节点不一定是姊妹关系,如F、G与I、J就是如此。在行为树中,一个节点被称为行为行。一个行为行有以下部分构成。1.行号2.标签3.声明行4.约束5.结论6.行为行注释在上面的构成成员中,那些被使用可随具体情况而定。如行号和注释是必须体现的,而约束和结论仅在需要时使用。表3-1测试例动态行为表序号标号行为描述(声明)约束结论注释12345678910ACFGHDEIJB3.2.2TTCN行为描述在TTCN中,所有的行为行用动态行为表来说明。有三种类型的行为表,它们的表头和表体有所不同。测试例动态行为表测试步动态行为表缺省动态行为表虽然他们的表体基本相同,但从表面上看他们有不同的表头,而更实质上的区别是使用方法的不同。在动态行为表中(见表3-1),各个列分别是行号、标签、声明行、约束条件、结论和注释。淡灰底纹的行表示一个行为行的范围,而深灰底纹的行表示一个声明行。TreeBCADIEFGHJABCFDGEJI图3-3TTCN行为树TimeHTime3.2.2.1声明行与声明在一个动态行为表中,声明行在行为描述栏中定义,它用于说明事件发生顺序。在声明行中描述测试系统的行为,如发送和接受ASPs等等。一个声明又可分成三个不同的类型。1.事件2.行动3.条件事件声明是否成立,取决于当前所发生的事件。声明成立也称为事件匹配。有两类事件,分别是输入事件(inputevents)和时间事件(timerevents)。一个输入事件是一个到达指定PCO的ASP,或者是指定CP(协同点coordinationpoints简称CP)的消息。一个时间事件是一个协议时间结束时刻。TTCN声明中的事件有:1.RECEIVE2.OTHERWISE3.TIMEOUT行动有时声明总是成立的,也就是说它是可执行的,我们把这种声明称之为活动。虽然在ISO/IEC9646-3标准中没有行动这个词,但实际上一个测试系统有许多行动被执行。在TTCN中假定他们都能够成功的执行。TTCN中的行动有:SENDIMPLICIT_SENDASSIGNMENT_LISTTIMER_OPERATIONGOTO条件声明行也可以包括条件声明,即布尔表达式。我们把这个声明行称为条件声明行。如果没有事件匹配,也就没有行动被执行,除非声明行中的条件的值为True。如果一个声明行不包括条件,则为非条件声明行。一个TTCN条件就是布尔表达式:BOOLEAN_EXPRESSION事件、行动和条件的结合事件、行动和条件组合可以通过TTCN-MP来定义。在下面的章节中,我们将根据具体内容介绍基于TTCN-MP的事件、行为和条件组合的应用。3.2.2.2执行和匹配现在我们将讨论一个行为树如何被执行或遍例。替换在同一缩排的声明行的集合中,有相同父节点的节点称为可替换声明行,简称替换。例如,在图1-1中(A,B),(C,D,E),(F,G),(I,J)和(H)是所有的替换。由于一个替换集合中不同替换的前后次序是十分重要的,所以必须把所有事件和条件在一个没有激活的行动之前声明。行为树的执行行为树的执行从树根开始。首先第一个替换集合被循环执行,每一个替换均以他们在集合中出现的先后次序被赋值。如果一个替换不成功,则执行下一个替换;如果替换成功,则执行该替换的下一级替换集。在所有的替换都被执行后,该替换集合的循环停止。这时将得出结论。图3.3是一个行为树执行的例子。首先被执行的是替换集合(A,B)。如果B成功,则执行终止。如果A成功,则下一个替换集合(C,D,E)被激活。现在假定E是成功的,则下一个替换集合是(I,J)。如果I或J有一个是成功的,则执行终止。注意:如果在任意一个替换集合中没有声明是成功的,则执行将“死锁”。3.3TTCN数据类型和取值本节我们将讨论TTCN的数据类型和他们的取值,TTCN所包含的数据类型用来说明行为描述中所涉及到的数据,如在ASPs和ASPs中的数据类型说明等等。TTCN所定义的数据类型来自于ASN.1(AbstractSyntaxNotationOne)定义的数据类型,而且在TTCN与ASN.1之间无明显的界线,所不同的只是构造类型的定义有所不同。在说明测试套时,可以不使用ASN.1,例如在ISO网络模型中的底层协议就没有使用ASN.1。TTCN包括众多的预定义数据类型,也允许用户根据预定义数据类型自己定义构造类型。在定义数据类型时使用下面TTCN表。1.简单类型定义表2.构造类型定义表(一个类型定义使用一个表)3.3.1预定义数据类型TTCN有丰富的预定义数据类型。除HE
本文标题:38第三章 树表描述语言与协议软件测试
链接地址:https://www.777doc.com/doc-5263828 .html