摘 要:软件的界面测试是一项复杂而烦琐的工作,本文对程序界面的手工测试与自动测试两种方法进行比较,重点讨论了自动测试的收益回收期问题。
关键词:程序界面测试 捕捉/回放工具
the Break even of GUI Automation Test
BEIJING HORIZON INFORMATION & TECHNOLOGY CO.,LTD.
Ding Yuweidyw@horizon-biz.com
Abstract: since GUI testing is an complicated and annoying work, here we compared automation and manual test , talk about the break even of automation test.
key words:GUI Testing GUI CR-tools(capture & replay tools)
引言
对于一个软件产品的评估,从用户角度来讲,程序的界面部分是相当受关注的,这里包括程序界面的交互能力、稳定性、健壮性等,同时今天的软件产品越来越复杂,通常一套软件包括会大量的用户界面,每个界面里又有很多的控制对象,以及各种信息的交互。对于这样一套软件,即便测试只覆盖到部分界面,工作量也是相当大的。由此人们想到利用工具来进行自动化测试,本文希望通过对自动测试与手工测试的比较,指导人们进行测试方法的选择。
CR-tools介绍
程序界面测试(GUI testing)主要包括两项内容:界面显示测试和界面功能测试,这里重点讲解功能测试(black box functional testing)。界面功能的自动测试可以用捕捉/回放工具来完成,(GUI CR-tools :capture & replay tools ),但是在实际应用过程中,常常因为CR-tools固有的缺隙而大大削弱了它的效力,从而引起人们对自动化测试工具可用性的忧虑。如:
CR-tools对GUI对象的识别能力严重依赖于被测软件所使用的编程语言,这一因素大大增加了测试脚本的维护工作量。例如如果CR-tools可以识别C++语言开发环境、OO方法定义的对象(如buttons、menu等),通常在界面布局调整时,它仍然可以识别出新界面上的所有元素,但是很可能它不能够识别Oracle应用程序,如用OCX开发的程序界面中的对象,这时我们不得不向供应商寻找相应的支持选件。
CR-tools通过对程序运行过程的录制产生的测试脚本,通常只能做为设计测试用例的初始原型,必须经过大量的修改和对脚本编程的工作,才能重复利用,如增加检查点(check point)、进行参数化等。因此,GUI自动测试的设计也是一项复杂的编程与开发工作。
当然以上问题我们也可以通过采取一些措施尽可能避免,如通过建立测试用例库,实现用例的重用、脚本功能的扩展、脚本语言的规范化、以及减少维护工作量等。所以,虽然自动化测试工具还存在很多问题,但它最大的好处是可以通过用例的重用,来大大减少重复的测试设计工作量,这也是至今人们还坚持不懈研究自动化测试技术的原因。
手工测试与自动化测试的比较
下面我们对手工测试与自动测试的成本开销进行比较,找出影响自动化测试效率的重要因素:自动测试的重复运行次数。
首先我们把软件开发过程定义为六个阶段:定义、分析、设计、实现、测试、发布,其中的测试阶段又可以细分为:测试设计、测试执行、测试分析、问题解决。.
表1是相关实验显示的比较结果: