资源描述
研研 究究 生生 学学 位位 论论 文文路由器双端口测试管理器研究与开发年 级 二二 级 姓 名 申请学位级别 硕 士 专 业 计算机应用技术 指 导 教 师 Classified Index: TP393Southwest Jiaotong UniversityMaster Degree ThesisRESEARCH AND DEVELOP ON TWO-PORT TEST SYSTEM UNDER ROUTER DISTRIBUTED MULTI-PORT SYNCHRONIZED PARALLEL TEST 摘摘 要要本论文的研究背景是路由器测试技术。多端口、高速性和既支持 IPv6又支持 IPv4 是从 IPv4 向 IPv6 过渡的整个历史时期的特点。以 ISO9646 为代表的传统的路由器测试方法为单端口的“回绕测试法” (LTM)和双端口的“穿越测试法” (TTM) ,难以适应现代路由器多端口的特点;高速路由器的性能测试要求测试方法的高效性和端口间的同步协调,在 LTM 和 TTM 中都缺少相应的支持。所有这些就是四川省网络通信重点实验室(SC-Netcom Lab)提出“分布式多端口同步并行穿越测试法分布式多端口同步并行穿越测试法” (DMSP-TTM)和开发“多多端端口路由器分布式并发测试系统口路由器分布式并发测试系统”(MPR-DCTS)的直接背景。目前仍处于开发阶段的路由器“分布式多端口并发测试系统”为两层结构:上层为路由器多端口测试管理器(RMPTM Router Multi-Port Test Manager) ,下层为路由器双端口测试器(RTPT Router Two-Port Tester) 。RMPTM 处理与路由器多端口测试相关问题(为多个 RTPT 配置相关测试控制数据,同步与协调多个 RTPT 的工作。RTPT 支持 LTM 和 TTM,既可以通过局域网实现层间系统的互联,构成分布式的多端口测试系统,也可以作为独立的测试系统完成双端口测试。本文所反映的工作重点是关于 RTPT 的“双端口测试管理器” (RTPTM)的研究与开发技术。RTPTM 作为多端口测试的下层测试器管理器和独立的双端口测试管理器具有双重职责和双重功能:既是双端口测试的控制管理部件,又时对外接口与管理部件(作为独立测试系统时提供与测试操作员交互接口,作为多端口测试器的下级测试器,与多端口测试管理器接口接受其控制) 。本论文的贡献可以概括为:A、对路由器双端口测试系统管理器的各功能模块进行了分析和详细设计,完成了对路由器双端口测试系统用户界面模块和测试例执行管理模块的开发。B、设计了“测试例选择规则表” (Test-case Selection-Rules Table TSRT)以简化测试选择管理和提高测试执行效率,分别提出了单状态协议和多状态协议测试例管理的一般性方法。C、讨论了路由器双端口测试系统与上层管理器的通信问题,为今后分 布式多端口同步并行测试系统的开发奠定了初步的基础。关键词:多端口分布式同步并行穿越测试法关键词:多端口分布式同步并行穿越测试法(MDSP-TTM) ;路由器双端;路由器双端口测试系统管理器(口测试系统管理器(RTPTMRTPTM) ;测试例选择管理;测试例选择管理 AbstractAbstract The background of this dissertation is router testing techniques. The main futures of modern router in the process of migrating from IPv4 to IPv6 are characterized by multi-ports, high-speed, and complication in supporting both IPv4 and IPv6. The orthodox test methods defined in ISO 9646, i.e. LTM (Loop-back Test Method) and TTM (Transverse Test Method) are not catered for such router testing. Performance testing for high-speed routers demands high-efficiency in testing as well as synchronization among multi-ports. All these have spurred the research activities at Sichuan Network Communication Key Laboratory (SC-Netcom Lab), which are represented by the novel test method called DMSP-TTM (Distributed Multi-port Synchronized Parallel TTM) and development of MPR-DCTS (Multi-Port Router Distributed Concurrent Test System). The distributed multi-port concurrent test system under development at SC-Netcom Lab takes a two-layer structure: the upper layer formed of the Router Multi-Port Test Manager (RMPTM) and the lower layer composed of multiple “Router Two-Port Testers (RTPT)”. RTPTM deals with multi-port test issues such as RTPT configuration, test case distribution, and synchronization among multiple RTPTs. RTPT on the other hand, supports both LTM and TTM and acts either as an independent test device or the low-layer device of the MPR-DCTS.The work presented in this dissertation is focused on techniques relevant to RTPTM (Router Two-Port Test Manager). The roles of an RTPTM in the MPR-DCTS are twofold: to act as the control and management entity for an RTPT, and to provide interface functions between RTPT and RTPTM in an MPR-DCTS or between RTPT and test operator when the RTPT works independently.The main contributions of this dissertation can be summarized as:A.Provisioning of a functional framework for RTPTM through detailed analysis and design, and implementation of user interface module and test case selection module.B.To improve test efficiency via dynamic test case selection according to test case execution result, a TSRT (Test-case Selection-Rules Table) is designed and generic test selection methods for single- state and multi-states protocols are provided. C.To provide a basis for future development of MPR-DCTS, communication issues between the RTPTM and the RMPTM are also provided.Keywords: MDSP-TTM (Multi-port Distributed Parallel Transverse Test Method, RTPTM (Router Two-Port Test Manager) Test Case selection 目目 录录摘摘 要要.IAbstractAbstract.III目目 录录.V第第 1 章章 绪论绪论.11.1 论文的研究背景.11.1.1 分布式多端口同步并行测试的意义.1 1.1.2 分布式多端口同步并行测试系统.41.1.3 路由器双端口测试系统.51.2 研究分布式多端口同步并行测试系统下双端口测试管理器的意义.71.3 论文的组织结构.81.4 作者的工作与论文的贡献.8第第 2 2 章章 IPIP 路由器双端口测试系统功能模块简介路由器双端口测试系统功能模块简介.102.1 路由器双端口测试系统的简介.102.2 路由器双端口测试系统功能模块简介.112.2.1 测试支撑工具.112.2.2 编解码器和支撑层适配模块.122.2.3 双端口测试管理器.12第第 3 3 章章 路由器双端口测试系统管理器设计路由器双端口测试系统管理器设计.143.1 双端口测试系统管理器的功能模块组成.143.2 双端口测试系统管理器的功能模块设计.153.2.1 用户接口模块.153.2.2 测试管理模块.173.2.3 测试集/组/例管理模块.193.2.4 日志记录模块.193.2.4 测试结果分析与测试报告生成模块.203.2.5 与分布式多端口同步并行测试管理器接口.213.2.6 系统数据库.22第第 4 4 章章 测试例执行管理测试例执行管理.234.1 双端口测试器中的测试例执行管理.234.1.1 双端口测试器中测试例执行的过程.234.1.2 测试例执行管理的策略.244.2 单状态协议测试例的执行管理.304.2.1 IPv6 测试例的执行管理.314.2.2 单状态协议测试例执行管理的方法.344.3 多状态协议测试例的执行管理.354.3.1 RIPng 测试例的执行管理 .354.3.2 多状态协议测试例执行管理的方法.38第第 5 章章 双端口测试系统与分布式多端口同步并行路由器测试系统接口的研双端口测试系统与分布式多端口同步并行路由器测试系统接口的研究究.40 5.1 双端口测试系统与分布式多端口同步并行路由器测试系统接口的作用.405.2 双端口测试系统与分布式多端口同步并行测试系统接口的设计.415.2.1 双端口测试系统与分布式多端口同步并行路由器测试系统接口的数据格式.415.2.2 双端口测试系统与分布式多端口同步并行路由器测试系统接口的功能模块设计.42第第 6 章章 总结与展望总结与展望.446.1 小结.446.2 展望.44致致 谢谢.46参考文献参考文献.47Comment ZHX1: 参考文献请按引用的先后次序标号! 第第 1 章章 绪论绪论1.1 论文的研究背景论文的研究背景1.1.1 分布式多端口同步并行测试的分布式多端口同步并行测试的研究背景研究背景以 IPv4 为基础的 Internet 在以文本为主体的应用环境中推动了计算机网络技术的发展和计算机网络在全球的广泛应用,极大的改变了人们的工作、学习、生活。但是,随着 Internet 的迅猛发展,用户数呈指数型增长,IPv4逐渐表现出地址匮乏的缺点;随着多媒体应用日益增加,用户数据更多地呈现面向连接服务的特征,用户数据流的速率不断提高(从 Kbps 数量级提高到 Mbps 数量级);服务质量(QoS)的需求也有了很大的变化,Internet尽其所能的服务面临着新的挑战。IPv61将 IPv4 地址长度由 4 字节扩展为16 字节,解决了 IP 地址匮乏的问题44;对 IP 报头的简化,有利于提高对IP 报文的处理速度45。NGI(Next-Generation Internet)2-3就是在这一背景下产生的。在 Internet 发展的同时,网络设备特别是在网络通信中发挥巨大作用的路由器,在技术、性能等方面都得到了长足发展。在这种背景下,路由器的测试问题就重新提高到议事日程。目前对路由器的测试主要有 2个问题有待解决,一个是如何尽快把过去对以 IPv4 协议集的测试转入到对IPv6 协议集的测试上,另一个问题是如何在测试中更好的模拟路由器的真实工作环境,以达到对其性能精确的测试。 路由器实质上是由包括应用层协议在内的信令控制平面和管理平面的协议集和只有 3 层结构的用户数据传输平面构成的,因此相关的测试也必须包括分别对两个平面的协议进行 Conformance 测试。路由器或交换路由器是 Internet 中实现系统互联的多端口高速交换设备,目前主要是采用ISO9646 规定的两种抽象测试法,即对单端口的“回绕测试法” (LTM - Loop-back Test Method)或对一对端口的“穿越测试法”(TTM - Transverse Test Method) 4-5。回绕测试法和穿越测试法的示意图如图 1-1 和图 1-2 所示。对单端口的“回绕测试”或对一对端口的“穿越测试”都不能验证端口间的相互影响,特别是对于性能测试,其测试结果不能定量地界定路由器的实际工作性能,特别是难以考察系统在并发数据的实际运行环境中符合协议的程度和性能指标,因而目前的测试技术和系统所进行的测试是不完整的。现有的测试描述语言,包括欧洲的扩展描述语言 TTCN-3 在内,都没有提供一个完整的描述这类并发性的机制。为了解决这两个问题,笔者所在的四川省网络通信技术重点实验室根据过去的工作经验和研究基础,把网络协议测试技术的研究作为实验室的4 个重点研究方向之一。相关的研究工作瞄准对路由器的“分布式多端口同步并行测试技术”的研究。迄今为止,国外尚未见以此为目标的系统出现。仅就 IPv6 协议本身的测试工作来看,目前国外的现有工作大体可分为两大类:单项测试系统开发和在现有 IPv4 网络环境上建立 IPv6 的互通性(Inter-operability)测试环境(即采用在 IPv4 之上利用隧道方式(Tunneling)41进行测试) 。 建立测试环境(Test bed)的研究活动:主要研究实体有两类:IETF 和网络公司(或大型网络运营者) 。其中以 IETF 的“6 bone Project”6活 测试器测试器 1 1测试器测试器 2被测路由器被测路由器 中继功能中继功能图 11 回绕测试法示意图 测试器测试器被测路由器被测路由器 中继功能中继功能图 12 穿越测试法示意图Comment ZHX2: 这是端系统测试的实例,不是路由器测试系统。Comment ZHX3: 这也是端系统测试! 动与本项工作相关密切。该专案的基本思想是:以现有的 IPv4 网络为基础,对 IPv6 进行“隧道” (Tunneling)测试24。从 6bone 近年的研究题目看,其重点在于尽快进行系统间的互通测试,在于研究如何以 IPv4 网络平台进行 IPv6 的实验;而并未全面开展对涉及 IPv6 的两类设备(端系统和中继系统)和 3 类测试目标(一致性、互通性和性能测试)进行全面的方法研究和测试系统的建设。 开发单机测试系统的活动:这类项目把测试系统的开发作为主要研究对象。开展这类研究的单位包括研究机构和测试设备开发厂家。前者可以美国 NIST(原 NBS)为代表,该研究所的信息技术实验室(ITL)从 70年代末开始从事 OSI 协议的 conformance test 系统研究,主要采用技术为机内测试法(Local Test Method)和分布式测试法(Distributed Test Method) ,前一种方法测试功能强,但实施困难,只适合作为系统自我调试;后一种方法测试设备间的同步问题未得到解决。类似的工作还有 HP 测试仪和Compaq 的测试软件,根据相关资料重点在互通测试与性能测试。从 80 年代中期开始我国主要有下述单位涉足了网络协议测试技术研究和系统开发:中科院成都计算机应用研究所提出了“Ferry-clip Test Approach”7并以此为基础开发了针对 OSI 传送层协议的测试系统,并将该测试系统移置到微机之中。在国家 863 项目支持下,中科院计算所研制开发出一套 IPv6 协议一致性测试系统8。从所发表文章来看,中科院项目IPv6CTS 虽然能实现多端口测试,文中并未明确提出新的并行、并发测试方法。在解决同一测试系统如何实现对多个端口进行观测的问题上,该系统采用集线器作为接入路由器多端口的手段。集线器的共享特征使多端口测试实时控制较难,该文未讨论如何应用于性能测试和解决实时同步问题。从系统开发目标看,主要是否符合协议标准的测试(Conformance Test) ,而未涉及另外两类测试,即性能测试(Performance Test)和互通性测试(Interoperability Test) 。此外,北京邮电大学的 IPv6 研究小组9、兰州大学 IPv6 试验床10也涉足建立试验系统和有关测试研究,主要采用的是基于IPv4 的测试。国内关于协议测试技术的研究,在 80 年代中后期和 90 年代初中期有较多的单位开展。就 IPv6 协议测试而言,中科院计算机所发表有就 IPv6中 Neighbor Discovery 协议及其测试方面的文章11。内蒙古大学计算机学院发表的基于 PC 的 IPv6 网络平台及其测试的探讨12文章谈到用 PC 组建 IPv6 网络,建立测试环境用于测试 IPv6 协议的问题。清华大学从近年发Comment ZHX4: 前面似乎未提到TTCN-3,如何此处得出“综上所述”的结论?Comment ZHX5: 什么问题?为什么有联系到 SUPANET? 表的文章看,其工作主要是基于形式化技术研究13,有关 IPv6 路由器的测试的文章中提到多端口并行测试问题,但对如何解决并发性问题尚无文章。综上所述,国内外已有的对路由器并行测试的工作主要是基于 TTCN-3的机制,在单机内建立测试系统。其局限性在于系统成本较高(需要使用小型机) 、测试系统缺少灵活性和可移动性。为了解决上述问题,四川省网络通信重点实验室开展了对 IP 路由器的分布式多端口同步并发测试系统展开了研究工作和系统开发工作,同时也是进一步为实验室研究的“单物理层用户数据传输平台体系结构网络”(SUPANET Single physical layer User-data transfer Platform Architecture Network) 42交换设备的测试作准备。1.1.2 分布式多端口同步并行穿越测试法和相关测试系统分布式多端口同步并行穿越测试法和相关测试系统在解决上述问题的过程中,四川省网络通信重点实验室把主要的工作重心放在分布式多端口同步并发测试系统的设计与研发上,在研发的过程中,同时对相关的技术展开研究。针对现有的多端口路由器测试技术中存在的问题,笔者所在实验室提出了“分布式多端口同步并行穿越测试法”(DMSP-TTM - Distributed Multi-port Synchronized Parallel-TTM),并定义了并发多端口测试定义语言(CMP-TDLConcurrent Multi-port Test Definition Language)14-15。DMSP-TTM 是基于以下应用需求提出的: 新的方法必须具备在多个端口的测试过程进行同步与协调能力,以 1便严格控制并行测试的过程。 支持对复杂的并行测试过程分解为并行测试过程的同步与协调和单 2个/单对端口的测试过程,以便简化并行测试的描述和最大限度地利用已有的单个/单对端口的测试集。 物理上能够将并行测试管理设备与便携或可移动的单个/单对端口测 3试器相分离,从而实现用物理上独立的相对便宜的多个设备组成测试能力更强的多端口同步并行测试系统。 被测路由器单个/单对端口测试器 1单个/单对端口测试器 i单个/单对端口测试器 n测试数据分布式多端口同步并行管理器同步协调命令测试数据测试数据响应响应响应响应同步协调命令同步协调命令响应单个/单对端口测试系统响应图 1-3 DMSP-TTM 测试法示意图图 1-3 即为 DMSP-TTM 测试法的简单描述。1.1.3 本论文研究的小背景本论文研究的小背景路由器双端口测试路由器双端口测试器器路由器双端口测试系统(RTPT Router Two-Port Tester)是路由器分布式多端口同步并发测试系统的基础测试部件。它既能够作为分布式路由器的多端口并发测试系统的底层测试器,也可以作为一个独立的路由器双端口测试系统16。图 1-4 就是路由器双端口测试系统的简图。从图中可以看出,路由器双端口测试器主要由路由器双端口测试管理器、测试支撑工具和测试数据组成。其中测试支撑工具包括图中所示的单测试例执行器(Test Case Traverser)、支撑层适配模块(即 PDU 装/拆模块)、测试支撑层协议实现和编译器。笔者的工作就是围绕路由器双端口测试管理器展开的。 1.2 本论文研究对象本论文研究对象双端口测试管理器双端口测试管理器路由器双端口测试器是路由器分布式多端口同步并行测试系统的基础测试部件,一方面它是实现分布式多端口同步并行测试的基础,另一方面它也可以脱离分布式多端口同步并行测试系统对双端口或单个端口进行测试。所以在进行路由器双端口测试管理器的设计时,就要兼顾路由器双端口测试器的这两个特点。在路由器双端口测试管理器中,有一个重要模块双端口测试器与分布式多端口同步并行路由器测试系统的接口,该模块是双端口测试系统 单测试例执行器单测试例执行器 2 2(Test Case Traverser)图 1-4 路由器双端口测试例系统简图 支持层适配模块支持层适配模块(装拆被测层3 3PDU) RTPTM (Router Two-1 1Port Test Manager):路由路由器双端口测试管理器器双端口测试管理器A.用户接口模用户接口模(User Interface Module): 用户操作界面图形化测试过程动态显示模块+系统初始化模块可执行测试集:可执行测试集:ETS Executable Test Suite + Encoder/DecoderB.B.测试例测试例/ /组管理模块:组管理模块:静态与动态测试例、组选择)测试集、测试组选择测试例选择与测试同步信息、测试例指派与分发、测试例结论测试例调用、已编码的 PDU融入测试例中的PDU 解码器中。C.测试结测试结果分析与果分析与测试报告测试报告生成模块生成模块 测试支持层协议实现:测试支持层协议实现: 4 41)测试测试 IPv6:为:为 IPv4 或数据或数据链路层链路层2)测试应用层:测试应用层:UDP3)信控平面与用户平面联合测信控平面与用户平面联合测试:都需要试:都需要并发测试配置命令、同步、测试中间结果被测被测 PDU流、命令流流、命令流和测试结论和测试结论记录。记录。支持层支持层 PDU数据流记录数据流记录模块:模块:测试后进行分析用。至分布式多端口同步并行测试系统抽象测试集(用 TTCN-3语言描述)1、TTCNC 编译2、C机器代码编译 与路由器分布式多端口同步并行测试系统间通信的桥梁。两者之间的通信使进行分布式多端口同步并行测试的各个双端口测试器可以同步协调工作,同时也使分布式多端口同步并行测试管理器可以汇总各个双端口测试器的测试结果16。避开分布式多端口同步并行测试技术不谈,就双端口测试器本身来说,目前就这方面的研究与设计主要是针对某一特定测试任务来进行的22-23,当测试任务改变时往往需要重新设计、开发测试系统。这使测试系统缺乏灵活性和通用性。因此在设计双端口测试系统时,其设计目标包括:既能够作为路由器分布式多端口同步并行测试系统的底层测试器,也可以作为一个独立的路由器双端口测试系统;既能够对路由器中的单个协议实现进行测试,也能够在多个协议的配合下进行联合测试;既支持穿越测试法,也支持回绕测试法;既支持按事先确定的测试例执行顺序进行测试,也具备根据测试例执行结果,动态地选择执行测试例,即根据协议特点和测试例执行结果跳过不需要再执行的测试例。双端口测试管理器是双端口测试系统的核心组成部分。它对上实现测试终端(双端口测试器)和分布式多端口同步并行测试系统的通信;对下完成系统配置、测试例执行管理、测试过程监视和记录、测试过程管理控制、初步测试报告的生成;在停止测试的状况下,进一步为人工分析测试结果和形成最终的测试报告提供支持。整个测试系统的各模块在测试管理器的管理下,有序协调的进行工作。综上所述,笔者对双端口测试管理器的研究与设计为整个系统的实现打下了良好基础。1.3 论文的组织结构论文的组织结构本论文的后续章节内容与组织结构如下:第 2 章针对双端口测试系统的特点,介绍路由器双端口测试系统的三大部件:测试支撑工具、编/解码器与支撑层适配模块、双端口测试管理器。第 3 章主要介绍笔者对双端口测试管理器的各个功能模块的设计。这是开发双端口测试管理器的基础。第 4 章探讨对测试例执行的管理。一方面探讨了测试例执行管理的一般 性方法;另一方面以 IPv6 基本描述协议和 RIPng 协议的测试例执行管理为例,分别探讨了对单状态和多状态协议测试例执行的管理方法。第 5 章探讨了双端口测试系统与分布式多端口同步并行路由器测试系统的接口设计,提出了两个测试系统之间通信的办法。最后,第 6 章在对论文工作进行总结的基础上,对后续研究工作进行了分析和展望。1.4 作者的工作与论文的贡献作者的工作与论文的贡献作者在西南交通大学网络通信技术省重点实验室承担的主要工作是对路由器双端口测试管理器的研究与开发并探讨了双端口测试系统与上层分布式多端口同步并行测试系统的通信方法。作者的主要工作包括以下几个方面:对路由器双端口测试管理器的各个功能模块进行了详细设计; 1针对测试例执行管理设计了测试例执行规则表(Testcase Executing Rules 2Table TERT) ,提出了测试例执行管理的一般性方法;以 IPv6 基本描述协议和 RIPng 协议的测试例执行管理为例,探讨了对单 3状态和多状态协议测试例执行的管理方法;探讨了双端口测试系统与分布式多端口同步并行路由器测试系统之间通 4信的办法 第第 2 2 章章 IPIP 路由器双端口测试系统功能模块简介路由器双端口测试系统功能模块简介2.1 路由器双端口测试系统的简介路由器双端口测试系统的简介路由器双端口测试系统在分布式多端口同步并行测试系统中身兼两职。既是分布式多端口同步并行测试系统的基础测试模块,也可以作为独立的测试工具使用。因此在对其进行设计时,既要考虑到它与上层测试管理器的通信,也要考虑其作为独立测试系统所应具备的能力。图 2-1 描述的是路由器双端口测试系统的业务流程。从图中可以看出,测试例执行开始从分布式多端口同步并行测试系统接收测试数据和测试命令测试管理模块生成测试例执行序列,初始化系统测试管理模块指示执行测试序列中第一个测试例漫游器执行测试例,编/解码器装配数据和支撑层适配模块收发数据测试管理器将已执行测试例脱离执行序列,判断执行序列是否为空测试执行序列不为空测试结束测试执行序列为空日志记录模块记录被测 PDU 流和支撑层 PDU 流向分布式多端口同步并行测试系统发送测试数据图 2-1 路由器双端口测试系统业务流程图 双端口测试系统的测试工作是从分布式多端口同步并行测试系统接收测试初始化数据和测试命令开始,至所有的测试例执行完毕而结束。期间,双端口测试系统还需要完成对测试例执行进行管理、记录测试数据、向分布式多端口同步并行测试系统发送测试数据等工作。作为分布式多端口同步并行测试系统中的测试端,双端口测试系统是整个分布式系统测试的基础;同时它自己也有用户界面,因此用户可以直接使用双端口测试例系统对路由器的单个或一对端口进行测试。通过执行不同测试例,双端口测试系统可以灵活的进行不同的测试任务。通过对测试例执行的管理,双端口测试例系统可以优化测试,提高系统工作效率。2.2 路由器双端口测试系统功能模块简介路由器双端口测试系统功能模块简介2.2.1 测试支撑工具测试支撑工具测试支撑工具由图 1-4 中的测试定义语言 TTCN-3 的编译器和 C 编译器组成。TTCN-3 是 ISO9646 定义的半形式化描述语言 TTCN(Trees and Tabular Combined Notation)的改进版。TTCN-317被重新解释为“Testing and Test Control Notation Version 3”的缩写,它在同一测试系统引入了多个并行的测试控制单元和单元间同步的概念。为了适应多端口同步并行测试,实验室开发组还定义了并发多端口测试描述语言(Concurrent Multi-Port Test Definition Language-CMPTDL)49。这样,就整个分布式系统来说,测试支撑工具还应该包括 CMPTDL 的编译器18。TTCN-3 描述的测试例虽然具有标准性、通用性和不同开发者定义的测试例可互换等优点,但 TTCN-3 描述的测试例尚不能直接在测试系统中运行,必须通过解释或编译的方式才可以转换为机器代码。出于对未来高速路由器的多端口同步并行测试考虑,对测试例执行效率要求较高,因此在笔者涉及的测试系统开发中采用了编译方式19。在编译器中还整合了一个功能模块单测试例执行器(Traverser)。单测试例执行器主要是在收到测试管理器执行何测试例的命令后,具体负责驱动一个测试例中每一个测试步的执行。 2.2.2 编解码器和支撑层适配模块编解码器和支撑层适配模块编解码器和支撑层适配模块(如图 1-4 所示)是衔接可执行测试集,实现被测 PDU 和支撑层 PDU 双向数据翻译转换的工具。它们一方面将被测PDU 流编码成相应支撑层环境所能识别的支撑层 PDU,另一方面将来自支撑层的 PDU 进行相应的协议解码,并配合收发数据包模块实现可执行测试集所描述的测试系统 PDU 数据流动,同时也为各项 PDU 数据流记录、测试结果分析提供数据接口20。这里特别需要说明的是编译器、编解码器与支撑层适配模块,在概念上是独立的功能模块,但在系统的实际设计与开发中是被联合编译进“可执行测试例”(ETC Executable Test Case)之中的。在双端口测试例管理器看来,每一个测试例都按照的一个命名规则编译成了一个函数,执行一个测试例只要调用相应的函数就可以了。而所有的可执行测试例作为一个函数库,成为测试系统代码实现的一部分。2.2.3 双端口测试管理器双端口测试管理器路由器双端口测试管理器是测试系统的核心部件,同时也是笔者研究与开发的对象。它在整个分布式系统中实现测试终端和分布式多端口同步并行测试管理器的通信;独立出与分布式系统,测试器自身也可以使路由器双端口测试系统成为一个完整的测试系统。笔者根据其功能,把双端口测试管理器划分为以下功能模块:用户接口模块测试管理模块测试集/组/例管理模块日志记录模块测试结果分析与测试报告生成模块与分布式多端口同步并行测试管理器接口系统数据库本章是关于双端口测试系统的介绍,所以双端口测试管理器各功能模块的详细设计,将留在下一章介绍,这里不再赘述。 第第 3 3 章章 路由器双端口测试系统管理器设计路由器双端口测试系统管理器设计3.1 双端口测试系统管理器的功能模块组成双端口测试系统管理器的功能模块组成在路由器双端口测试系统中,除了双端口测试管理器外,还有许多其他功能模块,如何让各个模块融合在一起协调工作?在大多数测试活动中,执行的测试例远超过一个,如何对这些测试中执行的测试例进行合理管理?这些问题都是路由器双端口测试系统管理器设计时,需要考虑的问题。笔者在路由器双端口测试系统管理器的设计与开发中,根据分布式多端口同步并行测试系统的要求以及路由器双端口测试系统本身亦可作为独立测试系统的要求,对双端口测试系统管理器的功能模块做了以下划分:与分布式多端口同步并行测试管理器接口模块用户接口模块测试管理模块测试集/组/例管理模块日志记录模块测试结果分析与测试报告生成模块系统数据库与分布式多端口同步并行测试管理器接口模块与分布式多端口同步并行测试管理器接口模块是路由器双端口测试系统能够成为分布式测试系统测试基础模块的关键。它接收分布式多端口同步并行测试系统的测试命令和测试初始化数据,同时也把每个测试例执行的结果以及产生的相关数据传输给上层分布式测试系统管理器。因此可以说,如果没有与分布式多端口同步并行测试管理器接口模块与分布式多端口同步并行测试管理器接口模块,整个分布式式系统无法协调同步工作。用户接口模块用户接口模块和系统数据库系统数据库的设计是基于双端口测试系统可以作为独立测试系统的考虑。这是因为,在分布式多端口同步并行测试系统管理器端有分布式系统的用户接口模块和整个系统的数据库。如果双端口测试系统只是作为分布式系统的一个模块,在其测试器中则无需设计用户接口模块和系统数据库。但是,基于双端口测试系统脱离分布式系统也可以成为独 立测试系统的考虑,在双端口测试系统管理中,也必须加入这两个模块。3.2 双端口测试系统管理器的功能模块设计双端口测试系统管理器的功能模块设计3.2.1 用户接口模块用户接口模块如上节所述,在双端口测试系统中设计用户接口模块,主要是基于该测试系统能够自成独立系统的考虑,同时它的设计与开发,也为上层分布式多端口同步并行测试系统中用户接口的设计提供了可借鉴经验。用户接口模块的主体功能:生成用户界面;向测试管理模块传送用户数据;显示测试数据。根据其功能,笔者把该模块划分为三个子模块:用户界面生成模块测试数据传输模块测试数据显示模块“用户界面生成模块”用于在显示终端生成完整的用户界面,以利于用户输入信息、控制测试和浏览结果。其中用户界面包括“测试控制” 、 “显示” 、 “日志” 、 “帮助”四个下拉菜单。测试控制菜单:包括“新建测试” 、“开始测试” 、 “中止测试”命令。 “新建测试”命令,由向导指引用户新建一个测试项目。 “自动测试”项目只需要用户选择进行何种测试和输入测试用户接口模块用户接口模块用户界面生成模块用户界面生成模块测试数据传输模块测试数据传输模块测试数据显示模块测试数据显示模块测试管理模块测试管理模块系统数据库系统数据库图 3-1 用户接口模块数据流图 参数即可由系统自动完成测试;“自定义测试”项目需要用户自行选择测试例和输入测试参数。 “开始测试”命令用于在测试系统准备就绪后通知系统开始测试。 “中止测试”命令用于测试过程中强行中止测试。显示菜单:可在通过此菜单选择显示或关闭那些窗口。日志菜单:包括“保存测试日志” 、 “保存测试报告” 、 “载入测试日志” 、 “载入测试报告”命令。用户使用这些命令可以将测试日志和测试报告保存为文件,也可以从文件中读出以前保存的测试日志和测试报告。帮助菜单:提供帮助系统和软件版本号。“测试数据传输模块”用于在用户接口模块内部的子模块间或与其他模块进行数据传输。主要的数据传输流程如图 3-1 所示:1)将用户通过用户界面输入的测试数据,传送到测试管理模块2)将用户输入的测试系统参数存入系统数据库。测试系统参数包括测试对象和测试端口的 IP 地址,如果数据链路层为以太网,则还包括 MAC 地址的配置等。因为经编译器编译形成的可执行测试例是通用测试例,对于具体的测试环境并不能预知。所以需要用户在测试之间输入测试配置信息,并由测试数据传输模块存入系统数据库。当测试例执行时,需要相关的测试配置信息就可以直接从系统数据库中读取。3)从系统数据库中读出测试过程中产生的数据,并交由测试数据显示模块显示。这些测试过程中产生的数据包括各测试例执行结果、被测 PDU 数据流、支撑层 PDU 数据流等“测试数据显示模块”用于在用户界面显示测试过程中产生的数据。在测试进行期间动态显示每一个测试例执行的情况;测试例全部执行完毕后,显示测试报告。所以其数据流如图 3-1 所示,从测试数据传输模块接收数据,将数据处理后,交由用户界面生成模块显示在测试终端的显示设备上。3.2.2 测试管理模块测试管理模块路由器双端口测试系统的测试管理器的作用是协调管理双端口测试系统中各模块的工作,而在测试管理器内部,起协调管理作用的则是测试管理模块。测试管理模块的主体功能是协调系统各模块工作;调度各测试例按照适当顺序执行。 测试管理模块测试管理模块用户接口模块用户接口模块测试初始化模块测试例执行管理模块测试集测试集/组组/例例管理模块管理模块漫游器漫游器系统数据库系统数据库测试结果分析与测试结果分析与测试报告生成模测试报告生成模块块图 3-2 测试管理模块数据流图如图 3-2 所示,测试例管理模块几乎与测试管理器的其余模块都有数据通信,可见其在测试管理器中管理协调其他模块的作用。根据测试例管理模块的功能,笔者将其划分为测试初始化模块和测试例执行管理模块。“测试初始化模块”用于在测试初始化阶段从用户接口模块接收用户输入的测试数据;调用测试集/组/例管理模块生成测试所需的测试例执行序列;根据用户需求和测试系统要求完成测试系统的初始化工作。“测试例执行模块”用于调度测试例的执行。按照测试例执行序列的顺序驱动漫游器逐个执行测试例;测试进行过程中,记录测试例执行结果并写入系统数据库,调用测试集/组/例管理模块对测试例执行进行管理;测试例全部执行完毕后,驱动测试结果分析与测试报告生成模块进行结果分析并生成测试报告。 3.2.3 测试集测试集/ /组组/ /例管理模块例管理模块测试集/组/例管理模块的功能是对测试例的执行按照一定的规则进行管理。它的主要工作是在测试例初始化阶段,将一个测试项目所有需执行的测试例排列成一个测试例执行序列,序列中测试例的顺序根据测试例之间关系确定;在测试进行中,对测试例执行序列进行动态管理。有关与测试例执行管理的具体方法,是双端口测试管理器中主要需要解决的问题之一,因此有关于测试例执行管理的规则,笔者在本章之后,将用一个专门的章节进行讨论。这个规则就是测试集/组/例管理模块工作的主要依据。3.2.4 日志记录模块日志记录模块在测试过程中,双端口测试管理器需要对每个测试例执行时产生的被测PDU 数据流和支撑层 PDU 数据流进行记录。在某些情况下,由于各种原因,部分测试例的结果可能为“不确定”(inconc),这时可能需要通过对测试结果进行人工分析,参考对被测 PDU 数据流和支撑层 PDU 数据流的记录,得出补充结论或设计新的测试例来进一步证实相关功能的测试结果。此外,实际测试中可能出现测试结果的正确与否与支撑层的行为有关的情况,这就是为什么保存支撑层 PDU 数据流的原因。通过分析支撑层 PDU 数据流可能有助于进一步确定被测层出现的问题16。笔者根据日志记录模块的功能,该模块按其所记录数据的类型,直接将日志记录模块划分成:被测 PDU 流记录模块支撑层 PDU 流记录模块如图 3-3 所示,日志记录模块在编解码器和支撑层适配模块和系统数据库之间进行数据传输。 3.2.4 测试结果分析与测试报告生成模块测试结果分析与测试报告生成模块简单说来测试结果分析与测试报告生成模块的功能就是分析每个测试例执行的结果,并生成测试报告。“测试结果分析模块”从系统数据库中读出每个测试例执行结果的记录,分析测试结果,得出测试结论,交用户接口模块,通过用户界面显示。“测试报告生成模块”根据各个测试例执行的结果,生成测试报告,把测试报告交用户接口模块,通过用户界面显示。测试报告应包括一些统计数据,例如本次测试执行的测试例总数,有多少通过,多少失败,多少不确定。一致性测试的测试报告还应指出被测路由器实现了那些协议功能,那些协议功能没有实现;性能测试的测试报告则列出被测路由器经测试得出的吞吐率、延迟、帧/包丢失率、帧/包突发量等21各项性能指标。图 3-4 所描述的就是测试结果分析与测试报告生成模块的数据流图。在图中可以清楚地看到,在测试结束后,测试结果分析与测试报告生成模块只需直接从系统数据库中读取各测试例执行的结果和相关的测试数据就可以得出测试结果和测试报告。日志记录模块日志记录模块被测 PDU 流记录模块支撑层 PDU 流记录模块系统数据库系统数据库编解码器和支撑编解码器和支撑层适配模块层适配模块图 3-3 日志记录模块数据流图Comment ZHX6: 测试系统中的大量数据(Logging Files, Test Suite/Group/Case, Test Report 等)都是以文字文件或程序文件形式出现的,使用数据库管理系统还是文件管理系统需要斟酌。这一段内容太空,应有分析并提供基本组成思路或初步框架。 测试结果分析与测试报告生成测试结果分析与测试报告生成模块模块测试结果分析模块测试报告生成模块系统数据库系统数据库用户接口模块用户接口模块图 3-4 测试结果分析与测试报告生成模块数据流图3.2.5 与与分布式多端口同步并行测试管理器接口分布式多端口同步并行测试管理器接口与分布式多端口同步并行测试管理器接口主要负责和上层的分布式多端口同步并行测试系统管理器进行通信。当双端口测试系统作为下层测试端工作时,必须从分布式多端口同步并行测试系统的管理器接收测试命令,分布式系统的双端口测试系统才能够同步并行的进行多端口的测试工作。此外,在进行分布式多端口同步并行测试时,用户在上层的分布式多端口同步并行测试系统的管理器端进行操作,因此测试配置等数据是在分布式系统的上层端输入的,这些测试配置的数据也必须通过由上层测试管理器发出,通过双端口测试系统与分布式多端口同步并行测试管理器的接口来接收。因此,进行分布式多端口同步并行测试时,双端口测试系统的用户接口模块将蜕化为单一的显示终端。有关于在与分布式多端口同步并行测试管理器接口模块中,两个测试系统之间具体是如何进行通信的将在后继的章节中给予详细介绍。3.2.6 系统系统数据库数据库在分布式多端口同步并行测试系统中,上层管理器端有一个总系统数据 库,下层的若干个双端口测试系统都可以共享其中的数据。笔者之所以要在双端口测试系统中也建立其自有数据库主要是基于两方面的考虑:1)双端口测试系统是一个独立的测试系统,所以应当有其自带的数据库以存储测试系统参数、测试数据等2)当双端口测试系统作为分布式测试系统一部分时,有些在测试中经常用到的数据,不宜频繁从上层的总系统数据库中读取,所以双端口测试系统带有自己的数据库也是基于整个系统运行高效、稳定的考虑。在双端口测试系统的数据库中有静态和动态两种数据。静态数据在测试过程中始终不会变化,它就像软件的代码一样,作为测试系统软件的一部分。这类数据主要是测试例执行管理的规则,在后继章节将会详细介绍。动态数据则是上面提到的测试系统参数、测试例执行结果、被测 PDU 流记录、支撑层 PDU 流记录等。这些数据在每次测试时都会因为测试系统配置和所执行的测试例改变而改变。Comment ZHX7: 一段文字成为“图”不合适! 第第 4 4 章章 测试例执行管理测试例执行管理4.14.1 双端口测试器中的测试例执行管理双端口测试器中的测试例执行管理前面章节已经介绍过,在分布式多端口同步并行路由器测试系统中,测试工作主要是通过执行相关测试例来进行的。在此过程中,测试例可以与被测路由器进行数据通信并通过收到的数据判定测试例执行的结果。所有测试例的执行都是在分布式多端口同步并行测试管理器的协调下,由若干双端口测试器来执行的。所以,分布式多端口同步并行路由器测试系统中,对测试例的执行管理就显得格外重要。在测试例的具体执行者双端口测试器中,由双端口测试系统管理器具体对测试例的执行进行管理。当单个双端口路由器独立进行测试时,情况也是如此。如果我们在设计双端口测试系统管理器时,对测试例管理规则进行合理有效的设计,就能提高测试例执行的效率,进而提高整个测试系统的性能。4.1.14.1.1 双端口测试器中测试例执行的过程双端口测试器中测试例执行的过程RTPT 实际调用的测试例是用 TTCN-3 编写的测试例,首先将经 TTCN-3/C 编译器生成 C/C代码,通过与编解码器(E/D)和单测试例游历程序(Test Case Traverser)的 C 代码联合进行 C 编译后形成的可执行程序。按照系统开发各小组之间的约定,负责编译器开发的小组把每个测试例编译成一个函数,并以用该测试名作为该函数的名称。所有的测试集,以函数库的形式存在于系统中,测试管理器可以直接通过调用对应函数来达到执行测试例的目的。比如进行 IPv6 一致性测试时,我们把 IPv6 测试例中测试 IPv6 版本号字段的一个测试例命名为 G1_GS1_BV001, 因此该测试例进行编译后,将形成如下函数:图 41 中的函数的值verdict 为一个枚举类型25,其定义为:verdict G1_GS1_BV001( )图 41 测试例函数Comment ZHX8: 这一段应该讨论测试例的选择原则预算法。请考虑建议的表格方式是否合理?此表的目的仅为用于测试例选择, “测试目标”和“测试结果”有什么用?Comment ZHX9: 为什么是“通用”测试集或例?RTPT 执行的只能是可执行测试集、组、例。通用测试集与测试方法无关,抽象测试例与测试方法有关,但 RTPT 不能执行,只有可执行测试例才能为 RTPT 所用。 enum verdict pass, fail, inconclusive该枚举类型的成员分别代表 TTCN3 中 Verdict 类型三个值:pass、fail、inconc。测试管理器通过判断函数返回值,即枚举类型 verdict的值就可以知道该测试例执行的结果为 pass(通过) 、fail(失败)还是inconc(不确定) 。测试管理器就可以根据测试例执行的结果做出相应操作。在实际的测试过程中,测试管理器根据用户的选择逐个执行相关测试例,应该执行那个测试例就调用那个测试例所对应的函数。测试例函数在执行中,自动向路由器发送数据,接收反馈数据,根据反馈数据得出执行结果,最后把结果以返回值的形式送测试管理器。测试管理器则根据测试例函数的返回值判断其执行结果、做出相应操作,并决定下一步执行那一个测试例。依此类推,直到所有需要执行的测试例都执行完毕。这就是测试例在双端口测试器中执行的过程。4.1.24.1.2 测试例执行管理的测试例执行管理的策略策略通过上一小节的介绍已经可以了解一个测试例执行的大致过程,但是一次测试往往需要执行若干测试例,而测试例执行管理也不仅仅是简单的执行每个测试例,再汇集每个测试例执行的结果。在双端口测试系统管理器中,对测试例执行的管理应着重解决以下几个问题:当需要执行的测试例在一个以上时,如何有序组织为数众多的测试例当每个测试例执行后产生不同结果,针对不同的执行结果,测试系统应该采取那些应对操作当一个测试例执行完毕后,如何根据其执行的结果确定下一个应当执行的测试例在测试系统的实际开发中,为了解决以上问题,笔者设计了一个测试例执行规则表(Testcase Executin
展开阅读全文