一致性测试是协议
测试的一个重要方面,是性能测试、互操作性测试和
健壮性测试的基础,是协议开发人员首要关心的问题。
背景介绍
随着通信技术的快速发展,网络之间的互联互通以及通信业务越来越依赖通信协议的发展。可以说,通信系统的正常运行和通信业务的顺利开展,首要就是取决于协议软件是否满足协议规范的要求,所以必须进行专门的协议测试加以保证。
协议测试技术的目的就是保证通信协议正确实现以及确保不同的通信设备之间可以正确互联。在通信测试中,一致性测试仅仅是一种黑盒测试,它并不检查协议代码,而是按照协议标准,通过控制观察被测协议实现的外部行为对其进行评价。
简介
一致性测试主要是确定被测实现是否与标准规定一致。通常利用一组测试案例序列,在一定的网络环境下,对被测实现进行黑盒测试,通过比较IUT的实际输出与预期输出的异同. 判定IUT是否与协议描述相一致。
测试流程
根据ITU-T X.290系列ISO/IEC-9646定义的一致性测试方法,测试标准包含三部分:抽象测试集(ATS)、协议实现一致性说明(
PICS)和协议实施附加信息(PIXIT)。可执行测试集(ETS)在以上三部分的基础上生成。 ATS规定某一标准协议的测试目的、测试内容和测试步骤;PICS说明实施的要求、能力及选项实现的情况;;PIXIT提供测试必须的协议参数。其测试步骤如下:
首先是静态测试:测试仪读取PICS/PIXIT文件文件并根据协议标准进行静态测试,检查IUT参数说明是否符合标准。
其次是动态测试:测试仪根据PICS/PIXIT文件和ATS生成ETS,然后执行ETS对IUT进行激励/ 响应测试。具体采用的测试类型包括:本地测试方式、分布式测试方式、协同测试方式和远程测试方式。
最后是测试报告:对测试执行产生的测试记录文件进行分析, 按照测试报告描述规格生成一致性测试报告。
协议一致性测试报告记录了所有测试案例的测试结果: 成功(PASS)、失败(FAIL)、不确定(INCONCLUSIVE)。
一致性测试与互操作测试优缺点及关系
一致性测试和互操作测试都是测试协议实现重要而有效的方法,在某种程度上可以相互验证,但二者并不是完全一样。首先, 测试目的不同,一致性测试是确定被测实现是否与标准规定一致,而互操作测试是确定被测设备是否完成要求的功能;其次,测试对象不同,一致性测试的对象是设备或者系统,而互操作测试的对象是设备;再次,测试级别不同,一致性测试是在协议级,而互操作测试是在功能级;最后,测试效果不同,一致性测试适用所有被测实现,而互操作测试主要适用于被测设备之间。
实际测试中,一致性测试通过也并不能保证互操作测试一定可以通过。最根本的原因是一致性测试使用标准规定的绝对完整和正确是不现实的,其中也包含各个标准制定人/ 制定单位理解不同与利益妥协的问题。具体表现如下:
1、标准方面:标准中错误与含糊内容; 标准本身的兼容性问题。
2、实施方面:人为错误( 如编程错误) 对于通信标准不同理解;标准本身允许不同选项。
3、技术方面:通信网络使用不同流量策略; 设备兼容性问题; 设备配置问题。
当然,互操作测试仅仅可以证实被测系统中不同设备之间的互操作能力,而不能证实设备是否符合标准,因为互操作测试根本就不关心协议细节。故此,互操作测试不可能替代一致性测试。其实,一致性测试和互操作测试是互为验证、互为补充的关系,只有把两者合理地结合才能完成完整的协议测试。