协议测试方法

文档序号:7555536阅读:244来源:国知局
专利名称:协议测试方法
技术领域
本发明涉及到通信系统测试领域,特别涉及一种应用在通信系统中的协议测试方法。
背景技术
目前,在通信系统的协议测试过程中,广泛采用树表结合记法(TTCN,Tree and Table Combined Notation)协议来编写测试套以进行各种协议的测试。现在用在通信系统中的协议测试方法主要有以下两种方式第一种方式是参照TTCN协议规范中的定义直接将多个完整待测协议的定义和描述编写在协议套中,再针对每个待测协议具体编写多个测试用例,最后使用唯一的主测试部件(MTC,Main Test Component)通过控制和观察点(PCO,Point ofControl and Observation)和被测系统进行数据包的相互交互。参照图1,在测试套中,通过预先编制好的测试用例,所有测试任务数据包都由MTC产生并通过PCO发送到被测系统;同时被测系统生成的协议测试结果数据包也通过PCO直接发送到测试套的MTC中,由MTC进一步完成解码匹配处理;同时所有由被测系统发来的心跳消息(心跳消息是一种在通信系统中在两个设备之间定时传输的消息,该消息用于询问设备是否处于正常工作状态。当一个设备发送一条心跳消息给对方设备,询问对方设备是否处于正常工作状态时,如果对方设备处于正常工作状态,则会回应一条心跳应答消息给该设备;如果对方设备没有回应心跳消息,则表示对方设备工作状态异常)也都由MTC进行回应。这种协议测试方法的缺点是测试套在同一时间段内只能专用于一种协议的测试,不便于测试套对多种协议进行同时测试,导致协议测试的灵活性较差;同时由于所有的测试任务都由MTC独自承担,所以就增加了在对测试套中的多个测试用例进行设计的复杂度。
第二种方式是根据TTCN协议规范中的定义将测试套进行分层处理,将某些底层协议固定编写在TTCN执行器的内部,并将高层协议作为外部接口进而和被测系统进行连接。参照图2,首先将测试套划分为底层协议和高层协议两部分,将不同的完整待测协议分别固定编写在位于底层协议部分的TTCN执行器内部的多个并行测试部件(PTC,Parallel Test Component)中,使每一个PTC分别负责一种类型的协议测试;同时将高层协议部分中的MTC作为外部接口,进而通过PCO和被测系统进行数据包交互。其工作过程是MTC和多个PTC之间是并行工作的关系,每个PTC分别将各自的协议测试任务数据包通过协作点(CP,Coordination Point)直接发送到MTC,MTC对这些测试任务数据包不进行任何处理,只是进行简单的识别后,然后将测试任务数据包分别通过PCO发送到被测系统中的相应被测协议实现中,以进行相应的协议测试。相反,由被测系统回应到测试套的协议测试结果数据包,也相应首先由MTC进行简单的识别后,分别通过CP上传到相应的PTC中,由相应的PTC对整个协议测试结果数据包进行解码匹配处理。这种协议测试方法虽然可以使测试套对多种不同类型的协议进行同时测试,具有相对灵活的协议测试功能;但是每种类型的协议测试任务却都要由每个相应的PTC来单独承担并完成,所以对于每个PTC而言,其所完成的测试任务与第一种方式中的MTC测试任务类似;同时每个PTC负责的协议测试任务又是固定不变的,如果要测试多个PTC所负责的协议测试之外的其他协议测试,就要对某个PTC中整个测试用例进行更改,所以对多种协议测试而言,该方法具有很大的局限性且多测试用例的设计和更改过程相对也比较复杂。

发明内容
本发明提出一种协议测试方法,以解决现有技术协议测试过程中协议测试灵活性较差且测试套中测试用例设计过程较为复杂的问题。
为此,本发明提出的协议测试方法,使用测试套向被测系统发送测试任务数据包,并通过接收并分析被测系统返回的测试结果数据包,来实现对被测系统中的被测协议实现进行测试,所述测试套包括主测试部件和并行测试部件,所述方法包括下列步骤(1)将所述测试套划分为高层协议部分和底层协议部分;(2)将主测试部件作用于所述的高层协议部分,用于对所述被测协议实现的高层协议进行测试;(3)将并行测试部件作用于所述的底层协议部分,用于对所述被测协议实现的底层协议进行测试。
其中所述测试套向被测系统发送测试任务数据包的过程是(S1)所述主测试部件将高层协议部分的测试任务数据包发送到所述并行测试部件中;(S2)所述并行测试部件将所述底层协议部分的测试任务数据包和接收到的高层协议部分的测试任务数据包打包成一个完整的测试任务数据包,并发送到所述的被测系统中。
上述步骤(S2)中所述并行测试部件将所述底层协议部分的测试任务数据包和接收到的高层协议部分的测试任务数据包打包成一个完整的测试任务数据包后,还包括步骤所述并行测试部件将打完包后的完整的测试任务数据包分组为多个测试任务数据包,并依次发送到所述被测系统中。
其中所述测试套接收被测系统返回的测试结果数据包的过程是(R1)所述被测系统将测试结果数据包回应给所述测试套中的所述并行测试部件;(R2)所述并行测试部件将测试结果数据包拆分成高层协议测试结果数据包和底层协议测试结果数据包两部分;(R3)所述并行测试部件直接对底层协议测试结果数据包进行解码匹配处理,并把高层协议测试结果数据包上传给所述主测试部件;(R4)所述主测试部件对接收到的高层协议测试结果数据包进行解码匹配处理。
上述在所述步骤(R1)和步骤(R2)之间进一步包括步骤所述并行测试部件对所述被测系统回应来的多个测试结果数据包进行合并,以形成一个完整的测试结果数据包。
所述测试套在接收被测系统返回的测试结果数据包时,还会周期接收到由被测系统发来的用于询问测试套是否工作正常的心跳消息。当所述测试套在接收到测试系统发来的心跳消息时,直接由所述底层协议部分的并行测试部件对所述心跳消息回应心跳应答消息。
本发明有益效果由于本发明把测试套划分为高层协议部分和底层协议部分,高层协议部分和底层协议部分分别负责各自所在层的测试任务,进而可以使同一高层协议测试和不同底层协议测试结合进行协议测试;也可以使不同高层协议测试和同一底层协议测试结合进行协议测试;这样即可以保证协议测试的灵活性,也可以使对测试套中的测试用例的设计过程变得简便。


图1是现有技术中一种协议测试过程;图2是现有技术中另一种协议测试过程;图3是本发明协议测试方法中测试套分层结构示意图;图4是本发明协议测试方法中测试套和被测系统之间数据包交互处理的流程图;图5是本发明协议测试方法一应用实例示意图;图6是图5中应用实例的TTCN具体过程图。
具体实施例方式
本发明协议测试方法的设计思路是一般在一条完整的协议测试过程中,主要对该完整协议的高层协议部分进行测试,而对该完整协议的底层协议部分的测试几乎可以不予考虑,从而可以把测试套进行分层处理,使MTC负责高层协议部分的测试任务,同时使多个PTC负责底层协议部分的测试任务,更进一步,还可以对底层协议部分再次进行分层处理;当需要更改协议测试任务时,只需要更改其测试用例在高层协议部分的设计,而不用再次更改该测试用例在底层协议部分的设计,同时可以使负责测试任务较轻的底层协议部分对一些常见消息,如心跳消息直接进行答复,以减轻高层协议部分的测试任务。所以该方法既可以保证具有较好的协议测试灵活性,又可以简化对测试套中测试用例的设计过程。
参照图3,是本发明协议测试方法测试套分层结构示意图。在用TTCN协议编写测试套1中的各种类型的协议测试之前,首先把测试套1进行分层处理,即划分为高层协议和底层协议两部分。
然后将MTC 2作用于高层协议部分,以负责高层协议的测试任务;同时将多个PTC 31、PTC 32...PTC 3n作用于底层协议部分,以负责底层协议的测试任务;这样设置的目的是使测试套1通过MTC 2对被测系统的高层协议部分的测试任务进行测试,同时使测试套1通过多个PTC 31、PTC 32...PTC3n对被测系统的底层协议部分的测试任务进行测试。
其中每个测试套1的高层协议部分中只有一个MTC 2,来控制底层协议部分的多个PTC 31、PTC 32...PTC 3n,一般MTC 2会根据待测协议任务的不同类型,来启动相应的不同类型的PTC 31、PTC 32...PTC 3n;即PTC 31、PTC 32...PTC 3n分别对应不同的协议测试类型,所以MTC 2协同PTC 31、PTC 32...PTC 3n中的每一个PTC都能够完成一套完整协议的测试过程,从而达到对通信系统中的多种协议进行灵活测试的目的。
同时PTC 31、PTC 32...PTC 3n分别通过一个CP与MTC 2进行数据包的相互交互,所述的CP可以实现PTC和MTC之间的逻辑连接;此外PTC 31、PTC 32...PTC 3n中的每一个PTC又分别通过一个PCO和被测系统4进行数据包的相互交互。
测试套1中的PTC 31、PTC 32...PTC 3n中的每一个PTC都分别通过轮回查询与自身连接的CP和PCO目前的状态,来检测数据包的到来,一旦检测到CP状态发生变化,就能得知高层协议部分的MTC 2发来了测试任务数据包,可以接收该测试任务数据包,并进行处理;一旦检测到PCO状态发生变化,就能得知被测系统4发来测试结果数据包,也可以进而接收该测试结果数据包,并进行处理。这里的测试任务数据包不但包括测试任务,而且还包括一些其他类型的数据;同时测试结果数据包也不但包括测试结果,而且还包括一些其他类型的数据。
在图3所示的分层结构示意图中,MTC 2将高层协议部分的测试任务数据包发送到底层协议部分的相应的PTC 31、PTC 32...PTC 3n中,然后底层协议部分的相应的PTC 31、PTC 32...PTC 3n将底层协议部分的测试任务数据包和接收到的高层协议部分的测试任务数据包进行统一打包,形成一个完整的协议测试任务数据包并发送到被测系统4中;相反,如果底层协议部分的相应PTC 31、PTC 32...PTC 3n接收到被测系统4的回应测试结果数据包时,首先对该回应的测试结果数据包进行拆分,把底层协议测试结果数据包留下,然后把高层协议测试结果数据包上传到上层协议部分的MTC 2中,相应的PTC 31、PTC 32...PTC 3n和MTC 2分别对底层协议测试结果数据包和高层协议测试结果数据包进行解码匹配处理操作,以用于后续对协议测试结果数据进行分析。
参照图4,是本发明协议测试方法中测试套和被测系统之间数据包交互处理的流程图;其具体过程是步骤10测试套中上层协议部分的MTC根据待测协议任务的不同类型,来启动相应类型的PTC;步骤20PTC通过查询CP的状态来检测MTC是否发来测试任务数据包;如果发现CP的状态发生变化,转到步骤30;如果CP的状态没有变化,转到步骤70;步骤30PTC接收高层协议部分MTC发来的测试任务数据包,并把底层协议部分的测试任务数据包和接收的高层协议部分的测试任务数据包进行统一打包,形成一个完整的测试任务数据包,然后执行步骤40;步骤40PTC根据打包后的完整的测试任务数据包的容量大小判断是否要对该完整的测试任务数据包进行分组发送,如果需要转到步骤50;如果不需要转到步骤60;步骤50PTC对打包后的完整的测试任务数据包进行分组操作,并分别把分组后的每一组测试任务数据包发送到被测系统中;步骤60PTC直接将打包后的完整的测试任务数据包发送到被测系统中;步骤70PTC通过查询PCO的状态来检测被测系统是否发来测试结果数据包;如果发现PCO的状态发生变化,转到步骤80;如果PCO的状态没有变化,转回至步骤20;步骤80PTC接收被测系统发来的测试结果数据包,并判断该测试结果数据包是否为心跳消息,如果是,转到步骤90;如果否,转到步骤100;步骤90PTC直接根据接收的心跳消息,回应心跳应答消息给被测系统;步骤100PTC再次判断被测系统回应来的测试结果数据包是否为内容完整的测试结果数据包(有时,被测系统回应给测试套的测试结果数据包容量很大,所以需要分组传输,从而造成PTC接收的测试结果数据包内容不完整),如果是,转到步骤110;如果否,转到步骤140;步骤110PTC将被测系统回应给测试套的完整的测试结果数据包拆分成高层协议测试结果数据包和底层协议测试结果数据包两部分;步骤120PTC直接对拆分出的底层协议测试结果数据包进行解码匹配处理,以用于后续对底层协议测试结果数据进行分析;并把拆分出的高层协议测试结果数据包上传到高层协议部分的MTC;步骤130MTC对接收的高层协议测试结果数据包进行解码匹配处理,以用于后续对高层协议测试结果数据进行分析;步骤140PTC继续等待后续被测系统发来的内容相关的测试结果数据包,直到将内容相关的多个测试结果数据包全部接收到,然后将接收到的多个内容相关的测试结果数据包合并成一个完整的测试结果数据包;步骤150PTC将合并后的测试结果数据包拆分为高层协议测试结果数据包和底层协议测试结果数据包两部分,然后继续执行步骤120至步骤130。
参照图5,是本发明协议测试方法一应用实例示意图。该应用实例以CAP(Camel Application Part)协议为例来进一步阐述采用分层手段进行协议测试的整个过程,其中CAP协议是GSM移动智能网中的一个标准协议。一条完整的CAP协议消息由消息传递部分(MTP,Message Transfer Part)协议,信令连接控制部分(SCCP,Signaling Connection and Control Part)协议,事务能力应用部分(TCAP,Transaction Capability Application Part)协议和CAP协议四部分共同组成。而一般在协议测试的时候,重点只关心高层协议参数的变化情况,如上述对CAP协议进行测试时,只需要重点关心高层协议的CAP协议参数和TCAP协议参数的变化情况,而底层协议的SCCP协议参数和MTP协议参数的变化情况几乎可以不用考虑。即在测试套中编写该CAP测试用例的时候,只需要重点考虑并设计CAP协议参数和TCAP协议参数所在的高层协议部分,而对底层协议部分的SCCP协议参数和MTP协议参数可以次之考虑或直接忽略,这样所得测试结果的准确度并不会偏差太大。当更改CAP测试用例时,可以只对CAP协议参数和TCAP协议参数进行更改,而不用再去更改SCCP协议参数和MTP协议参数,从而可以简化测试用例设计过程的复杂度。
对应于本发明协议测试方法,在本应用实例中,可以在测试套中把CAP协议和TCAP协议合称为高层协议部分,同时把SCCP协议和MTP协议合称为底层协议部分;把MTC作用于高层协议部分,负责对CAP协议和TCAP协议进行测试;同时把PTC作用于底层协议部分,负责对SCCP协议和MTP协议进行测试。高层协议部分(即CAP协议和TCAP协议所在层)将测试任务数据包通过MTC作用经由CP直接下发到底层协议部分(即SCCP协议和MTP协议所在层),底层协议部分通过PTC把底层协议部分的测试任务数据包和高层协议部分的测试任务数据包打包在一起通过PCO发送到被测系统中。
同样,测试套在通过PCO接收到被测系统发来的内容完整的测试结果数据包时,底层协议部分的PTC自动将测试结果数据包中的高层协议测试结果数据包和底层协议测试结果数据包拆分,并直接对底层协议测试结果数据包进行解码匹配处理,同时将高层协议测试结果数据包通过CP上传到高层协议部分,然后高层协议部分的MTC对高层协议测试结果数据包进行解码匹配处理。
在处理由被测系统发到测试套的心跳消息时,直接由底层协议部分的PTC对相应的心跳消息回应心跳应答消息,不必进一步上传到高层协议部分再进行处理,这样可以避免心跳消息的突然出现会打断高层协议部分的逻辑处理过程,从而降低了对测试套中测试用例设计的复杂度。
经过上述的过程,就可以完成利用分层结构的测试套来完成对一条完整的CAP协议进行测试的整个过程。
参照图6,是上述应用实例的TTCN具体过程图。首先在底层协议部分(即SCCP协议和MTP协议组成的协议层)设置一条仿真语句+StartSCCPSimulator(SCCP),来启动底层协议测试任务;然后在中间设置一条语句+MyProcessdure,语句+MyProcessdure是真正要执行的高层协议测试任务;执行到+MyProcessdure语句时,自动转到第4行和第5行的CAP协议测试语句和TCAP协议测试语句并执行,即主要根据第4行和第5行的CAP协议测试语句和TCAP协议测试语句来完成高层协议测试的任务;然后在该CAP协议测试完毕后,执行+EndSCCPSimulator(SCCP)语句来结束该协议测试。其中如果需要改变协议测试的任务,即测试CAP协议之外的协议,只需要对第4行和第5行的高层协议测试语句进行更改,而底层协议测试语句依旧使用+StartSCCPSimulator(SCCP)即可,因为对于一条完整的协议测试而言,其底层协议测试可以忽略不计。从而可以进一步看出,采用本发明协议测试方法,可以大大简化对测试套中测试用例设计过程的复杂度。
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以作出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。
权利要求
1.一种协议测试方法,该方法使用测试套向被测系统发送测试任务数据包,并通过接收并分析被测系统返回的测试结果数据包,来实现对被测系统中的被测协议实现进行测试,所述测试套包括主测试部件和并行测试部件,其特征在于,所述方法包括下列步骤(1)将所述测试套划分为高层协议部分和底层协议部分;(2)将主测试部件作用于所述的高层协议部分,用于对所述被测协议实现的高层协议进行测试;(3)将并行测试部件作用于所述的底层协议部分,用于对所述被测协议实现的底层协议进行测试。
2.根据权利要求1所述的协议测试方法,其特征在于,在所述底层协议部分设置至少一个并行测试部件,以用于对所述被测协议实现的底层协议进行测试。
3.根据权利要求1所述的协议测试方法,其特征在于,所述测试套向被测系统发送测试任务数据包的过程是(S1)所述主测试部件将高层协议部分的测试任务数据包发送到所述并行测试部件中;(S2)所述并行测试部件将所述底层协议部分的测试任务数据包和接收到的高层协议部分的测试任务数据包打包成一个完整的测试任务数据包,并发送到所述的被测系统中。
4.根据权利要求3所述的协议测试方法,其特征在于步骤(S2)中所述并行测试部件将所述底层协议部分的测试任务数据包和接收到的高层协议部分的测试任务数据包打包成一个完整的测试任务数据包后,还包括步骤所述并行测试部件将打完包后的完整的测试任务数据包分组为多个测试任务数据包,并依次发送到所述被测系统中。
5.根据权利要求1所述的协议测试方法,其特征在于,所述测试套接收被测系统返回的测试结果数据包的过程是(R1)所述被测系统将测试结果数据包回应给所述测试套中的所述并行测试部件;(R2)所述并行测试部件将测试结果数据包拆分成高层协议测试结果数据包和底层协议测试结果数据包两部分;(R3)所述并行测试部件直接对底层协议测试结果数据包进行解码匹配处理,并把高层协议测试结果数据包上传给所述主测试部件;(R4)所述主测试部件对接收到的高层协议测试结果数据包进行解码匹配处理。
6.根据权利要求5所述的协议测试方法,其特征在于,在所述步骤(R1)和步骤(R2)之间进一步包括步骤所述并行测试部件对所述被测系统回应来的多个测试结果数据包进行合并,以形成一个完整的测试结果数据包。
7.根据权利要求1所述的协议测试方法,其特征在于,所述测试套在接收被测系统返回的测试结果数据包时,还会周期接收到由被测系统发来的用于询问测试套是否工作正常的心跳消息。
8.根据权利要求7所述的协议测试方法,其特征在于,所述测试套在接收到测试系统发来的心跳消息时,直接由所述底层协议部分的并行测试部件对所述心跳消息回应心跳应答消息。
9.根据权利要求1所述的协议测试方法,其特征在于,所述主测试部件与所述并行测试部件之间通过协作点进行数据包交互。
10.根据权利要求1所述的协议测试方法,其特征在于,所述并行测试部件和所述被测系统之间通过控制和观察点进行数据包交互。
11.根据权利要求9或10所述的协议测试方法,其特征在于,所述并行测试部件通过轮回查询所述协作点、所述控制和观察点的状态,来检测数据包的到来。
全文摘要
本发明提供了一种协议测试方法,用于使用测试套对被测系统中的被测协议实现进行测试,其中所述测试套包括主测试部件和并行测试部件,通过将所述测试套划分为高层协议部分和底层协议部分;将主测试部件作用于所述的高层协议部分,用于对所述被测协议实现的高层协议进行测试;将并行测试部件作用于所述的底层协议部分,用于对所述被测协议实现的底层协议进行测试。本发明协议测试方法具有较好的协议测试灵活性且能够简化对测试套中测试用例的设计过程。
文档编号H04L29/06GK1625172SQ200310116928
公开日2005年6月8日 申请日期2003年12月3日 优先权日2003年12月3日
发明者关健, 肖峰 申请人:华为技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1