构建整体化的自动化测试平台
摘要:文章通过构建一个整体化的,不依赖于自动化测试实现方法、实现手段的自动化测试平台与工具,以期达到提高自动化测试实现效率、方便自动化测试管理等目的。
关键词:自动化测试;测试仪器;整体化测试平台框架
中图分类号:TP311文献标识码:A
文章编号:1009-2374 (2010)22-0024-02
1自动化测试简介
自动化测试的出现可以大大减少测试开销,同时大幅提高有限时间内的测试覆盖率。成熟的自动化测试机制,是可重复的、极少的人工资源投入的,可以做到“即使最小的改动也可以以最小的代价进行全面的测试”。
但是,在自动化测试实施与推广过程中,常常会因为自动化测试手段与工具的多样化与不统一化对自动化测试件设计/开发效率的影响等,导致自动化测试无法有效地推广开来。
本文通过对数据通信领域的自动化测试平台的探讨,寻找到一种更好的搭建自动化测试平台的方法,提高自动化测试效率。本文提到的实现方法,是以数据通信领域产品的自动化测试为例进行阐述与实际实现的,其他领域的软件自动化测试可以依据自身的特点与情况对此进行一些修正与改造。
2自动化测试实现的常见问题
在通常的自动化测试实现中存在着一些常见的差异性:
自动化测试所使用的测试仪器或工具不同,如:使用PC作为测试工具,或者使用数通领域通用的测试仪器(如:思博伦公司的SmartBits或IXIA公司的IXIA测试仪)作为测试工具。
测试环境(或拓扑)不同,如:有的自动化测试环境为单台被测设备,有的需要多台辅助测试设备,所实现的自动化测试方法也相应有所不同。
2.1基于PC的自动化测试
由于业界有许多基于PC的开源工具或者工具包的支撑,因此在PC上编写各种测试工具与测试软件是一件相对方便且资源丰富的方法。基于PC的自动化测试,主要完成一致性/功能测试与部分性能测试。但由于PC功能较为单一,无法很好地模拟网络的组网方式,因此常见的解决方法是通过PC对实际的组网进行测试,可以进行实际测试效果。
该测试方式的优点是较为直观,自动化测试实现简单易行。但由于不同测试用例的组网环境不同,切换用例需要手动改变组网,自动化无法连续进行,因而完成一系列测试需要相当长的时间,而且回归和重现较为困难。另外,错误故障定位困难,由于测试时使用了不同的辅助设备,出现故障时,具体哪一台设备出现故障难以确定。
2.2基于测试仪器的自动化测试
在数通测试领域,所使用的测试仪器一般都提供了强有力的自动化测试接口支撑,因此可以基于这些接口开发适用于被测设备(系统)的自动化测试软件。
该测试的优点是能够更好地进行路由仿真和性能测试,如OSPF(开放式最短路径优先)协议的收敛时间测试可以模拟任何组网,组网结构可以可视化地改变,并以协议报文的形式反馈到被测设备。
其缺点在于无法深入到具体协议的内部实现交互过程的测试,大多数的软件bug都集中于协议交互过程,导致测试覆盖率不高,需要一致性测试作为补充。
2.3自动化测试的管理
随着自动化测试规模的不断扩大,带来的自动化测试脚本管理、维护困难也会越来越突出。如何管理自动化测试,也成为一个大家愈发重视的问题
3整体化自动化测试平台的设计
3.1测试环境的整体化
自动化测试的组网环境的简化,可通过PC的网络接口模拟实际的路由和交换设备,使用一个单独链路作为被测设备配置链路,专门配置被测系统。测试链路用于测试报文收发,被测设备配置和报文收发和编解码通过脚本控制
配置链路:测试PC通过配置链路对被测设备进行控制,这样的配置链路可以是带内(如:PC的控制口),也可是带外(如:Telnet/HTTP等方式)。
测试链路:通过PC的网卡与被测设备通讯,在PC上运行各种模拟数据通信设备或协议的软件,来达成减少测试环境中的测试设备的目的,所需模拟的测试设备多的时候可以增加PC的网络接口。
这里提到的模拟数据通信设备的软件,可以是一些来自于已有的商用或开源软件,也可以是自行开发的一些测试软件。这些工具与特定应用相关,可以在实践过程不断地扩充。
测试环境的整体化,对于一些不可避免的需要组网环境的测试,目前业界已经有一些比较常用的拓扑切换方法,如使用带拓扑切换功能的网络互连设备,通过对这样的拓扑切换设备的自动化控制、操作来实现不同逻辑拓扑的切换功能,本文不做进一步的细节阐述。
3.2测试工具的整体化
PC测试可以细化编解码和能够进行一致性测试,具有较强的测试覆盖率,测试仪器测试具有能够进行性能测试、物理网络仿真的优势。二者结合后,可以达到通过PC实现协议交互过程,通过测试仪器在这些交互过程中进行所需的测试行为注入。
运用测试仪器提供的扩展命令接口,PC通过脚本控制测试仪器端口协议报文的流量发送,批量统计。同时可通过PC控制网卡适配器报文的收发,进行功能测试等。物理拓扑搭建图如图1所示:
如图1所示,测试PC充当了两个角色:
被测设备控制者:PC通过控制链路对被测设备进行配置、操作等控制。
测试仪器操作者:测试PC同时通过测试仪器提供的自动化测试接口,实现对测试仪器的自动化控制。
测试链路中存在2种测试方式:
测试PC对测试设备的测试链路:通过在PC上运行各种自动化软件,来实现对被测设备的测试,如报文收发、协议模拟等。
测试仪器对测试设备的测试链路:自动化测试程序通过调用测试仪器提供的测试接口,实现对被测设备的各种测试操作,也包括报文收发、协议模拟等。
通过对两者的有机结合,可以将测试PC对测试设备的测试链路与测试仪器对测试设备的测试链路进行统一控制,从而实现二者的交互。
3.3自动化测试管理的整体化
构造整体化的测试平台,除了自动化测试本身外,还兼具测试用例管理、测试用例编辑、测试用例执行、测试结果分析与测试结果统计反馈等功能。将整个自动化测试实现、使用、管理的过程统一在一个平台上实现。
3.4整体化测试平台框架
本章节讨论整个整体化测试平台如何进行构建,形成整体统一的测试平台框架。
3.4.1框架构成整体化测试平台框架包含如下功能支持:自动化测试脚本编辑环境。脚本编辑界面,包括各种基本的编辑功能,语法美化、关键字识别、关键字自动提示等辅助功能。
(1)测试脚本调试环境。自动化测试脚本的调试器,可以通过集成当前通用的调试环境与工具来达成。
(2)测试管理界面。测试工程建立和管理:建立测试工程项目,生成相关的工程组织文件,并可添加/移除已编辑好的测试脚本和测试配置文件。测试参数设置和参数脚本生成:配置测试过程所需的参数,并生成相应的配置脚本文件。当测试环境改变时,测试人员只需更新相关参数。测试例执行规则设置:设置测试例执行的规则,如在何种条件下终止测试执行过程,测试过程希望察看的信息,测试用例按何种顺序执行等。测试用例脚本,用例描述,拓扑的映射关系维护:测试人员可以根据用例列表,查看用例描述,物理和逻辑组网图。测试结果的记录和日志生成:对于测试失败的用例,记录错误的日志。测试结果处理:测试结果的查询,并提供同问题记录系统的接口,使得测试结果能够及时上报;同时,也可视需求决定是否提供E-mail、短信等实时通知功能。
(3)测试执行操作界面。提供测试控制的界面,测试开始,暂停,继续,停止等。
测试过程监视:在窗口界面显示测试例执行的结果和统计,指定类型的协议报文的收发过程和编解码等信息。对各种信息划分等级,测试人员可以在测试执行过程屏蔽/显示某一级别的信息。支持测试人员定义多个窗口显示不同类型的信息。
(4)公用支持库的支撑。提供自行定义的一套自动化测试公用库,其基础构成包括:被测设备的控制库:用于控制不同的被测设备,将相同的操作归类,提供统一接口。报文收发的通用库,这里的报文收发可以通过PC网卡实现,也可通过测试仪器实现,目的是为不同的测试手段提供统一的接口。函数报文缓冲操作接口:提供一组申请、释放和访问内存缓冲区的命令,用于支持协议报文的编解码,以及协议报文编解码命令。利用报文缓冲区管理命令实现特定协议编解码的过程。扩展接口规范的定义和扩展开发库的提供:为后续新的协议支持或新的操作支持,提供兼容性以及统一的命名规则要求。
3.4.2框架实现简述本文给出了具体框架的搭建模型和为实现相应的功能需要完成的内容,具体的实现平台、方式可依据所需自动化测试环境的不同而变化,譬如:平台运行的操作系统、实现平台所使用的编程语言等等。笔者在实践过程中,是在Windows操作系统下的使用C#进行工具实现,完成了对测试PC、思博伦公司的SmartBits测试仪器,以及被测设备的自动化测试。
在实际实现过程中,可以依据当前系统的自动化测试程度与水平,通过逐步叠加的方式来逐步实现框架中的不同功能。譬如:其中提到的自动化脚本编辑环境、测试执行失败记录的分析、测试结果的统计等功能,可以随着自动化测试资源投入的增大,对自动化需求的增多,而逐步增加开发,并不一定需要一步到位地实现所有功能。
本文从数据通信领域自动化测试实现常见的一些问题入手,通过构建一个整体化的,不依赖于自动化测试实现方法、实现手段的自动化测试平台与工具,以期达到解决这些常见的问题,提高自动化测试实现效率,改善自动化测试管理方式的目的。
参考文献
[1] Mark Fewster&Dorothy Graham著,舒智勇,包晓露,焦跃,等译.软件测试自动化技术与实例详解[M].电子工业出版社,2000.
作者简介:张晓敏(1978-),女,福建福州人,福建星网锐捷网络有限公司工程师,研究方向:自动化测试。
推荐访问: 构建 自动化 测试 平台