论文部分内容阅读
网络协议是网络中互相通信的实体所遵守的规范,开发人员对于协议规范文本的理解可能不同,为了验证协议实现的行为是否符合协议规范描述及开发需求,在投入网络运行前必须进行协议一致性测试。目前的协议一致性测试主要针对的是集中式的测试场景,即测试系统与被测实现“一对一”的交互模式。但随着技术的进步,云计算、物联网的发展对于协议测试提出了分布式的需求。部分协议规定的一次交互可能发生在多于两个实体之间。在这样的测试场景下,如果只有单一的测试器,则测试器可能需要担当多个实体角色,这样的测试不能完整模拟真实场景架构,无法观察到全部的协议数据交互情况。针对越来越复杂的测试场景,分布式场景下的协议测试研究非常重要。目前的分布式测试研究多集中于理论研究或特定协议的测试系统开发,通用性和实用性不够好。TTCN-3是ETSI维护的标准化协议测试语言,ETSI同时定义了TTCN-3测试框架。TTCN-3以测试组件的形式支持并发测试,这也为分布式测试提供了可行性支持。本文提出了一种基于TTCN-3分布式测试系统的架构,这种架构以C-S模式为基础,设计了“主机-从机”形式的分布式模块,并对实体功能及内部子模块进行了详细的设计。同时,本文还研究了分布式测试系统的协调与调度机制,用于测试系统内部控制消息的通信。在设计的基础上,本文实现了一个基于TTCN-3的分布式测试系统,系统使用C++Qt框架开发,对于主机和从机这两个分布式模块中的实体进行了实现。在分布式模块设计的基础上,本文还针对传统协议DNS以及新型基于文本的协议XMPP,分别开发了适用于分布式场景的测试用例,并针对协议的消息格式为以上两种协议开发了编解码器和适配器。其中XMPP解码器对于XML流的生成与处理亦可用于其他类似的文本协议,具有通用性。本文的工作对于分布式测试系统的研究弥补了相关领域的研究,提出的分布式测试方法具有协议独立性,开发的系统具有可行性与通用性,可用于不同协议的分布式测试中,具有应用价值。