8协议工程之协议的一致性测试课件

上传人:文**** 文档编号:240603814 上传时间:2024-04-24 格式:PPT 页数:68 大小:902.04KB
收藏 版权申诉 举报 下载
8协议工程之协议的一致性测试课件_第1页
第1页 / 共68页
8协议工程之协议的一致性测试课件_第2页
第2页 / 共68页
8协议工程之协议的一致性测试课件_第3页
第3页 / 共68页
资源描述:

《8协议工程之协议的一致性测试课件》由会员分享,可在线阅读,更多相关《8协议工程之协议的一致性测试课件(68页珍藏版)》请在装配图网上搜索。

1、8协议工程之协议的一致性测试第八章 协议的一致性测试8.1.1一致性定义一致性定义 在OSI范畴内,如果一个实际系统在它与别的实际系统通讯中所表现的行为符合OSI协议规范的一致性要求,我们就说它呈现了一致性。OSI协议规范的一致性要求属于协议规范文本的一部分,它包括:静态一致性要求(static conformance requirements)和动态一致性要求(dynamic conformance requirements)两个方面。静态一致性静态一致性:说明协议实现者必须实现的最小子集的内容,定义各类协议或各个子集的内容即协议实现者欲实现某类协议所必须包括的内容),定义PDU的最大长度,

2、定义各种协议参数、变量、定时时钟的取值范围等等。动态一致性动态一致性:说明协议执行过程中。协议在每个状态下所允许的行为是什么。例如,发出“联接请求”报文的协议实体所期待的回答报文应该是“联接认可”或“联接拒绝”或“联接释放”,其它回答报文是不允许的。第八章 协议的一致性测试 ISO颁布的一部分ISO协议已包括一致性要求文本,这些文本称为协议实现一致性说明PICS(Protocol Implementation Conformance Statements)和协议实现测试的附加信息PIXIT(Prococol Implementation eXtra Information for Testin

3、g)。这些要求往往使用表格形式(tabulor proformas)来描述,前者称作PICS proformas,后者称作为PIXIT proformas。第八章 协议的一致性测试第八章 协议的一致性测试下面的例子说明图8.1模型的基本工作过程,该例子检测IUT是否具有正常的联接能力(假定UT为测试的主控者)。例8.1:UT向IUT发联接请求服务原语CONNECT_retuest;UT告诉LT:已启动联接测试;LT从IUT接收联接请求报文CONNECTreq;如果CONNECTreq合法,LT向IUT发接受联接请求报文CONNECTaccept;LT告诉UT:正确收到联接请求报文,已发出CON

4、NECTaccept报文;UT从IUT接收联接指示服务原语CONNECT_indication(confirm),UT分析有关信息作出IUT是否有正常联接能力的判决(verdict)。第八章 协议的一致性测试8.1.3 测试工作流程 协议一致性测试工作流程如图8.2 所示。协议规范(protocol specification)、服务规范(service specification)以及根据两者制定的协议一致性说明PICS和协议测试的附加信息PIXIT都是由标准化组织颁布的。协议一致性测试者所进行的工作分为四步进行。(1)第一步是根据协议规范、服务规范确定测试目的;(2)第二步是生成并描述测试

5、套具(test suite);(3)第三步是按测试套具对IUT进行测试(这意味着要建立一个测试执行系统);(4)第四步是根据测试记录(test logging)参照PICS和PIXIT对IUT进行评估(assessment),并给出测试报告(test report)。测试套具的生成(第二步)又包括几个方面的工作:一是测试序列的生成,二是测试数据的生成,三是将测试序列和测试数据合起来生成并描述测试套具 第八章 协议的一致性测试第八章 协议的一致性测试 IUT的测试序列(test sequence)根据它的状态转换模型FSM(也可以是CCS模型)产生。对于给定测试目的,IUT应该执行的符合协议一致

6、性要求的事件序列叫做测试序列。实际上,测试序列是测试序列是对对IUT进行结构测试(进行结构测试(structural testing)的事件)的事件系列系列。因此,我们在设计测试序列时,只要考虑IUT的控制结构就可以,无需考虑测试序列中每个事件所携带的参数和数据是什么。例如,下面的测试序列的目的是检查IUT是否有正常联接能力的测试序列。第八章 协议的一致性测试例8.2(测试序列):U!CONreq,L?CP,L!CA,U?CONconf这里,U表示UT,L表示LT,!表示发送,?表示接收,CONreq为联接请求服务原语,CONconf为联接认可服务原语,CP为联接请求报文,CA为接受联接请求报

7、文。例8.2和例8.1相似。测试数据测试数据(test data)的产生包括一系列工作。首先,我们必须将服务原语和PDU用确定数据结构描述,然后根据测试目的产生服务原语和PDU的实例(instances),这些实例就是测试数据。最后,我们还必须设计和编程,产生PDU的编码程序(encoder)和解码程序(decoder),前者将PDU实例转变成信道上可传送的报文,后者将接收的报文转变成PDU。编码程序和解码程序由LT调用。第八章 协议的一致性测试 测试套具测试套具是用某种测试执行系统能够认识的语言描述的.测试套具包括两大部分,一部分是测试数据的描述,另一部分是测试案例(test cases)的

8、描述。对于给定测试目的,UT和LT拟将执行的参数化测试事件的集合(测试事件树)叫做测试案例。测试序列引导出测试案例,但两者有较大区别。对同一个测试序列的事件施加不同的测试数据(即测试事件携带不同参数)就产生不同测试案例,因此一个测试序列对应多个测试案例。测试案例不同于测试序列的另一个地方在于,它还必须考虑“选择事件”。所谓“选择事件”是,当UT或LT接收不到IUT的正常响应事件时,UT或LT应该做什么。例8.3中,事件5和6是UT的选择事件(otherwise),该事件的具体内容由协议测试者定义。另外,测试案例与测试方法紧密相关(参见例8.58.8)。例8.3为一个非形式化的测试案例,测试目的

9、和例8.1相同。source表示源地址,destination表示目的地址,reason表示拒绝原因。实际的测试事件要携带更多的参数。第八章 协议的一致性测试n例8.3 第八章 协议的一致性测试8.1.4 测试级别测试级别IUT的一致性测试分为四级:(1)基本互联测试(basic interconnection test)基本互联测试旨在检查IUT是否具备进一步测试的条件,是否有最小的联接能力,能否接收和发送数据。(2)能力测试(capability test)能力测试旨在检测IUT是否符合动态一致性要求。(3)行为测试(behaviour test)行为测试旨在测试IUT是否符合动态一致性要

10、求,它又分为两级:覆盖性测试(comprehensive testing)和穷尽性测试(exhausive testing)。覆盖性测试只要求测试序列历经IUT的所有转换至少一次就可以,而穷尽性测试要求检查每个转换的前后状态。(4)一致性分解测试(conformance resolution test)。一致性分解测试要求测试执行系统对一致性要求逐项地给出yes/no的肯定回答(例如,IUT实现了第二类协议吗等等)。测试总是由低级向高级逐级进行。下面的例子是行为测试要包括的一部分内容。第八章 协议的一致性测试 IUT的行为测试分成B、C、D三大组,每个大组包括许多小组,每个小组的测试目的可能要

11、由多个测试序列来实现。BIUT对合法行为的响应 测试序列以及测试数据根据协议规范是合法的。B1联接建立阶段 B1.1 注重于向IUT发送什么 B1.1.1 每个状态下改变测试事件 B1.1.2 改变定时时钟之值 B1.1.3 改变PDU编码之值 B1.1.4 改变单个协议参数值 B1.1.5 多个参数值的组合改变 B1.2 注重于从IUT接收什么 (类同于B1.1)B1.3 注重于与IUT的交互 (类同于B1.1)B2 数据传输阶段(类同于B1)B3 联接释放阶段(类同于B1)第八章 协议的一致性测试CIUT对语法上不合法行为的响应 测试序列根据协议规范是合法的,但测试数据是不合法的。C1联接

12、建立阶段 C1.1 注重于向IUT发送什么 C1.1.1 每个状态下改变测试事件 C1.1.2 改变PDU编码之值 C1.1.3 改变单个协议参数值 C1.1.4多个协议参数值的组合改变 C1.2 注重于请求IUT发送什么 C1.2.1 单个不合法参数值 C1.2.2 多个不合法参数值的组合 C1.3 注重于与IUT的交互 (类同于C1.1)C2 数据传输阶段 (类同于C1)C3 联接释放阶段 (类同于C1)第八章 协议的一致性测试DIUT对不合适事件(inopportune events)的响应 不合适事件为异常事件,对协议规范来说,它是不合法的。D1联接建立阶段 D1.1 注重于向IUT发

13、送什么 D1.1.1 每个状态下改变测试事件 D1.1.2 改变定时时钟之值 D1.1.3 改变PDU编码之值 D1.1.4 改变单个协议参数值 D1.1.5 多个参数值的组合改变 D1.2 注重于从IUT接收什么 (类同于D1.1)D1.3 注重于与IUT的交互 (类同于D1.1)D2 数据传输阶段 (类同于D1)D3 联接释放阶段 (类同于D1)第八章 协议的一致性测试8.1.5 要考虑的问题要考虑的问题 协议一致性测试不但在理论上而且在工程上还有许多问题需要进一步研究,这包括:u 测试覆盖率怎样度量?各级测试包括多少测试就足够了?u 怎样选取最小的测试序列去检测最多的协议错误?u 如果协

14、议规范本身有错误,不完整,存在二义性,这将给协议一致性测试带来什么问题,怎样处理?u 怎样描述测试?测试描述至少有二种途径:用测试案例,用一组程序,用参考协议实体。哪种方法最好?u 怎样产生测试数据?u 怎样产生测试序列?u UT 和LT 怎样协同工作?u 怎样进行多层协议测试?u 怎样评估测试结果?本章只讨论三个问题:下节讨论测试方法,第三节讨论测试套具的描述语言TTCN,第四节讨论测试序列的生成方法。第八章 协议的一致性测试8.2 测试方法测试方法测试方法不同,产生和描述测试套具的方法也不同,测试执行系统的结构也不同。目前,人们已提出多种测试方法,这些方法的区别表现在下述几个方面:n 本地

15、测试还是外地测试?即IUT 和测试执行系统的主体部分(LT)是否在同一个机器之中。n 单层协议测试还是多层协议测试?IUT 包括多层协议实体的测试为多层协议测试n 有无UT?如果有UT,UT 的作用是什么?n 测试的协同工作怎样实现?n 是否在线(on-line)测试?IUT 处于正常运行的测试为在线测试。n 是否有实际的低层通讯支持?n LT 和IUT的接口PCO 在何处?第八章 协议的一致性测试1 本地方法(本地方法(local Method)图8.3 为本地方法示意图。在这种方法中,UT,LT,IUT 同处于一台机器中,测试不需要低层通讯系统的支持。IUT 和LT 的接口设在IUT 的底

16、部,UT 和IUT 的接口设在IUT的项部(即为IUT的服务访问点)。由于UT和LT可以拟合在一个程序中,UT 和LT 的测试协同过程TCP(Test Coordinate Procedures)容易实现。测试案例用UT 执行的服务原语和LT 执行的服务原语来描述,此时LT 扮演的角色是低层服务提供者。第八章 协议的一致性测试n例8.4:Local Method:n1.U!CONreqn2.L?(n-1)DATAreqCPn3.L!(n-1)DATAindCAn4.U?CONconfn5.U?otherwisen6.L?otherwise第八章 协议的一致性测试2.分布方法(Distribut

17、ed Method)图8.4 为分布方法示意图。在这种方法中,IUT 和UT处于同一个机器中。LT 分布在其它机器中。LT 和IUT借助于(n-1)层服务交换报文(可以实行在线测试),它们之间的接口PCO 从IUT 转移到LT中,LT 扮演的角色是(n-1)层服务的使用者。UT 和LT 的测试协同过程TCP 隐含在测试案例中,测试同步问题由UT 和LT 的操作者来实现适用于本地方法的测试案例必须改写才能用于分布测试,请注意例8.5 和例8.4 的差别(第二行和第三行).(n-1)DATAreq 表示(n-1)层服务原语,数据发送请求第八章 协议的一致性测试例8.5:Distributed Me

18、thod:1.U!CONreq2.L?(n-1)DATAindCP3.L!(n-1)DATAreqCA4.U?CONconf5.U?otherwise6.L?otherwise第八章 协议的一致性测试3 协同方法(协同方法(Coordinated Method)图8.5 为协同方法示意图协同方法和分布方法的根本区别在于,协同方法引入测试管理协议TMP(Test Management Protocol),UT 和LT 通过交换TMPDU 实行测试协同过程TM_PDU 的交换有两个途径,一是TM_PDU 作为(n)ASP 的用户数据传送给IUT,IUT 将之传送给LT(in-hand 方式);二是

19、TM_PDU 直接利用(n-1)层服务传送(out_band 方式)图8.5 为in_band 方式第八章 协议的一致性测试 分布方法的测试案例不能用于协同方法,请注意例8.6 和例8.5 的差别:例8.6 的第一行表示:LT 向(n-1)层协议发DATAreq请求,数据是TM_PDU,TM_PDU 的内容是:UT向IUT发CONreq请求第八章 协议的一致性测试例8.6 Coordinated Method:1.L!(n-1)DATAreqTM_PDUU!CONreq2.L?(n-1)DATAindCP3.L!(n-1)DATAreqCA4.L!(n-1)DATAreqTM_PDUU?CON

20、cnf,othersise5.L?otherwise第八章 协议的一致性测试4.远程方法(Remote Method)图8.6 为远程方法示意图。该方法的最大特点是没有UT,因此也不存在UT 和LT 的协同问题。测试案例完全用(n-1)ASP 描述。远程方法适用于被动式协议实体或服务型协议实体的测试例8.7 是检验lUT是否能正常接受联接请求的测试案例,IUT!CA为隐含事件例8.7 Remote Method:1.L!(n-1)DATAreqCP2.3.L?(n-1)DATAindCA4.L?otherwise第八章 协议的一致性测试5.渡船方法(渡船方法(Ferry Method)图8.7

21、 和图8.8 为渡船方法示意图。.它与协同方法的不同之处是,渡船方法将UT从被测系统中移到LT 所在系统UT和LT 可拟合在一个程序中,因此有本地方法的优点。然而,在被测系统中取代UT 的,还必须有一个渡船软件,UT发给IUT 的(n)ASP 和UT从IUT 获取的(n)ASP 通过渡船软件进行。例如,UT 执行测试事件的U!CONreq的传递过程是:UT 通过LT,再通过IUT传递给Ferry(in_band 方式),或UT通过(n-1)层服务直接传递给Ferry(out_band方式)图8.7 为in_band 方式,图8.8 为out_band方式。第八章 协议的一致性测试 渡船方法由我

22、国学者曾华桑提出,受到国际学术界很大的重视41该方法的最大优点是,由于UT和LT处于同一个机器中,测试协同过程像本地方法一样容易实现,被测系统中只要增加简单的渡船软件就可以了。前面四种方法都已纳入ISO/DIS 9646协议测试标准中,但渡船方法还未纳入该标中,原因是,有的学者认为渡船方法只是协同方法的一种变种,是协同方法在实现技术上一种改进,它们之间没有根本区别。第八章 协议的一致性测试第八章 协议的一致性测试6.多层协议的测试方法 IUT包含多层协议实体的测试称为多层协议的测试。多层协议测试分两种情况,一是对IUT的所有各层协议进行测试,二是对IUT 某一层协议进行测试,后者称为嵌入协议测

23、试(embedded Testing)。无论是那种情况,测试总是由低层到高层逐层进行,只有低层协议已测试完之后(或者假定低层协议已符合标准之后),高一层协议的测试才能进行假定图8.9的IUT 包括i,j,k 三层协议实体,那么检查整个IUT 是否有正常联接能力的测试案例如例8.8 所示(案例中省去了(i-1)ASP,直接引用(i)PDU)。j 层的联接请求报文cp(j)借助于i 层的数据报文DATA 传送,K 层的联接请求报文cp(k)借助j 层的数据报文DATA传送,这样,只有当i 层联接已成功情况下才能进行j 层联接,只有当j 层联接已成功情况下才能进行k 层联接多层协议的测试案例比单层协

24、议案例复杂得多。前面五种测试方法都可以应用于多层协议的测试。第八章 协议的一致性测试第八章 协议的一致性测试例 8.8 Multi-layer Test Case:1.L!CP(i)2.L?CA(i)*layer i ok 3.L!DATACP(j)4.L?DATACP(j)*layer j ok 5.L!DATADATACP(k)6.L?DATADATACA(k)*layer k ok 7.L?otherwise *layer k err 8.L?otherwise *layer j err 9.L?otherwise *layer I err 第八章 协议的一致性测试7.中继系统的测试方法

25、中继系统的测试方法上述讨论的方法只适用于端系统(end system)中IUT的测试,对于中继系统(relay system)的IUT的测试可采用图8.10和图8.11所示的方法(RS表示中继系统)。图8。10为闭环测试方法(Loop_back Test Method),图8.11为横断测试方法(Transverse Test method)和远程测试一样,中断系统的测试也不需要UT。第八章 协议的一致性测试LTPC0 PCORSSubnet-1Subnet-2LT-1RSLT-2Subnet-1Subnet-2图8.10 闭环测试法图8.11 横断测试法第八章 协议的一致性测试8.3 测试描

26、述语言测试描述语言 TTCN TTCN(Tree and tabular combind Notation)是ISO为描述OSI协议一致性测试而颁布的一种语言。TTCN有两种形式:图形形式(TTCN.GR)和机器可以处理的形式(TTCN.MP)。TTCN.GR是用表格形式(tabular Proformas)定义的,TTCN.MP的语法是用巴科斯范式BNF描述的。(1)TTCN.GR直观易懂,适合于人工阅读,适合于屏幕编辑。表格栏中的词为TTCN中的关键词,它描述表格栏目内包含信息的类型。(2)TTCN.MP有严格的语法,适合于机器处理。TTCN.GR中的关键词在TTCN.MP中全部冠以$符号

27、,这些关键词分为三类:(1)第一类关键词定义一个完整的表格的起点和终点,形式为$BEGIN_KEYWORD$END_KEYWORD(2)第二类关键词定义表个中一行的起点和终点,形式为$BEGKEYWORD$END_KEYWORD(3)第三类关键词定义一个栏目或栏目中的一个字段,形式为$KEYWORD 第八章 协议的一致性测试 例 8.9为 Test case的表格形式和BNF描述。在表格形式中,关键词“Test Case Dynamic behavior”说明表格类型为Test Case,在BNF描述中,Test Case 是用$Begin_Test Case$End_Test Case 来表

28、示的/在表格形式中,“refernce”,“Identifeier”等都表示一个字段,“Behaviour Description”,“Label”等表示一个栏目,在BNF中,他们都属于第三类关键词。BNF描述增加表格行的定义,$Behaviour$End_Behaiour对应于表格中的一行,它由多个相关栏目组成。例8.10为例8.9的一个实例(instance),分别用TTCN.GR和TTCN.MP描述一个具体的测试案例。例 8.9:Test Case Proforma:第八章 协议的一致性测试Test Case Dynamic BehaviourReferenceIdentifierPur

29、poseDefaultBehaviourDescriptionLabelContraintReferenceVerdictCommentsTest Case description in BNF:TestCase:=$Begin_TestCase TestCaseRef TestCaseId Test Purpose DefaultRef Behaviourdescription Extcomments$End_TestCase .BehaviourDescription:=$BehaviourDescription BehaviourLine+$End_BehaviourDescriptio

30、nBehaviourLine:=$BehaviourLine Line LabelId Cref VerdictId Comment$End_BehaviourLineLine:=$line statementline第八章 协议的一致性测试例8.10:Test Case Instance in TTCN.GR form:Test Case Dynamic BehaviorReference:TTCN_EXAMPLE/TREE_EXAMPLE_1Identifier:TREE_EX_1Purpose:to illustrate the use of treeDefault:Behaviour

31、DescriptionLabelContrait RefernceVerdictcommentsL!CONNECTreq L?CONNECTconf L!DATAreq L?DATAind X5LOOP L!DISCreq L?DISCind L?DISCindLOOPCR1CC1DTR1DTI1DSR1DSCI1DSCI1passinconcfailRequest.confimSend dataRev.daarepeat第八章 协议的一致性测试nTest Case Instance in TTCN.MP for.$Begin_TestCase$TestCaseRef TTCN_EXAMPLE

32、/TREE_EXAMPLE_1$TestCaseId TREE_EX_1$TestPurpose to illustrate the use of tree$BehaviourDescription$BehaviourLine$Line1 L!CONNECTreq$cref CR1$comment context request$End_BehaviourLine$BehaviourLine$Line2L?CONNECTconf$Cerf CC1$comment connect confirm$End_BehaviorLine$BehaviourLine$Line3 L!DATAreq$Lab

33、el loop$Cref DTR1$comment send data$End BehaviourLine$BehavioutLine$Line5X5 loop$comment repeat sending data until x=5$End_BehaviourLine$BehaviourLine$Line5 L!DISCreq$Cref DSCR1$Verdicts pass$comment disconnect request$End_Behaviourline$BehaviourLine$Line4 l?DISCind$Cref DSCI1$Verdict inconc$End_Beh

34、aviourLine$BehaviourLine$Line3 L?dISCind$Cref DSCI1$Verdict fail$End_BehaviourLine$End_BehaviourDescription$End_TestCase第八章 协议的一致性测试 一个测试套具的TTCN的描述包含四个部分:套具概况(suite overview)、说明部分(declaration part)限制部分(contraint part)和动态部分(dynamic part).下面分别讨论各个部分。1.测试套具概况测试套具概况 测试套具概况提供足够信息以便使测试套据的使用者更好的测试套具,方便地使用测

35、试套具。这些信息包括:n测试套具名称;n测试套具所参照的协议标准;n测试套具所参照的PICS和PIXIT;n说明PICS和PIXIT的各条款映射到测试套具的哪些部分;n说明测试套具适用于哪些测试方法;n说明测试案例(测试序列)的产生方法;n列出 test case、test step以及各变量、参数等符号的索引。第八章 协议的一致性测试2 说明部分说明部分限制部分和动态部分要访问的所有符号都必须在说明部分给出定义和描述。这些符号包括:n用户定义的类型和操作;n测试套具的参数、变量和常量;nPCO的定义;n定时时钟的说明;n缩写符号定义、ASP各参数定义、ASP参数组合说明;nPDU类型定义、P

36、DU字段(域)定义、PDU字段组合说明。例8.11为ISO传输层协议测试套具中PCO定义,它的PCO实际是TSAP和NSAP,TSAP是UT和IUT的接口,NSAP是LT和IUT的接口。例8.12为ISO传输层协议定义中的CONreq服务原语的定义。CONreq的名称、类型和三个参数的名称和类型都在定义中说明,CONreq的类型为TSAP(TSAP已在例8.11定义),而CONreq的三个参数的类型CDA.CGA,QOS在说明部分给出(本章未给出定义)第八章 协议的一致性测试例8.11:PCO type in TTCN.GR form:PCO Type DescriptionNameTypeR

37、oleCommentsLNSAPLTNSAP as LTUTSAPUTTSAP as UTPCO type in TTCN.GR form:$Begin_PCO$PCOdcl$PCOid$PCOrole LT$End_PCOdcl$PCOdcl$PCOid U$PCOtypeid TSAP$PCOrope UT$End_PCOdcl%End_PCO第八章 协议的一致性测试例 8.12:ASP type in TTCN form:ASP Type in TTCN formASP Name:CONreqPCO Type:TSAPcommentsService Parameter Informati

38、onParameter NameCda(Called Address)Cga(Calling Adress)QoS(Quality of Service)TypeCDACGAQOSCommentsAddress of LTAdderss of UTClass 0 is usedASP type in TTCN.MP form:$Begin_ASPdcl$ASPid CONreq$PCOtypeid TSAP$SPI T_CONNECT request$ASP_PARdcl$ASP_PARtype CDA$comment Address of LT$End_ASP_PARdcl$ASP_PARd

39、cl$ASP_PARid Cga(Calling Address)$ASP_PARtype CGA$comment Address of UT$End_ASP_PARdcl$ASP_PARdcl$ASP_PARid QoS(Service of QuaLity)$ASP_parType QOS$comment Class 0 is used$End_ASP_PARdcl$End_ASPdcl第八章 协议的一致性测试3.限制部分限制部分 所谓限制是指对ASP的参数和PDU字段的值进行的限制,测试数据通过限制定义来实现。对发送和接受来说,限制的意义不同,当UT 或IUT发送ASP或PDU时,“限制

40、”的含义是:ASP参数值和PDU字段等于限制值;当UT或LT从IUT接收ASP或PDU时,“限制”的含义是:所接收的ASP参数或PDU字段值必须符合限制值。限制用两种方法表示:第一种方法是利用说明部分定义的参数和常数,第二种方法是说明部分定义的变量作为参数传递给限制定义。除此之外,限制定义还使用三个特殊符号,以说明特殊限制条件:“表示省略ASP参数或PDU字段;“?”表示接收时,该参数或字段可以为任意值,但类型必须相同;“*”表示“”和“?”中任意一种情况。第八章 协议的一致性测试例8.13为ISO传输层协议的联接请求报文的一个限制(它对应于一个测试数据),PDU的字段域的限制直接用数值表示。

41、例8.14为同一个PDU的另外一个限制,字段Source和Destination用 说明部分定义的常数TS_PARI和TS_PAR2表示,而字段T_class通过参数class表示,任意变量之值可以通过class参数作为字段T_class限制值。第八章 协议的一致性测试例8.13:PDU Comments in TTCN.GR form”PDU Contraint DeclarationPDU Name:T CONNCT_Contraint Name:TCON_1Field NameValue Source000BDestination T_ClassUser data?0?第八章 协议的一致

42、性测试例8.14:PDU Contrants in TTCN.GR form PDU Contrant DeclarationPDU Name:T_CONNECT1Contraint Name;TCON_1(CLASS:INTEGER)Field NameValueSource DestinationT_ClassUser dataTS_PAR1TS_PAR2Class?第八章 协议的一致性测试4.动态部分动态部分动态部分是测试套具的主体部分,它由多个测试案例,测试步(test steps)和缺省步(default steps)组成。测试案例,测试步和缺省步的表格形式和BNF描述是基本相同的,

43、不同的是表格关键词不同。例8.9为Test case 的表格形式,个个关键词的含义如下:Test case 表格关键词;Reference 测试案例名称,第三类关键词;Identifier 测试案例标识,第三类关键词。测试套具的其他部分在引用测试案例时可用Refernce也可以用Identiher;Purpose:说明测试案例的目的,第三类关键词;Defauit 指出本案例所引用的省却步的名称或标识,第三类关键词;Behaviour Description:测试事件的米描述,第二类关键词;Label:测试事件的标号,用于GO TO 语句;COontraints Reperence:指明发送或接

44、收的ASP或PDU的限制的名称,第三类关键词;Verdict:测试结果的裁决(pass,fail,inconc),第三类关键词。Inconc表示未包括(即该事件不在协议规范所包括范围在之中);Comment:注释。第三类关键词。第八章 协议的一致性测试例8.10为例8.9的一个实例,该案例旨在检查IUT是否有基本的联接能力和数据接收能力。标号LOOP为GO TO()语句引用,第5行:x5LOOP表示,当变量X之值小于5时,测试转移到LOOP行。一个测试案例可能很长,为了精简测试案例,我们可以重复出现的一组测试事件抽取出来定义为测试步或省缺步、并将它们放人测试步库(test step libra

45、ry)和省峡库(defaultLibrary)。例8.15为测试步应用例子,例8.16为省缺步应用例子。“+”表示attach语句。省缺步和测试步的引用有两点重要差别:第一,省缺步的应用不使用+语句;第二,省缺步相当在原测试案例的每一个测试事件上附加一个选择事件。第八章 协议的一致性测试例8.15:Test steps第八章 协议的一致性测试例8.16:Default steps第八章 协议的一致性测试8.4 测试序列生成方法测试序列生成方法 测试序列是一集根据协议规范所产生的输入、输出事件序测试序列是一集根据协议规范所产生的输入、输出事件序列,列,协议一致性测试时,测试执行系统向IUT施加输

46、人事件序列,接收校验输出事件序列。检查状态转换,根据输出事件和状态的转移,判定IUT的行为是否符合协议规范的描述。测试序列说明IUT所应该表现的逻辑行为,因此它可以从协议模型中推导出来(FSM模型,CCS模型等)。目前,大部分协议测试序列的生成算法基于FSM模型。本章所使用的FSM模型如图8.12和图8.13所示。图8.13的a,b,c等孤表示一次转换a/b(a表示输入事件,b表示输出事件),是图8.12的孤的简写形式。这里,我们假定IUT(即它的FSM模型)有如下四个基本特性:(1)IUT的状态数,所能接收的输入事件数,所产生的输出事件数都是有限的,确定的。这个特征保证本章所描述的算法都是收

47、敛的。第八章 协议的一致性测试(2)IUT有完整性,即它在每个状态下都能接收所有协议规范描述的输入事件。一般情况下。IUT在某个状态下只对一部分输入事件产生响应(或产生输出事件,或改变状态,或产生输出事件的同时改变状态)。这些输入事件称作核心事件(core event),其它输入事件称作非核心事件。本章所有FSM图只画出核心事件所引起的转换,所描述的算法只关心核心事件。非核心事件的测试留待测试案例生成时扩充(8.1节讨论行为测试时曾提到IUT对不合法行为的响应问题,非核心事件是不合法事件的一部分)。(3)对于每个输入事件,如果IUT产生输出事件,那么该输出事件在给定有限时间内产生。根据这个特性

48、,IUT的超时事件是可判定的,它是否产生输出事件也是可判定的。(4)IUT的每个状态是可达的,它的FSM图是连通图,这是本章所有算法能够执行的基本前题。第八章 协议的一致性测试8.4.1 测试序列生成的基本算法测试序列生成的基本算法假定IUT能接收并且执行三种特殊的输入事件:(1)复位命令(RESET)IUT接收RESET命令之后,无论它处于何种状态,都复位到初始状态,不产生输出事件。(2)置位命令(SET)IUT接收SET(i)命令之后将其状态置成状态i,不产生输出事件。(3)取状态命令(STATUS)IUT接收STATUS命令之后产生输出事件,报告它所处状态,但不改变状态。第八章 协议的一

49、致性测试算法8.1:exhausive test sequence对状态i Q执行1.利用reset命令将IUT置成初始状态。2.利用SET(i)命令将IUT置成状态i。3.向IUT施加输入事件j(j M(i),M(i)表示状态i所有核心事件的集合),接收并校对IUT的输出事件是否与协议规范所描述的匹配。4.利用STATUS命令检查IUT是否转换到协议规范所描述的状态。5.重复14,直到状态i的所有核心输入事件测试完毕。对于图8.12所示的IUT(状态1为初始状态,a/1表示输入为a,输出为1的转换),按照算法8.1产生的测试序列是:RESET,SET(1),a/1,STATUS;RESET,

50、SET(1),b/1,STATUS;RESET,SET(2),a/0,STATUS;RESET,SET(2),b/1,STATUS;RESET,SET(3),a/0,STATUS;RESET,SET(3),b/1,STATUS。第八章 协议的一致性测试实际上,上述算法中的RESET和SET命令可以省去,如果我们能找到一条转换序列,使测试能遍历每次转换至少一次,那么测试效果就会和算法8.l相同。第八章 协议的一致性测试算法算法8.2:transition tour without SET设M(i)为状态i的核心事件集合,变量i为IUT当前状态。1.利用RESET命令将IUT置成初始状态,i=初始

51、状态。2.向IUT施加任意未被测试事件j(j M(i),接收并校对输出事件是否与协议规范所描述的输出事件相同,标记j已被测试。3.利用STATUS命令检查IUT是否转换到指定状态k,i=k。4.重复23,直至所有转换都被测试一次。对于图8.12所示IUT,算法8.2产生的测试序列可以是:RESET;a/1,STATUS;b/1,STATUS;b/1,STATUS;b/1,STATUS;a/0,STATUS;a/0,STATUS。算法8.2仅仅显示缩短测试序列的一种途径,它的许多地方需要改进。第八章 协议的一致性测试n8.4.2测试序列生成的修正算法测试序列生成的修正算法n算法8.1和8.2要求

52、IUT接收执行三个特殊命令:SET,RESET,STATUS,这种给IUT提出的特殊要求使得这两种算法变得不实用。下面我们讨论能否取消这些命令,如果不能取消,那么用什么代替这些命令。n1.RESET命令n 没有RESET命令,算法8.1无法执行,但是算法8.2可执行。RESET命令可以用HOME序列代替,HOME(i)序列是一集输出、输出事件序列,它将IUT状态的i变成初始状态。很显然,测试进行之前,我们必须找到并先测试每个状态的HOME序列,这又提出一个新问题。实际上,绝大部分IUT有RESET功能和CLEAR功能,因此下面的算法都假定IUT可执行RESET命令。第八章 协议的一致性测试n2

53、.SET命令n没有SFT命令,算法8.l不能执行,但算法8.2可执行。SET命令可以用路径序列(Path Sequence替代,PS(i)为一集输人、输出事件序列,它将IUT的状态从初始状态变成i。我们无需在测试之前找出并测试IUT的所有PS(这意味着整个IUT已被此时),而是测试进行过程中利用已测试的转换逐步地找到各个状态的PS。第八章 协议的一致性测试n3.STATUS命令n 没STATUS命令,算法8.1和8.2都无法执行(如果没有这个命令,穷尽性测试退变为复盖性行为测试。请参见8.l节的测试级别的讨论)。STATUS命令可以用特征序列(Characterizing Sequence)替

54、代,CS(i)为一集从状态i开始的输人,输出事件序列,CS(i)的行为唯一地标识状态i(就是说,各个状态的CS的行为是不相同的)。测试之前,我们必须找出所有状态的CS,但不必预先测试它。例如,我们要测试状态i到j的转换t,测试序列为SET(i),t,CS(j)。如果测试不成功,错误可能是t,也可能是CS(j),无论是哪个错误,都可认为是t的错误.n 下面利用PS和CS修正算法8.1和8.2。第八章 协议的一致性测试n算法算法8.3:exhausive test sequence with PS and CSn1.利用RESET命令将IUT置成初始状态。n2.向IUT施加PS(i)将IUT置成状

55、态i。n3.向IUT施加输人事件j(j M(i),M(i)为状态i的核心事件集合),接收并核对IUT的输出事件。n4.如果输入事件j将IUT转变成状态k,那么向IUT施加CS(k),核对CS(k)是否成功执行。n5.重复14,直至M(i)的所有输入事件都已测试为止。n对于图8.12所示IUT,我们可以直观地找到PS(2)=a/1,PS(3)=b/1。按UIO方法(将在8.4.4讨论),我们可以直观地找到CS(1)=a/1,CS(2)=a/0,a/1,CS(3)=a/0,a/0。根据算法8.3,我们得到测试序列为:nREST,a/1,CS(2)=a/0,a/1;nREST,b/1,CS(3)=a

56、/0,a/0;nREST,PS(2)=a/1,a/0,CS(1)=a/1;nREST,PS(2)=a/1,b/1,CS(3)=a/0,a/0;nREST,PS(3)=b/1,a/0,CS(2)=a/0,a/1;nREST,PS(3)=b/1,b/1,CS(1)=a/1;第八章 协议的一致性测试n算法算法8.4 transitions tour with CSn设M(i)为状态i的核心事件集合,状态变量i为IUT当前状态。n1.利用RESET命令将IUT置成初始状态,i=初始状态。n2.如果M(i)的事件都已测试,向IUT输人事件j(j M(i),如果事件j将IUT变成状态k,i=k,算法回到2

57、。如果M(i)的事件未被测试,向IUT施加未被测试事件j(j M(i),接收并校对IUT的输入事件,标记事件j已被测试。n3.如果事件j将IUT变成状态k,那么向IUT施加CS(k),核对CS(k)是否正确执行,i=TCS(k)。TCS(k)表示IUT执行CS(k)之后的最终状态。n4.重复23,直至所有M(i)的事件都己测试完毕。n算法8.4是可执行的算法,但是由它产生的测试序列可能不是最短测试序列。对于图8.1所示的IUT,利用算法8.4所产生的测试序列可能是:nRESET;a/1,CS(2)=a/0,a/1;nb/1,CS(3)=a/0,a/0;nb/1,CS(3)=a/0,a/0;na

58、/1;a/0,CS(1)=a/1;nb/1;a/0,CS(2)=a/0,a/1;nb/1;b/1,CS(1)=a/1。第八章 协议的一致性测试n8.4.3最短转换游程最短转换游程n 算法8.2和8.4为转换游程算法,但不是最短转换游程算法。这个问题可以利用图论中关于中国乡村邮路和欧拉游程(Euler Tour)的经典算法得到圆满解决。n 每个结点的输入孤(input edges)和输出孤(output edges)的数目相等的有向连通图称作对称有向图(如图8.13)。在对称有向图中,存在从某个结点出发经历每条孤仅仅一次而回到起始结点的闭链。这种闭链称作欧拉游程。对于非对称有向图(如图8.14)

59、,我们可以增添若干冗余弧,使之变成对称有向图,怎样添加最少冗余弧使非对称有向图变成对称有向图,实际上就是中国乡村邮路问题。这样,最短转换游程可以分两步求得:第一步将非对称图变成对称有向图;第二步从对称有向图中求出欧拉链 第八章 协议的一致性测试第八章 协议的一致性测试n算法8.5:symmetric graph augmentation n设有向连通图G的结点集合为V。n对于每个结点,设变量c(i)=(the number of input edges)-(the number of output edges).n任选一对结点i和j,利用Dijsketra算法找到结点i到就的最短路径,添加冗余

60、弧,。n重复第二步算法,直至所有。n算法8.6:deriving Euler Tourn 设对称有向图G的结点集合为V,变量i为当前结点,M(i)为i的核心事件集合,结点为起始结点,以r为起始点的欧拉游程为ET。n将r放入ET中,i=r。n从M(i)中任选一条未包括在ET中的事件j,将j放入ET中,如果事件j(输出弧)指向结点k,将k放入ET中,i=k。n重复第二步,直至IUT的所有弧都已放入ET为止。n如果某些弧未包括在ET中,清除ET,重复算法。n对于图8.14所示的非对称图,。如果我们首先选择结点1 和4,那么要添加冗余弧g=a,i=d,结点1和4 的计数分别减1 和加1。之后,我们选择结点2和3,添加j=c,h=a,2和3的计数值分别减1 和加1。增添这四条冗余弧之后,图8.14就变成图8.13。图8.15示出变换过程。如果我们取结点3为起始结点,图8.13的欧拉游程可以为:第八章 协议的一致性测试第八章 协议的一致性测试

展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!