基于模型转换的协议正确性验证和测试方法

文档序号:7611104阅读:277来源:国知局
专利名称:基于模型转换的协议正确性验证和测试方法
技术领域
本发明涉及现代通信领域中的协议工程技术,尤其涉及一种基于模型转换的协议正确性验证和测试方法。
背景技术
随着网络服务要求的提高,网络系统的复杂性要求高质量的通信协议再也不可能靠工程直觉方法来设计了,协议工程(Protocol Engineering)技术用形式化的方法来描述在协议设计和维护中的各个活动,使协议开发的整个过程一体化、系统化和形式化,从而保证协议的完整性、正确性、安全性和可移植性。
随着协议形式化描述技术的日趋完善,网络通信协议的开发方法将逐步从非形式化描述、手工方法过渡到以形式化描述技术为基础的软件工程方法。目前比较重要的形式化描述技术包括有限状态机、Petri网等。
在有限状态机技术中,每个协议机器(即发送设备或接收设备)在每一时刻总是处在一个特别的状态,其状态由它的变量的所有值构成,包括程序计数器等。Petri网是用来描述并发的异步活动的系统,它有4种基本元素位置、变迁、弧和权标。
开放系统互连的主要目的是能够使各种各样的计算机系统方便地相互连接并且进行可靠的通信。为了实现这个目标,必须有一套技术方法来判断所实现的协议是否真正符合相应的协议标准,这种技术就称为协议测试技术。协议测试是保证协议实现正确性的高阶手段,随着网络通信技术的发展,面对日趋复杂的协议设计,协议测试越来越成为协议工程流程中的瓶颈。一个简单的错误可能会延缓整个协议工程的开发周期,一个协议实现中的隐含错误可能会导致严重的后果,而在协议设计的后期,检查协议的逻辑错误是一项艰苦的任务,所以基于前期的协议正确性验证技术显得尤其重要。
对协议本身的逻辑正确性进行校验的过程称之为协议的正确性验证(Protocol Correctness Verification),它是保证协议设计正确性和完整性的一个重要阶段,处于协议工程中协议形式化描述阶段之后,协议测试阶段之前,其主要目的是在协议开发的前期最大限度地定位和纠正协议的逻辑错误和缺陷,为后续的协议测试打好基础。协议正确性验证技术是在二十世纪七十年代末期被提出来的,该项技术目前正迅速发展,并日趋成熟,因此开发相应的协议正确性验证应用工具,探索新的协议正确性验证方法已经成为协议工程领域中一项重大课题。
现有技术中用于协议正确性验证的形式化模型大都是基于单一的形式化模型,包括有限状态机模型、Petri网模型等,利用这些模型本身具有的验证功能,例如逻辑证明、可达性分析、模拟等技术,来检测协议设计的一些错误。
现有技术中基于单一的形式化模型的协议正确性验证方法的缺点为各种单一的形式化模型各有其针对性和侧重面,但都不全面,并不能保证在协议设计的初级阶段就能够实现对协议进行完备的正确性验证。由于协议的设计、形式化描述和验证都是由人来进行的,因此通过单一的形式化模型验证后的协议还是不可避免地存在人为的错误。这些错误的存在,将导致协议的形式化描述中存在隐含错误,并且不够完备,继而将导致生成的协议测试序列以及最终的协议测试结果存在隐含错误,并且不够完备。

发明内容
鉴于上述现有技术所存在的问题,本发明的目的是提供一种基于模型转换的协议正确性验证和测试方法,从而实现在协议开发的前期完成对协议本身的逻辑正确性进行校验的过程,为后续的协议测试提供高层次的完备性保证。
本发明的目的是通过以下技术方案实现的本发明提供了一种基于模型转换的协议正确性验证和测试方法,包括A、利用至少两种形式化模型对协议进行形式化描述;B、分别将所述至少两种形式化模型转换成同一种的形式化模型;C、通过比较所述同一种的形式化模型间的差异获得验证后的协议形式化模型,并基于所述的验证后的协议形式化模型进行所述协议的正确性验证及测试。
所述的步骤A进一步包括利用至少两种形式化模型分别对待验证和测试的协议的数据部分中的动态控制部分进行形式化描述。
所述的至少两种形式化模型可以为有限状态机模型或Petri网模型。
所述的步骤B进一步包括在所述至少两种形式化模型中,选择一种形式化模型作为基准形式化模型,利用基于转换等价性的模型转换算法,将至少一种其它种类的形式化模型转换成与所述基准形式化模型种类相同的形式化模型。
所述的步骤C进一步包括C1、通过比较同一种的形式化模型间的差异,对协议的形式化模型进行正确性验证;C2、利用所述经过正确性验证的协议的形式化模型,开发针对具体协议的测试系统工具;C3、利用所述测试系统工具对具体协议进行测试。
所述的步骤C1进一步包括C11、比较经转换处理获得的形式化模型与所述基准形式化模型之间的差异,定位并且纠正协议的形式化模型中的逻辑错误。
所述的步骤C11还包括分析经转换处理获得的形式化模型中所出现的错误,定位并且纠正协议的形式化模型中的逻辑错误。
所述的步骤C2进一步包括C21、利用经过正确性验证的协议的形式化模型,生成协议的测试序列集合;C22、将所述生成的测试序列集合和经过正确性验证的协议的形式化模型结合在一起,封装成协议的测试系统工具。
所述的测试序列集合包括协议的动态控制部分测试序列和协议的静态部分测试序列。
所述的步骤C21进一步包括利用唯一输入/输出序列方法生成协议的动态控制部分测试序列,利用人工方法生成协议的静态部分测试序列。
由上述本发明提供的技术方案可以看出,本发明和现有技术相比不是基于单一的形式化模型,而是利用各种形式化模型之间存在转换等价性,将针对同一个通讯协议的各种形式化模型转换为同一种的形式化模型,通过比较转换后的模型间的差异,定位并纠正协议形式化描述中存在的逻辑错误,达到对协议实行正确性验证的目的。本发明所述方法避免了在协议开发的后期检查协议中所有的逻辑错误的艰苦历程,可以保证对协议的动态部分和静态部分都可以生成完备的测试序列,进而开发出针对具体协议的测试系统工具,为后续的协议测试提供了高层次的完备性保证,为能够得到理想的协议测试结果打下了坚实的基础。


图1为本发明所述方法的具体处理流程图;图2为SDH协议的呼叫帧过程的有限状态机模型;图3为SDH协议的呼叫帧过程的Petri网模型;图4为植入错误的SDH协议的呼叫帧过程的有限状态机模型;图5为植入错误的SDH协议的呼叫帧过程的有限状态机模型转换成Petri网模型后形成的E-Petri网模型。
具体实施例方式
本发明提供了一种基于模型转换的协议正确性验证和测试方法。本发明的核心为因为采用不同的形式化模型描述出来的协议出现相同错误的概率很小,所以,将针对同一个通讯协议的各种形式化模型转换为同一种的形式化模型,然后将转换后的模型进行相互比较,就可以定位并纠正协议形式化描述中存在的逻辑错误。从而实现对协议的正确性验证。
下面结合附图来详细描述本发明所述方法,本发明所述方法的具体处理流程图如图1所示,包括如下步骤步骤1-1、利用至少两种典型的形式化模型对待验证、测试的通信协议进行形式化描述。
首先从待验证、测试的通信协议的数据部分中提取报文格式,然后至少要用两种现有的典型的形式化模型对提取的报文格式中的动态控制部分进行描述,不同的形式化模型可以看作是对同一个协议进行形式化描述的不同版本。
比如我们选择待验证的协议为对象协议SDH(链路接入协议)协议,选择用有限状态机模型(EFSMExtended Finite State Machine)和Petri网(PNPetri Net)模型两种形式化模型对SDH协议进行形式化描述
分析有限状态机模型的定义以及建模方法,用此模型描述SDH协议呼叫帧过程的数据部分中的动态控制部分,得到针对SDH协议的呼叫帧过程的EFSM(有限状态机)模型,如图2所示。
图2所示模型描述了SDH协议的呼叫帧过程的动态控制部分的状态以及相应的变迁,图2中椭圆形符号为状态符号,椭圆形内的字表示状态的意义,带箭头的直线或弧线表示状态的变迁,而直线或弧线旁边的字代表输入事件;分析Petri网定义以及建模方法,用此模型描述SDH协议呼叫帧过程的数据部分中的动态控制部分,得到针对SDH协议呼叫帧过程的Petri网模型,如图3所示。
图3所示模型描述了SDH协议呼叫帧过程的动态控制部分的状态、变迁、以及在状态变迁过程中系统资源的流动与分配情况。图3中椭圆形符号代表位置,图3中共有5个位置,分别为P1、P2、P3、P4、P5,短的线段代表变迁,图3中共有14个变迁,分别为T1-T14,短的线段旁边的字表示触发变迁的输入事件,带箭头的直线或弧线表示一个变迁的输入位置和输出位置有哪些,椭圆形圆圈中的黑点表示标记。
步骤1-2、在步骤1-1所选择的至少两种形式化模型中,选择一种形式化模型作为基准形式化模型,将至少一种其它种类的形式化模型转换成与基准形式化模型种类相同的形式化模型。
由于形式化模型都是基于严格的数学模型而产生的,各种不同的形式化模型之间存在转换等价性,具体含义是在一定的条件下,一种模型可以转换成另外一种模型,转换后的模型与原来的模型等价。因此,可以利用基于模型等价性的模型转换算法,将不同的形式化模型转换成为同一种的形式化模型。
具体的转换过程为将原模型的形式化描述(数学描述),采用转换算法,得到新模型的形式化描述(数学描述),根据新模型的形式化描述,建立转换后的新的形式化模型。
因此,我们可以在步骤1-1所选择的至少两种形式化模型中,选择一种形式化模型作为基准形式化模型,利用基于形式化模型之间转换等价性的模型转换算法,将步骤1-1所选择的至少两种形式化模型中的至少一种其它种类的形式化模型转换成与基准形式化模型种类相同的形式化模型。
参照步骤1-1的举例我们以图3所示的SDH协议呼叫帧过程的Petri模型为基准形式化模型,为了演示如何利用本发明所述方法对SDH协议的形式化模型进行正确性验证,本示例将在SDH协议呼叫帧过程的EFSM模型中植入一些错误,然后将植入错误的EFSM模型转换成Petri网模型,得到SDH协议呼叫帧过程的E-Petri网模型,通过比较E-Petri网模型与图3所示的基准形式化模型之间的差异,看看能不能检测到植入的错误,实现对SDH协议进行正确性验证的功能。
我们给图2所示的SDH接收帧过程的EFSM模型植入一个不可达状态S5,并在S2与S3状态之间植入一个未定义的循环,构成活锁,如图4所示,在连接状态S4和状态S5之间的带箭头的直线旁边没有代表输入事件的字,即没有事件可以触发状态S4到状态S5的变迁,所以状态S5为不可达状态,在S2与S3状态之间新加了两个变迁,触发两个变迁的输入事件分别为R1和R2,并且事件R1和事件R2之间构成死循环。
由于形式化模型之间具有转换等价性,EFSM和Petri之间可以进行等价变换,它们之间的对应关系如下1、状态S->位置P;2、变迁T->变迁T;3、输入集合I->输入集合I;4、输出集合->输出集合;
5、变量V->旗标M。
我们可以使用下面的模型转换算法进行从EFSM(扩展有限状态机,Extend Finite State Machine)到Petri(配特里)的转换Algorithm1EFSM->Petri //算法1从EFSM转换为Petrii=0;//变量i设置为0while(si∈S is not marked){//当状态集合S中的元素Si没有被标记Mark si; //标记SiRename from si to pi and insert pi to set P;//将Si改名为pi,将pi放入集合PFor each tk∈T related to si//对于变迁集合T中与Si相关联的元素tkCheck ii∈I and oi∈O related to tk //检查输入集合I中与tk相关联的元素ii//以及输出集合O中与tk相关联的元素oo//如果ii不在Petir的输入集合,并且oo不在Petir的输出集合if((ii not in the Petri input set)&&(oi not in the Petri output set)){Puts ii in input set of the Petri nets //将ii加入Petir的输入集合Puts oi in output set of the Petri nets //将oo加入Petir的输入集合}M=Calc_Market(V);//使用Calc_Market函数生成旗标集合Mi++; //变量i加1}在上面的算法中,使用Calc_Market函数生成旗标集合M。这个函数针对不同的状态机有不同的计算方法,基本算法根据EFSM的状态条件给出相应的Petri网中变迁需要的旗标数目。
将图4所示的植入错误后的SDH接收帧过程的EFSM模型通过上面所说的转换算法进行转换后,得到植入错误后的SDH接收帧过程的E-Petri网模型,如图5所示。
步骤1-3、比较经转换处理获得的形式化模型与基准形式化模型之间的差异对协议的形式化模型进行验证。
因为采用不同的形式化模型描述出来的协议出现相同错误的概率很小。并且形式化模型都比较直观,因此,通过将转换后的形式化模型进行相互比较,就可以定位出并纠正协议形式化模型中存在的逻辑错误,比如存在不可达状态、活锁现象等等,从而达到对待验证、测试的通信协议的形式化模型进行正确性验证的目的,验证的结果可以使协议的形式化模型更加完善。
因此,我们可以比较经转换处理获得的形式化模型与图3所示的基准形式化模型之间的差异,且分析经转换处理获得的形式化模型中所出现的错误,定位并且纠正协议的形式化模型中的逻辑错误。
参照步骤1-1的举例以图3所示的SDH协议呼叫帧过程的Petri模型为基准形式化模型,将图5所示的E-Petri网模型与该基准形式化模型进行比较,可以看出图5比图3多了一个状态S5,并且在指向状态S5的变迁t15旁边没有代表触发事件的文字,然后再对照图4,就可以检测出在图4所示的形式化模型中存在P5这个不可达状态。
在图5所示的形式化模型中发起点火(firing)后,可以发现图5中P2与P3状态中的旗标数目不断增加的现象,锁定这两个状态,通过分析它们旗标变化的规律,发现在输入事件的R1、R2之间构成死循环,然后再对照图4,就可以检测在图4所示的形式化模型中P2与P3状态之间存在活锁。
因此,我们可以对图4所示的植入错误后的SDH接收帧过程的EFSM模型进行正确性验证。
步骤1-4、利用验证后的形式化模型生成测试序列集合。
测试序列是在进行正确性验证后的协议模型的基础上生成的,测试的项目包括测试协议的动态控制部分和测试协议的静态部分。协议的动态控制部分测试序列是通过对验证后的协议的形式化模型,利用唯一输入输出方法UIO(Unique In Out)方法自动生成的;协议的静态部分测试序列是由人工生成的。利用生成的动态控制部分测试序列和静态部分测试序列可以得到完备的测试用例集合。
参照步骤1-1的举例利用经过步骤1-3验证的PN模型或EFSM模型,就可以生成出针对待验证、测试的通信协议的动态控制部分测试序列和静态部分测试序列,进而得到针对该通讯协议的测试用例集合。
步骤1-5、将经过正确性验证后的形式化模型和生成的测试序列集合封装成协议的测试系统工具。
我们可以将经过正确性验证后的针对某一待验证、测试的通信协议的形式化模型,和根据该形式化模型而生成的测试用例集合结合在一起,封装成针对某一待验证、测试的通信协议的测试系统工具。
参照步骤1-1的举例可以将经过步骤1-3验证的PN模型或EFSM模型,和步骤1-4生成的测试用例集合结合在一起,封装成针对待验证、测试的通信协议的测试系统工具。
步骤1-6、利用测试系统工具对通讯协议进行具体的测试。
我们可以利用步骤1-5得到的针对某一待验证、测试的通信协议的测试系统工具对该协议的具体测试点进行测试。
至此本发明所述方法中的具体处理流程结束。
综上所述,利用本发明所述方法,不但可以实现对协议的正确性验证,而且可以生成完备的协议的测试用例集合,可以开发出协议的测试系统工具,最终可以得到理想的协议测试结果。
以上所述,仅为本发明较佳的具体实施方式
,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应该以权利要求书的保护范围为准。
权利要求
1.一种基于模型转换的协议正确性验证和测试方法,其特征在于,包括A、利用至少两种形式化模型对协议进行形式化描述;B、分别将所述至少两种形式化模型转换成同一种的形式化模型;C、通过比较所述同一种的形式化模型间的差异获得验证后的协议形式化模型,并基于所述的验证后的协议形式化模型进行所述协议的正确性验证及测试。
2.根据权利要求1所述基于模型转换的协议正确性验证和测试方法,其特征在于,所述的步骤A进一步包括利用至少两种形式化模型分别对待验证和测试的协议的数据部分中的动态控制部分进行形式化描述。
3.根据权利要求1或2所述基于模型转换的协议正确性验证和测试方法,其特征在于,所述的至少两种形式化模型可以为有限状态机模型或Petri网模型。
4.根据权利要求1所述基于模型转换的协议正确性验证和测试方法,其特征在于,所述的步骤B进一步包括在所述至少两种形式化模型中,选择一种形式化模型作为基准形式化模型,利用基于转换等价性的模型转换算法,将至少一种其它种类的形式化模型转换成与所述基准形式化模型种类相同的形式化模型。
5.根据权利要求1、2或4所述基于模型转换的协议正确性验证和测试方法,其特征在于,所述的步骤C进一步包括C1、通过比较同一种的形式化模型间的差异,对协议的形式化模型进行正确性验证;C2、利用所述经过正确性验证的协议的形式化模型,开发针对具体协议的测试系统工具;C3、利用所述测试系统工具对具体协议进行测试。
6.根据权利要求5所述基于模型转换的协议正确性验证和测试方法,其特征在于,所述的步骤C1进一步包括C11、比较经转换处理获得的形式化模型与所述基准形式化模型之间的差异,定位并且纠正协议的形式化模型中的逻辑错误。
7.根据权利要求6所述基于模型转换的协议正确性验证和测试方法,其特征在于,所述的步骤C11还包括分析经转换处理获得的形式化模型中所出现的错误,定位并且纠正协议的形式化模型中的逻辑错误。
8.根据权利要求5所述基于模型转换的协议正确性验证和测试方法,其特征在于,所述的步骤C2进一步包括C21、利用经过正确性验证的协议的形式化模型,生成协议的测试序列集合;C22、将所述生成的测试序列集合和经过正确性验证的协议的形式化模型结合在一起,封装成协议的测试系统工具。
9.根据权利要求8所述基于模型转换的协议正确性验证和测试方法,其特征在于,所述的测试序列集合包括协议的动态控制部分测试序列和协议的静态部分测试序列。
10.根据权利要求8或9所述基于模型转换的协议正确性验证和测试方法,其特征在于,所述的步骤C21进一步包括利用唯一输入/输出序列方法生成协议的动态控制部分测试序列,利用人工方法生成协议的静态部分测试序列。
全文摘要
本发明涉及一种基于模型转换的协议正确性验证和测试方法,该方法主要包括利用至少两种形式化模型对协议进行形式化描述;分别将所述至少两种形式化模型转换成同一种的形式化模型;通过比较所述同一种的形式化模型间的差异获得验证后的协议形式化模型,并基于所述的验证后的协议形式化模型进行所述协议的正确性验证及测试。利用本发明所述方法不但可以实现在协议开发的前期对协议进行正确性认证,而且可以开发出针对具体协议的测试系统工具,为后续的协议测试提供了高层次的完备性保证。
文档编号H04L29/06GK1812347SQ20051000261
公开日2006年8月2日 申请日期2005年1月24日 优先权日2005年1月24日
发明者屈玉贵, 江涛, 赵宝华, 李姝 , 张利琰, 周颢 申请人:华为技术有限公司, 中国科学技术大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1