含有复杂计算过程协议的一致性测试框架及其方法

文档序号:6396075阅读:126来源:国知局
专利名称:含有复杂计算过程协议的一致性测试框架及其方法
技术领域
本发明涉及计算过程协议工程技术领域,特别是一种含有复杂计算过程协议的一致性测试框架及其方法,其适用对象是被测协议中含有复杂的计算过程。
背景技术
协议一致性测试是协议工程学的一个重要分支,其目的是通过实验的方法发现被测协议实现(Implementation Under Test,IUT)在功能和逻辑方面的错误。研究协议一致性测试的原因在于协议标准目前基本上是使用自然语言描述的,实现者对于协议标准的不同理解会导致不同的协议实现,有时甚至会是错误的实现,因此需要一种有效的方法来对协议实现进行验证和判别。对于测试人员而言,被测协议实现的内部逻辑结构是不见的,因此一致性测试是一种黑盒测试。
国际标准ISO/IEC9646定义了一致性测试的方法和框架,用于测试一个声称实现了某一OSI协议的产品与其协议标准的一致性,该标准主要是面向测试实践,用于指导测试实践。该标准推荐了一种用于描述抽象测试集的树表结合表示法(the tree and tabular combined notation,下面一律使用TTCN),同时给出了通用的一致性测试框架,即采用TTCN描述抽象测试集,由执行系统(一般是TTCN的执行器,采用解释执行或者编译执行的方式)按照抽象测试集规定的行为对特定协议实现进行测试。这种标准测试框架的主要特征可以从两个方面进行说明·测试集和执行系统完全独立测试集采用TTCN描述,执行系统是TTCN的执行器,任何用TTCN描述的抽象测试集都可以输入到执行系统中执行;测试集对执行系统完全透明;·与测试有关的所有内容都采用TTCN进行描述在这种测试框架中,与测试有关的所有内容包括测试数据、计算过程、测试行为、测试判定等完全采用TTCN描述,抽象测试集包容一切;一致性测试是一个复杂的过程,被测协议的类型多种多样,应该根据被测协议的具体特点和测试需求选用适当的测试技术,这样才能够花费最少的测试代价、达到最高的测试效率。ISO/IEC9646中定义的这种测试框架没有考虑被测协议的特点,在兼顾通用性的同时不可避免地会在某些特定协议的测试中无能为力,在测试含有复杂计算过程的协议时就会遇到这个问题。
一致性测试是通过执行系统与被测系统之间的通信完成的,在这个过程中,执行系统需要向被测系统发送合适的测试数据包,同时对被测系统返回的数据包进行判定,在此基础上,得出被测实现是否一致性的结论。执行系统虽然不是被测协议的一个完整实现,但它应该能够模拟被测协议的绝大部分行为,特别是应该能够构造出被测协议中所有可能的数据包,包括正确数据包和错误数据包。对于含有复杂计算过程的被测协议来说,构造测试数据包和对接收到的数据包进行判定都需要进行很复杂的计算。TTCN中定义了支持计算的语法格式,能够满足简单计算的需求,但是对于特别复杂的计算过程(例如采用很复杂的加密算法对整个原始数据包进行加密等操作)则无能为力,因此标准测试框架不能够对含有复杂计算过程的协议进行高效率的测试。

发明内容
本发明的目的在于提供一种含有复杂计算过程协议的一致性测试框架及其方法。
分析协议特点,明确测试需求是开展有效测试活动的前提。测试描述法和执行系统是一致性测试中的两大要素,在标准测试框架中,测试集与执行系统完全独立,与测试有关的所有信息(包括计算过程),都用测试描述法进行描述,测试描述法(TTCN)及执行系统是通用的,与被测协议的特点无关(见图1)。一般来说,文本格式的测试描述法很难描述复杂的计算过程,如果测试描述法不能够描述复杂的计算过程,则这种测试框架不能够满足含有复杂计算过程协议的测试需求。
打破标准的测试集和执行系统完全独立的测试框架,在此提出测试描述法和执行系统互动的方式对含有复杂计算过程的协议进行一致性测试。测试描述法一般是文本或者脚本语言,描述复杂计算过程较为困难;执行系统一般采用高级编程语言实现,而高级编程语言可以实现任意复杂的计算过程。把这两者的特点结合起来,由测试描述法指定计算属性,而把计算过程内嵌到执行系统中进行实现,则能够满足含有复杂计算过程协议的测试需求(见图2)。由于具体协议中可能用到的计算过程都是有限的,采用测试描述法和执行系统互动的方式实现计算功能,测试描述法以文本方式给出有关的参数和算法等计算属性,真正的计算过程内嵌到执行系统中实现。这种测试框架可以实现任意复杂的计算过程,能够满足对复杂计算的测试需求。下面把协议测试中可能遇到的计算需求分为三类,分别介绍测试描述法和执行系统互动的解决方案1.默认的计算类型这种计算类型不需要测试人员显示地进行描述,完全由执行系统在必要时自动调用相应的计算模块完成。对被测协议来说,在特定的可以静态确定的环境下,总是应该调用这种计算过程。最常见的这种计算类型的代表为报头中校验和字段的计算,对某种报头来说,校验和的计算方法是完全确定的、校验和的填充位置也是完全确定的,如果报头的其它字段已经赋值,则校验和就可以唯一确定。在设计测试描述法时,规定报头的描述格式,可以预留校验和字段的编辑接口(用于测试被测协议实现对错误校验和的处理),也可以不预留而由执行系统自动计算并填充。执行系统中实现了对校验和字段的计算过程以及调用格式,在执行系统读取报头描述时能够自动调用计算过程,从而得到最终完整的二进制流格式的测试数据;2.可静态确定的计算类型这种计算类型需要测试人员静态地进行指定。对被测协议来说,在同等条件下计算某些特定字段的值可能存在不止一种算法或计算过程,那么就需要在执行系统中实现所有可能的计算过程。在对该协议进行一致性测试的过程中,在构建测试数据包或者对被测系统返回的数据进行判定时,可以预先静态确定采用何种计算过程。如果在某一条件下存在多种计算过程,在设计测试描述法时,可以预留指定计算过程的编辑接口。在设计测试集时,采用这个编辑接口指定计算过程,执行系统会据此调用适当的计算过程。举例来说,互联网安全协议IPSec是互联网工程任务组IETF专门为保护网络层通信而设计的安全协议,其中定义了身份认证报头AH,身份认证报头AH的格式是固定的,但计算其中验证字段采用的算法是不固定的(任意符合特定输入输出条件的哈希算法都是可以的,但目前较常用的包括HMAC-MD5-96、HMAC-SHA1-96等)。在对IPSec协议进行测试时,在执行系统中实现所有的认证算法,在测试描述法中定义的AH报头描述中除了所有字段的编辑接口外,再加上一个指定认证算法的字段,以文本名字的方式指定该报头中计算验证字段采用的算法;在对接受到的数据进行判定时,指定验证算法的方式与之类似。在发送/接收数据时,执行系统会按照指定信息调用计算模块实现计算过程;3.动态确定的计算类型这种计算类型比较特殊,其特征是与计算有关的参数、甚至计算过程都不能事先完全确定,需要在测试执行过程中根据中间执行结果才能确定,对存在这种计算类型的协议进行一致性测试十分困难。协议测试中对计算能力的需求通过三个属性进行描述计算过程(即算法)、输入参数、输出值,一旦前两个属性确定,则输出值唯一确定。对于执行中才能确定的计算类型,计算过程和输入参数都不能事先确定,应该根据动态的执行情况才能确定。可以采用两种方式实现这种计算类型,其共同点在于真正的计算过程由执行系统实现,差别在于确定计算属性(计算过程和输入参数)的过程是采用测试描述法描述、还是内嵌到执行系统中·测试描述法确定计算属性在设计测试集时,采用测试描述法对中间的执行情况进行判定,根据不同的分支情况分别确定不同的计算属性、调用不同的计算过程;这种方式要求测试描述法具备较强的分支描述能力,设计测试集时需要考虑全面,测试集较为庞大;·执行系统确定计算属性在设计测试集时,把与确定计算属性有关的信息都定义为测试集的全局参数,根据执行情况对这些参数赋值,把根据这些全局参数确定计算属性的任务放到执行系统中实现;其优点在于测试集中只对能够描述中间执行结果的参数赋值,
对测时描述法的要求较为简单,简化了测试集的设计;缺点在于在灵活性上不如上一种方式;这种测试框架的主要特点在于打破了标准测试框架中测试集与执行系统完全独立的测试结构,而是采用测试描述法和执行系统互动的方式实现对含有复杂计算过程协议的一致性测试。其要点在于不是完全采用测试描述法描述计算过程,而是把复杂计算过程的实现内嵌到执行系统中,测试集中只需要采用测试描述法在适当的地方指定计算属性即可。这种测试框架的实现需要根据被测协议特点设计测试描述法,并进而实现执行系统。在实际的一致性测试中,关于测试描述法的设计,可以采用两种途径实现1.完全从头设计全新的测试描述法当前常用的是设计文本方式的测试描述法,根据被测协议特点,完全采用文本方式描述测试集;2.在现有的测试描述法的基础上,设计新的测试描述法TTCN是国际标准推荐的测试描述法,但它实在是太庞大了,实现TTCN的执行器是一项相当复杂的工作,对某种具体协议进行一致性测试没必要采用完整的TTCN;根据协议特点,去掉TTCN中一些不需要的部分、补充必要的部分,形成新的测试描述法,这种方式是当前最常用的设计测试描述法的方法;在这种测试框架结构中,测试描述法与被测协议息息相关,而执行系统是测试描述法的解释/编译执行器;在设计完成测试描述法的基础上,需要实现支持该描述法的执行系统,其中实现了被测协议中可能用到的所有的计算过程。


图1描述了标准测试框架实现计算功能的方式。
图2描述了本发明提出的测试框架实现计算功能的方式。
图3给出了采用本发明对含有复杂计算过程的协议进行一致性测试的流程图。
具体实施例方式
图1描述了标准测试框架,在这种测试框架中,完全采用测试描述法描述抽象测试集;完整的计算过程包含在测试集中,完全采用测试描述法描述计算过程。这种测试框架结构的主要特征是测试集和执行系统完全独立,测试集描述语言的计算描述能力有限,很难用于对含有复杂计算过程协议的测试。
图2描述了本发明提出的测试框架,在这种测试框架中,计算过程内嵌到执行系统中实现;测试集中仅采用测试描述法指定计算属性,真正的计算过程由执行系统实现。这种测试框架的特征在于测试集不再与执行系统分离、而是相互配合来实现复杂的计算过程。
图3描述了采用本发明对含有复杂计算过程的协议进行一致性测试的流程图。共包括以下步骤·步骤S1,分析协议标准,按照本发明所指出的方式对被测协议中的计算过程进行分类;·步骤S2,根据协议标准、结合协议中的计算过程,设计测试描述法;·步骤S3,实现与被测协议相关的计算模块;·步骤S4,采用编译/解释执行的方式,实现针对测试描述法的测试执行系统,执行系统中需要引进计算模块;·步骤S5,根据协议标准,设计测试序列;采用测试描述法描述测试序列,得到抽象测试集;·步骤S6,把抽象测试集加载到测试执行系统中,通过与具体被测协议实现的交互进行测试;·步骤S7,生成针对具体被测协议实现的测试报告。
说明测试框架(Testing Framework)是协议一致性测试领域的标准术语,本发明给出了一种新的测试框架,可用于对含有复杂计算过程的协议进行一致性测试。
权利要求
1.一种用于测试含有复杂计算过程协议的一致性测试框架,其特征在于,采用测试描述法和执行系统互动的方式实现计算功能,而不像标准测试框架中测试集和执行系统独立、完全采用测试描述法实现计算功能。
2.根据权利要求1所述的用于测试含有复杂计算过程协议的一致性测试框架,其特征在于,由测试描述法指定算法名称、输入参数等计算属性,把具体的计算过程内嵌到执行系统中实现,采用这种方式可以实现任意复杂的计算过程。
3.根据权利要求1所述的用于测试含有复杂计算过程协议的一致性测试框架,其特征在于,把协议测试中可能遇到的计算需求分为三种类型,给出了采用这种测试框架对这三种计算类型进行测试的实现方式。
4.根据权利要求3所述的用于测试含有复杂计算过程协议的一致性测试框架,其特征在于,三种类型是包括默认的计算类型、可静态确定的计算类型、动态确定的计算类型。
5.一种用于测试含有复杂计算过程协议的一致性测试的方法,其步骤如下步骤S1,分析协议标准,按照本发明所指出的方式对被测协议中的计算过程进行分类;步骤S2,根据协议标准、结合协议中的计算过程,设计测试描述法;步骤S3,实现与被测协议相关的计算模块;步骤S4,采用编译/解释执行的方式,实现针对测试描述法的测试执行系统,执行系统中需要引进计算模块;步骤S5,根据协议标准,设计测试序列;采用测试描述法描述测试序列,得到抽象测试集;步骤S6,把抽象测试集加载到测试执行系统中,通过与具体被测协议实现的交互进行测试;步骤S7,生成针对具体被测协议实现的测试报告。
全文摘要
本发明涉及计算过程协议工程技术领域,特别是一种含有复杂计算过程协议的一致性测试框架及其方法,打破了标准测试框架中测试集和执行系统独立、完全采用测试描述法实现计算功能的方式,采用测试描述法和执行系统互动的方式实现计算功能,由测试描述法指定算法名称、输入参数等计算属性,把计算过程的实现内嵌到执行系统中。把协议测试中可能遇到的计算需求分为三种类型,包括默认的计算类型、可静态确定的计算类型、动态确定的计算类型,分别给出了在这种测试框架下针对这三种计算类型的测试解决方案。这种测试框架可以实现任意复杂的计算过程,能够满足对含有复杂计算过程协议的测试需求。
文档编号G06F11/00GK1564135SQ20041003151
公开日2005年1月12日 申请日期2004年3月19日 优先权日2004年3月19日
发明者张玉军, 李忠诚 申请人:中国科学院计算技术研究所
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1