商讯信箱
用户名: @
密  码:   注册|忘记密码
登录
个人用户经销商
您的位置:首页 > 技术频道 > 正文

关于GUI自动化测试的收益回收期分析

作者:ITPUB论坛  2008-05-15

【IT168 技术文章】

    引言

    对于一个软件产品的评估,从用户角度来讲,程序的界面部分是相当受关注的,这里包括程序界面的交互能力、稳定性、健壮性等,同时今天的软件产品越来越复杂,通常一套软件包括会大量的用户界面,每个界面里又有很多的控制对象,以及各种信息的交互。对于这样一套软件,即便测试只覆盖到部分界面,工作量也是相当大的。由此人们想到利用工具来进行自动化测试,本文希望通过对自动测试与手工测试的比较,指导人们进行测试方法的选择。

    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是相关实验显示的比较结果:

    实验的前提条件:

    测试执行前录制程序运行产生测试脚本,在脚本重复回放期间,是完全自动执行的,没有做进一步修改,及其它人工的干预,尽管这在实际情况中会有一定的困难。

    表1:

    注:测试准备和测试执行是以小时工作量为单位

    Vm:测试设计的时间支出;

    Va:测试设计+重复测试的脚本定制、数据准备等支出;

    Dm:手工执行一次的时间;

    Da:自动测试执行完成后的整理工作量。不含执行过程的时间,因测试是在CR-TOOLS的管理下自动执行的,不需人工干预。

    En := Aa/Am = (Va + n*Da)/ (Vm + n*Dm).

1 2
【内容导航】
第1页: CR-tools介绍 第2页: 实验分析
©版权所有。未经许可,不得转载。
[责任编辑:robert]
[an error occurred while processing this directive]
[an error occurred while processing this directive]
[an error occurred while processing this directive]