欢迎来到 广东科鉴检测工程技术有限公司
全国咨询热线: 400-108-9880
联系我们

地址:广州科学城玉树工业园J栋103房 105房 107房

电话:400-108-9880

传真:020-3170 7367

邮箱:kj-mark@svtest.cn

新闻动态
软件功能自动化测试方法比较

自动化测试技术的发展经历了简单的录制回放、脚本测试和数据测试的阶段,同时也代表了自动化测试技术方法。下面对比这三种自动化测试的技术方法,比较其优缺点。

1.录制回放技术

  大多数测试过程分为测试计划、测试需求分析、测试设计和案例编写、测试执行、测试分析等几个阶段,测试执行和测试问题报告是属于机械的、多次重复的活动,大概要占测试总工作量的80%左右,最适合被自动化,也是首先应该被自动化的。测试案例编写活动也有部分工作可以被自动化,如自动产生脚本框架等。测试执行活动又分为输入数据、执行测试、验证测试数据三个部分,其中工作量最大、实现起来最容易的就是输入数据和执行测试过程的自动化,最初采取的方法就是由计算机记录手工操作的过程和数据,再次执行测试时,根据上次记录内容回放即可,就不需要手工输入了,这就是录制/回放技术,后来,为了实现验证测试数据的自动化,在录制过程后,进行了增强工作,可在脚本中加入同步、检查点,并对部分数据进行参数化,实现初步的数据驱动。

 软件功能自动化测试方法比较(图1) 

使用这种技术,其优点如下:

1.         使用简单,不需要深入的工作或计划,可很快启动手工录制工作,可以快速开始自动化,在短时间开发出大量简单的测试,启动成本低;

2.         使用者不需要了解编程技术(假设不需要修改脚本);

3.         对实际执行的操作可以跟踪审计。

但是,绝大部分采用这种技术进行自动化回归测试的组织都失败了,失败的一个共性的原因是因为这种技术虽然初期启动成本低,但是随着测试过程的进行,后期维护成本非常高,使得不可能使用这种技术构建长期的自动测试系统,具体来说,这种技术存在以下问题:

1.         产生自动测试的过程繁琐,效率低:产生可行的自动测试的时间比手工测试长210倍;

2.         一切依赖于录制过程中捕获的内容,故只能测试已经能够正常执行的功能;

3.         存在录制噪声,产生的脚本是非结构化的,维护工作量巨大;

4.         脚本、数据和验证条件是捆绑在一起的,任何一个修改,就必须重新录制或者修改脚本;

5.         易受软件改变的影响,软件改变后必须重新录制脚本和验证条件;

6.         如果回放时发生了录制脚本时没有发生的事情,将引起整个测试失败。

  正因为以上原因,录制-增强-回放技术只使用于少量特殊情况,如培训演示、只使用一次的测试脚本,界面和操作不变的测试等,对于长期、大量的自动回归测试来说,这种方法是不可行的。

1.2 脚本技术

  既然录制回放技术维护工作量巨大,无法使用这种技术构建长期的、大量测试的测试系统,那么如何改进自动回归测试系统的可维护性呢?人们发现,自动回归测试系统本身也是一个软件系统,其基本工作元素就是测试脚本,测试脚本也是一种软件程序代码,也存在各种程序错误,改进自动回归测试系统的可维护性,就是要改善自动测试脚本的可维护性,既然自动回归测试脚本是软件程序,那么就可以使用软件开发的技术来改进自动回归测试脚本的可维护性,这就是结构化的编程方法(当时还没有出现面向对象的技术)。

  这种结构化的脚本技术又叫功能分解技术,是一种基于任务的技术,其工作原理是根据被测系统需要完成的任务和功能,对这些功能和任务进行分解,采用结构化编程技术完成实现这些功能的脚本,不同测试中执行重复的任务时,使用同一个脚本,当重复任务发生改变时,也只需要修改一个脚本,对该脚本来说,数据与脚本是分离的,可以把数据作为脚本的参数,也可以把需要的输入数据和验证数据放到指定的文件中,由脚本读取。

  这种技术的特点是发展了结构良好的、有文档的、健壮的、可维护的测试能力,测试项目成为工程项目,其关键特征是部分测试脚本已经开始具有可复用性。另外,由于测试脚本包括错误捕获和恢复逻辑,比录制回放技术具有更高的可靠性,可以预知可能发生的错误和意外事件,通过编程进行处理,使自动回归测试能顺利进行。

 总结起来,这种技术优缺点如下:

优点:

1.         可维护性较强

²  采用模块化设计,如果业务功能改变,只需要改变12个脚本,维护开销低于录制回放技术

²  复杂的测试用例可以通过在一个主脚本中调用业务功能脚本实现

²  对于需要重复执行的测试任务,只需要使用一个脚本,删除了明显的重复,通过把不同的输入/验证数据作为参数,或者放到文件中,使数据与脚本分开,脚本可以被不同用例使用

2.         可靠性

²  不存在录制噪声,脚本经过测试后,可靠性比较高

²  意外事件(如弹出菜单、对话框等)可以预先考虑并通过编程解决

  这种技术虽然维护成本比录制回放技术低,但是还存在一些问题,主要缺点如下:

²  每个功能都需要一个特定的测试脚本,而且大量脚本需要手工编写

²  重复使用的脚本(共享脚本)通常只占被测软件很小的一部分

²  脚本数量增多,增加了更多的文档,管理难度加大

1.3 数据驱动技术

   使用脚本技术后,还存在一些的问题,其一,由于脚本技术是一种基于任务的技术,与应用系统的功能是紧密相关的,通常不同的应用系统之间的差异比较大,如一个银行的应用系统和一个税务的应用系统,他们之间可复用的脚本很少。二是由于采用这种技术,大量脚本还是与数据捆绑在一起的,如果数据发生变化,也需要具有编程经验的人员修改脚本,并调试脚本,成本比较高。

   如何解决这些问题呢?很显然,需要进一步提高共享脚本的数量。通过进一步思考,人们发现任何自动测试的终极目标都是自动完成一套与测试需求相对应的有计划的测试,可以由测试计划驱动测试过程,测试工作的中心是测试数据,而不是测试脚本,测试脚本只是为了传递测试数据,应把测试脚本和测试数据分开,由测试数据来驱动自动回归测试过程,这就是所谓的数据驱动测试或关键字驱动测试,也叫基于动作(Action)的测试或Action Word方法,与前面说到的数据驱动不同,这里说的数据驱动测试不只是简单把外部数据输入到AUTApplication Under Test,被测系统)中,数据驱动测试是一种数据被包含在输入数据文件中,并且数据控制自动化测试脚本执行的流程和动作的测试,只有这样,才能实现在不同应用间的复用。

  这种测试方法要求我们分开测试数据和测试脚本,测试脚本是可以复用的,因此也要求测试脚本是参数化的。具体来说,采用这种技术就是在测试数据中指定测试执行的步骤,以及每个步骤执行时操作的对象、动作和数据,测试脚本的作用就是读入数据,并根据数据的要求执行相应的动作,而面向对象技术的出现,也促进了该技术的发展。

另外,由于自动测试脚本本身也是一种软件,也存在逻辑错误和其他各种缺陷,也需要维护,因此,在自动回归测试过程中,除了要维护被测系统相关的代码、数据、文档外,还需要维护自动测试系统本身的脚本、数据和文档,维护成本非常高,因此可以说,创建结构化的、基于组件的测试脚本并使测试脚本与其执行的数据相分离是自动化测试成功的唯一途径。

  这种技术有多种实现方法,通常都会需要一个框架或引擎,用它来解析输入数据中的动作指令,执行指令要求的动作,而此框架和引擎的好坏,会直接影响自动回归测试系统能否成功。

这种方法优缺点分析如下:

优点:

1.         可维护性

²  使用输入文件的数据控制自动化测试的执行流程和动作

²  在特定框架下,可以非常容易地产生健壮的脚本,甚至自动产生

²  数据与脚本分开,数据维护非常简便,输入数据文件格式简单,维护方便,调整数据不需要修改脚本

²  可以借助占位符(变量)允许动态数据输入

2.         可靠性

²  不存在录制噪声,基于框架的脚本开发更容易,更健壮

²  意外事件(如弹出菜单、对话框等)可以预先考虑并通过编程解决

3.         可复用性:不是为一个应用开发脚本,脚本是封装的,可以在不同应用间复用

4.         降低人员要求:只需要一个工具专家,业务人员不需要了解测试工具

缺点:

²  需要手工维护大量的表格文件或数据文件,并需要与测试用例、测试脚本保持同步

1.4 各种自动测试技术比较

应该说,这三种技术是对技术实现方法的一种分类,在实际实施自动回归测试系统时,不一定限制在某一种实现技术上,也有可能在一个具体的实施项目中会用到所有三种技术。另外,这三种技术的实现具体细节会根据实际应用环境、实施方法的不同而不同,尤其是脚本技术和数据驱动技术,不同实现方法对自动回归测试系统的影响很大,下表给出了一般性的评价,仅供参考。

1-220G31I239415.png

联系我们

电话:400 108 9880 

网址:www.svtest.cn

  邮箱:kj-sv@svtest.cn

传真:020-31707367


联系地址
广州:广州开发区科学城玉树创新园 J 栋 103 房
北京:北京市海淀区永定路 15 号院南门 208 室
长沙:长沙市雨花区保利东郡 8 栋 1803 房
深圳:深圳市南山区西丽深圳大学城学苑大道 1068 号(深圳先进院内)
石家庄:石家庄市鹿泉区山尹村镇滨海路19号2号楼



联系我们

地址:广州黄埔区科学城玉树工业园 敬业三街2号J栋103房,105房.107房

传真:020-3170-7367

400热线:400-108-9880

邮箱:kj-mark@svtest.cn

粤ICP备2021012026号-2

扫一扫关注我们
Copyright ©  2017 广东科鉴检测工程技术有限公司®  版权所有