- 1 -
测试自动化在 OAM集成测试中的应用
肖 征
北京邮电大学计算机科学与技术学院,北京(100876)
摘 要: 本文首先介绍了集成测试和自动化软件测试的基本理论。然后根据基站 OAM项
目中集成测试存在的问题,结合软件测试自动化的理论,提出并实现了 OAM系统集成测试
的自动化测试工具,此工具在实际测试工作中被项目组成员广泛使用,帮助测试人员简化的
测试步骤并提高了集成测试的效率。
关键词:集成测试;软件测试自动化;OAM
1. 引言
自动化测试就是希望能够通过自动化测试工具或其他手段,按照测试工程师的预订计划
进行自动的测试,目的是减轻手工测试的工作量,从而达到提供软件质量的目的。[1] 在一
些大型软件的开发过程中,软件测试所占的工作量非常大,尤其是需要反复执行的回归测试,
占用了测试人员大量的时间。所以,引入自动化测试无疑可以很大程度地缩短项目周期,提
高软件开发的生产效率。本文基于原有基站 OAM 系统的集成测试环境,设计并实现了自动
化测试环境的搭建和回归测试自动化,使原来需要全程人工操作的集成测试的效率得到提
高。
2. 软件测试基本理论
集成测试概述
集成测试是对由各子模块集成起来的系统的功能和接口进行的正确性检测的测试工作。
它是介于单元测试和系统测试之间的过渡阶段,是单元测试的延伸,所以,在集成测试之前,
各子模块的单元测试应该已经完成。通常来讲,集成测试的用例是测试人员以《软件概要设
计》为依据来撰写的。
集成测试的主要目的是发现各子模块之间的接口错误,确保各模块之间能够协调工作。
此外,还要验证集成后系统的功能与软件概要设计相一致。一般情况下,集成测试采用黑盒
测试用例设计的方法,但是随着软件复杂性的增加,也常常在集成测试中引入白盒测试的方
法,所以,在大型软件的集成测试中,通常采用黑盒测试与白盒测试相结合的方法。
自动化软件测试
自动化测试的定义
自动化测试就是希望能够通过自动化测试工具或其他手段,按照测试工程师的预定计划
进行自动的测试,目的是减轻手工测试的工作量,从而达到提高软件质量的目的。[1]
自动化测试的优点
1)对程序的回归测试更方便。这可能是自动化测试最主要的任务,特别是在程序修改
比较 频繁时,效果是非常明显的。由于回归测试的动作和用例是完全设计好的,测试期望的
结果也是完全可以预料的,将回归测试自动运行,可以极大提高测试效率,缩短回归测试时
- 2 -
间。
2) 可以执行一些手工测试困难或不可能进行的测试。比如,对于大量用户的测试,不
可能同时让足够多的测试人员同时进行测试,但是却可以通过自动化测试模拟同时有许多用
户,从而达到测试的目的。[2]
自动化测试的缺点
1) 软件的自动化测试不能完全代替手工测试,在大型软件的测试工作通常是由自动化
测试和手工测试相结合而成。
2) 软件的自动化测试发现的程序 BUG 要比手工测试发现的少,尤其是在测试 GUI 相
关的功能时,测试人员通过手工测试可以更好地发现人机交互的问题。
3. OAM 系统的自动化集成测试
OAM 系统集成测试环境
基站 OAM 系统集成测试环境是在 SUN 主机上搭建的仿真系统,其目的是模拟基站实
际的运行环境,以此来测试基站 OAM 系统各模块之间的接口及 OAM 与 OMC 之间的接口
功能。为了模拟基站实际的运行环境,集成测试系统对基站的各种板块进行了仿真,包括信
道板卡,线性接口单元,线性放大器,串行设备,时钟模块和射频单元等,尽可能使仿真程
序与实际板卡向 OAM 提供的接口一致。此外,还需要仿真与基站 OAM 系统有接口的外围
设备,如 FTP 服务器,日志服务器和命名服务系统等。本文后续所提到的基站均表示基站
仿真程序,其中包括了被测试的 OAM 代码。
Linux server
OMC 仿
真器
ITFB
SUN
OAM 应用程序
桩模块 桩模块 桩模块
LAMP 工具
FTP 服务器
日志服务器
命名服务
图 1 集成测试环境的体系结构
从图 1 可以看出,基站 OAM 集成测试环境可以分为以下三部分:
¾ 运行在 Sun 工作站上的 OAM 程序和支持其运行的桩模块。
- 3 -
¾ 运行在 Linux server 上的 OMC 仿真器和 LAMP 工具。OMC 仿真器通过 ITFB 接口与
OAM 交互,来实现对基站的管理。LAMP 是朗讯公司开发的测试工具,它可以支持多种通
信协议。测试人员可以在 LAMP 上运行测试脚本来操作 OMC 仿真器。基于 perl 语言开发
的 LAMP 向测试人员提供足够多的 API 接口,测试人员可以基于 LAMP 进行二次开发,编
写自己需要的测试脚本。
¾ 为 OAM 提供 FTP、日志和命名服务的服务器。
开发目的
在未实现自动化测试的情况下,项目组的测试人员在每次集成测试时都需要手工去搭建
测试环境,这些工作包括设置必需的环境变量,安装被测程序,启动相关应用软件,配置文
件的生成等。由于集成测试需要对多种不同类型的基站进行测试,所以对应的仿真测试环境
也需要手工的搭建多次。这些工作导致测试人员在测试环境的搭建上花费的大量的时间和精
力。此外,在运行回归测试时,测试人员也需要手工地测试每一个用例,而这些回归测试的
工作具有一定的重复性,这就在一定程度上降低了项目测试的效率。为了减少测试人员在重
复性工作上消耗的时间,使他们有更多的精力来完善测试用例,在集成测试中实现软件测试
自动化是非常必要的。
具体实现
OAM 的自动化集成测试的实现包含以下两部分:测试环境搭建和配置自动化,回归测
试自动化。
测试环境搭建和配置自动化
测试环境的自动化搭建和配置是由 itSetup 来完成的,此工具涵盖了 OAM 集成测试环
境搭建的所有步骤,以 GUI 的形式直观地将测试环境需要配置的信息呈现给测试人员,使
用者可以在此 GUI 界面上配置自己专用的测试环境,这样避免了在有多个测试人员同时测
试时相互影响。
itSetup 的主要功能包括安装被测程序,从版本控制系统 SVN 中读取最新的测试脚本,
根据用户选择的基站配置类型下载 eeprom 文件,配置测试必需的环境变量等。详细的运行
流程可参考下图。
- 4 -
启动itSetup工具
从.profile读取用户信
息
初始化测试环境需要的
环境变量
安装测试需要的桩模块
从SVN下载最新的测试脚
本
从Clearcase中拷贝被测
程序到指定测试目录中
根据用户选择的基站类
型,从SVN拷贝相应的
eeprom文件
根据用户在GUI上的设置
修改环境变量
退出itSetup
图 2 测试环境搭建流程图
回归测试自动化
回归测试是通过在 LAMP 平台上运行的 Perl 脚本来完成的,LAMP 为用户提供了消息
模板库,其中定义了 LAMP 可以支持的所有消息类型。此外,用户也通过定义新的消息模
板,使 LAMP 支持新的消息类型。在 LAMP 上执行的脚本,是将用户向基站发出的指令封
装成预定义的消息,并通过 OMC 仿真器发送给基站。同样,基站返回的指令执行结果和主
动上报的告警也要按照预定义的消息格式封装。
自动化测试脚本将所有回归测试的用例集中在一个脚本中,并从配置文件中载入启动被
测程序需要的初始化参数以及需要在测试时输入的参数。脚本在运行时会将每个用例测试的
结果记录在 LAMP 的日志文件中,执行失败的测试用例不会导致整个测试脚本中断。在自
动化测试脚本运行完毕后,测试人员通过查看 LAMP 日志文件,可以得到每个用例的测试
结果。日志文件打印出了每一条发出和收到的消息,测试人员可以据此分析测试用例失败的
原因。自动化回归测试的执行过程可参考下图:
- 5 -
进入自动测试脚本
启动被测程序
读取OMC仿真器日
志
基站已向OMC注
册
N
Y
启动LAMP
载入配置文件
执行回归测试脚本
自动测试脚本推出
图 3 自动测试脚本流程图
4. 结论
软件测试自动化是软件行业中飞速发展的一项技术,本文根据已有 OAM 集成测试环境
和方法,提炼出了该项工作中可以自动化执行的部分,将软件测试自动化技术应用在集成测
试中,实现了测试环境自动化搭建和回归测试的自动化运行。通过实践证明,在使用了自动
化技术后,集成测试的效率得到明显提高,减轻了测试人员的负担,并且在开发人员的单元
测试中被推广使用,这说明自动化的集成测试是值得推广的方法。
参考文献
[1] 曲朝阳,刘志颖. 软件测试技术. 北京. 中国水利水电出版社
[2]
[3] [美] Robert Culbertson, Chris Brow, Gary Cobb 著. 快速测试. 王海鹏 译. 北京:人民邮电出版社,2004
Application of Automatic test in OAM Integration test
Xiao Zheng
Department of Computer Science and Technology, Technology,Beijing University of Posts and
Telecommunications,Beijing(100876)
Abstract
Base on the basic theory of integration test and software test automation, the paper introduces the
automatic test technology into OAM integration test, designs and implements the automatic testing tool
applied in the integration test. The tool has been used by testers in the developing team, help the tester
to simplify the test procedure and improve the efficiency of integration test.
Keywords: integration test; software test automation; OAM