论文部分内容阅读
随着计算机网络的发展,网络协议在网络通信中发挥着越来越重要的作用。协议是网络的灵魂,通信系统能否正常运转,网络产品能否互通互联取决于网络协议是否完善和是否实现正确。然而,用于网络通信的协议标准基本上都是用人们易于交流的自然语言表述的,以至于不同厂商对协议的理解可能会是不同的,或者协议本身就存在问题。所以网络协议的测试就至关重要,尤其是一致性测试。随着协议日益复杂化,手工测试也要付出越来越大的代价,而且有些问题也不容易被发现。协议测试并不同于传统意义上的软件测试,它有它的特点,比如分布性和较强的交互协作,正是这些特性使得协议测试更加困难:他们造成测试任务部署困难,并且对测试过程的控制协调会很复杂。加之许多通信软件都是由多个协议组成的协议族共同完成的。不同协议具有各自的主要功能,他们之间互相协调配合共同合作完成整个系统功能。这样就使得被测系统的分布性和较强的交互协作的特征更加明显。所以测试协议族需要一个好的测试策略。基于模型的测试可以通过模型自动生成测试用例,大大提高测试的自动化,并且往往能发现其他测试技术难以发现的故障,保证了协议质量。本文针对网络协议的特点和协议一致性测试原理,通过分析基于模型的测试原理,将基于模型的测试应用于协议一致性测试。通过和传统的测试方法相比较,研究如何为协议设计模型,并通过执行模型生成的测试用例来验证基于模型的测试方法的优越性和适用性。本文主要研究内容包括:1.分析网络协议的特点和协议一致性测试原理,研究现有的协议一致性测试方法,和基于模型的测试方法以及相关工具Spec Explorer。Spec Explorer是微软公司推出的支持基于模型的测试工具。2.本文提出一种对协议族进行两级分层的测试策略和建模方法。通过两级分层的测试策略,高层的测试主要关注不同协议协作的衔接过程,底层的测试关注每个协议完成具体操作的细节。这样的测试结构清晰、层次分明、测试重点突出、详略得当。3.将基于模型的测试应用于微软的分支缓存BranchCache协议族的一致性测试。对BranchCache的协议进行分析然后设计模型并生成测试用例最后执行测试用例并获得测试结果。4.分析总结基于模型的协议测试相较于传统的测试方法的优缺点,总结了基于模型的测试方法在大型复杂协议测试的卓越优势。随着软件行业和网络的发展,协议规模越来越大,协议结构也更加复杂,基于模型的测试将会得到更加广泛的研究和应用。