基于XML的软件自动化测试*

2013-08-15 02:00商林霞
光学仪器 2013年2期
关键词:测试用例软件测试脚本

商林霞,施 展

(上海理工大学 光电信息与计算机工程学院,上海 200093)

引 言

随着计算机应用日益普及和深化,用户对软件的需求越来越多,对软件要求也总是在不断变化[1]。AutoCAD产品在软件国际化的过程中,每次修改都需要对大量的测试用例进行反复测试,还要在不同语言版本的操作系统平台上测试,这就使得该项目的测试工作极为繁琐。软件自动化测试作为保证软件质量和可靠性的关键技术手段,正日益受到广泛的重视。但如何进行测试,如何提高测试的质量和效率,仍然是许多人深感困扰的问题[2]。根据对AutoCAD软件测试项目研究与实践的体会,介绍软件自动化测试技术的概述、基本过程和实现。结合实用的Silk Test工具以及可扩展标记语言技术(extensible markup language,XML),给出整个自动化测试框架。

1 自动化测试概述

整个自动化测试平台包含两部分:测试平台和服务器平台。测试平台包含不同语言版本或者不同操作系统的平台;服务器平台主要含有源代码版本管理库和测试结果的关系数据库[3]。

(1)自动化测试用例选择

对于Silk Test工具而言,它对Java的支持很好,所以如果是多模块、多软件测试,首先要尽量选择和Java相关的部分来设计用例[4]。

(2)自动化测试环境准备

开启windows远程控制,设置文件的扩展名可见,安装待测试AutoCAD系列产品,安装测试过程所需的自动化测试软件(Silk Test软件)等等一系列配置。

(3)自动化测试脚本开发

Silk Test自动化测试工具支持简单的捕获同放功能,但是这并不是自动化测试。测试工具直接录制产生的脚本是不能直接使用的,所以对于利用Silk Test工具编写的脚本来说,通常是通过捕获对话框图形,抓到测试对象。然后利用Silk Test所提供的4Test语言来添加函数、控制结构等[5]。

(4)自动化测试报告生成

分权是世界范围内政府改革的重要趋势,是国家治理重要工具之一。我国自1978年改革开放以来经济领域的分权改革带动了高等教育管理体制的改革,分权也成为我国高等教育管理中的发展趋势,但高等教育分权加剧了省际间的差距和竞争[1]。同时与经济领域的分权改革一样,高等教育分权过程中也面临着“放乱收死”[2]的局面。在改革开放40年之际,在提升国家治理能力和治理体系现代化的新时代,总结我国高等教育分权改革的历程、经验和趋势,可以为新时代高等教育发展提供经验和借鉴,推动我国高等教育治理向更高层次的现代化迈进。

分析脚本运行的结果是否符合要求,决定每个用例自动化测试是否通过。对测试结果进行分类整理,生成测试报告。对于不能通过的测试结果要进行分析、记录和通报,方便相关的测试人员和开发人员了解测试结果。

2 自动化测试系统过程

为了取得自动化测试效率和效益的最大化,现选取当前最适合自动化的测试用例。例如自动化测试脚本编写异常复杂的用例、运行自动化测试脚本很难发现软件缺陷的用例等等,都可以不运用自动化测试,而运用手动测试代替。同时在两个测试版本的间歇进行新的脚本的开发,当有了一定数量的脚本之后,就让脚本运行起来,发挥作用[6]。现只要保证自动化运行的环境足够充足,那么每个测试版本所需的时间就会足够短,节省了大量的人力。

软件自动化测试是一个极为复杂的过程。在不同的测试环境下,测试的流程也会有所不同。一般都要根据实际情况,制定相应的测试流程。从软件测试对象出发,软件自动化测试系统实现框图,如图1所示。

对于不同语言版本的本地化测试,测试过程大体是相似的。首先根据AutoCAD软件的功能特征选择和设计测试用例,然后就是由测试用例编写测试脚本,接着就是将这些测试脚本作为输入运行程序,将通过测试得到的结果与先得到的英语版本的结果进行比较,最后就是将两者的比较结果写成测试报告,软件开发者根据测试报告再决定对软件如何处理[7]。

图1 自动化测试系统实现框图Fig.1 Automation testing system realization block diagram

3 系统实现

3.1 脚本生成

根据测试设计中的每个测试用例,利用Silk Test软件进行编程,完成自动化测试脚本。脚本编写完成,进行不断地调试,直至完成的脚本符合测试用例验证的要求。编程语言是4Test语言,整个脚本的思路是基于AutoCAD软件对话框对象来实现的。函数中执行图像录像功能的语句,把整个自动化测试的windows平台界面上的执行过程录制下来,方便判断软件是否存在缺陷。针对每个自动化测试的测试用例,编写测试脚本。每个测试用例都有数个测试确认点,测试脚本要保证每个测试确认点都能被执行自动化测试,生成测试结果。测试脚本程序示例如下:

3.2 结果信息读取

软件本地化测试的对象是本地化的软件,需要在本地语言的操作系统上进行。以Windows中文语言操作平台为例,用Silk Test工具运行该对话框对应的测试脚本,生成XML的结果信息文件,该XML记录了该对话框上的所有信息:文字信息、控件位置信息、控件属性信息。

图2中所示的AutoCAD软件对话框的XML部分信息示例如下:

在获取对话框信息之后,接着就要进行XML结果的分析。读取XML文件信息的程序片段为:

图2 自动计算机辅助设计软件对话框示例图Fig.2 AutoCAD dialog demonstration

其中,利用XPath的路径表达式来选取XML文档中的节点或者节点集[8]。如要读取出对话框的标题信息“选择样板”,则正确的 XPath语句是“/DIALOG/CONTROL[1]/Texts_LIST/@Texts_00000”。类似地,对话框上各控件的位置、大小、属性等信息都可获取到。如图2中的截断错误,都用红色线框标示出来,提升了后期错误分析的效率。

3.3 结果对比

国际化软件自动化测试包括软件国际化测试和软件本地化测试。软件的国际化测试一般是英语版本的测试,必须在本地化测试之前进行。首先进行国际化软件测试有助于判断软件国际化的设计程度,确定软件支持的国家区域,以及本地化是否容易[9]。本地化测试过程中,以源程序软件结果(标准英语版本)作为本地化软件的主要参考。运行英语版本和本地化版本的结果比较程序,本地化版本对话框都将与标准英语版本对话框的各项信息进行对比。经对比本地化软件存在缺陷时有三大类情况:

(1)本地化软件对话框的某项XML信息(控件的位置、大小、属性等)是空值;

(2)本地化软件对话框的某项信息值的长度和标准英语版本的不一致;

(3)本地化软件对话框的某项信息内容(控件的位置、大小、属性等)和标准英语版本的不一致。

结果比较程序的部分示例:

3.4 结果分析

在实际的项目测试过程中,每一步都有很具体的内容。例如在报告测试结果的同时,实际上还包含了对测试结果的统计和分析,测试工程师通过对结果进行分析来判断是否存在缺陷,将缺陷上传至Test Desk网站进行管理。

软件测试的目的是尽可能早和尽可能多地找出缺陷,然后软件开发人员根据测试报告确定缺陷[10]。在获取所有的软件对话框对比信息之后,总结出的典型错误类型如表1所示。

实践证明,采用自动化测试大幅度地减少了测试难度,并且能够确保测试结果满足如下标准[11]:

(1)所有的测试脚本都已经执行;

(2)所有的变化都已经及时地作了重新测试;

(3)通过重新运行测试脚本,所有发现的错误和缺陷都已经被纪录而且得到解决。

表1 对话框界面的典型错误类型Tab.1 Typical error type of dialog user interface

4 结 论

软件测试结果决定着软件产品质量的好坏。要在最短时间内完成软件测试工作,需要认真分析需求和研究设计说明书,做好自动化测试的每一步工作(测试计划、测试用例设计、测试开发、测试执行和测试报告)[12]。项目中有效地组织和安排人员,并且使用Silk Test等软件自动化测试工具,无疑可以帮助软件开发和测试人员大大提高测试效率。本文方法的优异之处在于应用对象是标准控件,获取定位非常快捷。在回归测试的时候,控件的位置发生改变,只需简单修改测试脚本,脚本维护很简单。目前图形用户界面(graphical user interface,GUI)的软件产品越来越多,使得自动化测试得到越来越广泛的应用[13]。总之,软件自动化测试是一项非常复杂的工作,许多问题还需要进一步研究。

[1]张 宁,何克右.基于XML的自动化测试工具的改进[J].电脑知识与技术,2009,36(5):10624-10625.

[2]闫茂德,许化龙,訾向勇.软件测试技术及其支持工具介绍[J].集美大学学报,2002,8(2):154-159.

[3]张爱玲.国际化软件测试技术的实现[J].微型机与应用,2010,29(15):10-12.

[4]薛冲冲,陈 坚.软件测试研究[J].计算机系统应用,2010,20(2):240-244.

[5]朱 芳,李 曦,赵振西.一种多平台自动化测试工具的设计和实现[J].计算机工程,2004,30(4):186-188.

[6]BUDNIK C J,CHAN W K,KAPFHAMMER G M.Bridging the gap between the theory and practice of software test automation[J].IEEE Conference Publications,2010,10(2):445-446.

[7]朱经纬.XML技术在软件测试自动化中的应用[J].计算机工程,2005,31(2):94-95.

[8]费 娟.基于Silk Test的软件测试自动化[J].广东通信技术,2006,20(3):66-69.

[9]张 靖.XML技术在软件可靠性测试中的应用[J].电子科技大学学报,2007,36(4):767-770.

[10]刘 腾.软件测试技术与自动化测试框架模型的研究与应用[J].电脑知识与技术,2009,26(5):7428-7431.

[11]李亚辉,吴宇红,陈 琳.基于 XML描述的类测试框架[J].微机发展,2005,15(8):85-87.

[12]高 静,兰雨晴,金茂忠,等.一个基于 XML的自动化类测试框架[J].微型机与应用,2007,6(1):201-205.

[13]马庆利,王 澜.自动生成 XML测试脚本的类测试[J].信息技术,2006,11(8):145-148.

猜你喜欢
测试用例软件测试脚本
酒驾
基于SmartUnit的安全通信系统单元测试用例自动生成
基于OBE的软件测试课程教学改革探索
数据库系统shell脚本应用
EXCEL和VBA实现软件测试记录管理
基于混合遗传算法的回归测试用例集最小化研究
关于软件测试技术应用与发展趋势研究
快乐假期
软件测试工程化模型及应用研究
基于依赖结构的测试用例优先级技术