分享
 
 
 

自动化测试软件的体验与比较

王朝other·作者佚名  2006-01-31
窄屏简体版  字體: |||超大  

1. 研究主要内容

(1) 自动化测试

(2) TestComplete介绍

(3) Winrunner介绍

(4) 两款软件的对比

2.

自动化测试

由于很多的软件测试工作包括大量的近似重复的工作,会给测试工程师带来很大的工作量,这样我们就需要用自动化测试的软件来实现测试的自动化,来减少测试人员的工作量,从而提高效率。

因为软件测试的工作量很大(40% 到60% 的总开发时间),而又有很大部分适于自动化,因此,测试的改进会对整个开发工作的质量、成本和周期带来非常显著的效果。

自动化测试的有点有很多:快速(Fast)、可靠(Reliable)、可重复(Repeatable)、可程序化(Programmable)、可重用的(Reusable);广泛的(Comprehensive);它的这些有点使得自动化测试在软件测试中的地位不断提高,而且也是发展的趋势。

自动化测试的步骤大概是:

1. 测试个案(test case ,或称为测试用例)的生成;

2. 测试的执行写控制;

3. 测试结果与标准输出的对比;

4. 不吻合的测试结果的分析、分类、记录和通报;

5. 总测试状况的统计,报表的产生

6. 自动测试与开发中产品每日构建(build )的配合。

3.

TestComplete介绍

现在的大多数比较著名的自动化测试软件的原理都是大致相同的,它们都是通过对被测软件的操作过程的录制和回放来完成测试的。

本文现在介绍的TestComplete是近年来异军突起的新兴的软件;它曾在2003年Delphi Informant杂志读者选择奖 中获得最佳测试与QA工具优势明显。其产品TestComplete获得60%的选票;在第14届Jolt大奖评选中获得测试工具的Jolt大奖。我在实习中也是比较多的接触到这款软件

与它的名字相同,TestComplete是一个完整的测试应用系统,它集成了如下的功能:

l

功能测试

l

单元测试

l

分布式测试

l

HTTP performance testing

l 回归测试:就是指重复一个已经成功执行的测试用例,并把新执行得到的结果与原来的 正确的结果相比较。回归测试很容易理解但是如果没有自动化的测试工具来保证大多数的细节,那么实现起来将是十分困难的。因为工作量很大,而且人工操作很容易忽略细节。而TestComplete就为我们提供了自动化回归测试的能力。

接下来我想介绍一下这款软件的特点:

1.

获取和保存被测对象的属性:

l

TestComplete可以获取被测软件的对象属性并可以将其属性值记录下来和下一次运行时的相应属性值作比较。

l

需要注意的问题是:我们的Java程序必须要编译成Open Application否则TestComplete无法自动认出其中的大部分对象。

l

脚本代码如下:

l

// Compares property values

if (! Objects.Compare(w, CollectionName))

Log.Message("Properties have been changed.")

2. 抓取软件运行时的图片

可以用TestComplete获取被测软件运行是的图片(包括全屏和子窗口)来和已知图片进行比较,并可一图片形式保存下本次运行的结果。

比较图片的代码:

if ( !

Regions.Compare(w, Classju,false,false,true,1700))

//比较当前的运行程序的图片,是否与之前保存为CLassju的图片一致。类聚图

Log.Error("Regions are not identical")

else Log.Message("Regions of Classju is

identical")

保存图片的代码:

w=Sys.Activewindow();

Str = Utilities.DateTimeToStr(Utilities.Now())

s = Utilities.StringReplace(Str,":","'",1)

Regions.SaveToFile(w,

title+""+s+".bmp")

3. 比较文件

在测试时,我们有可能会用到比较两个文件的功能来保证被测试的软件的输出与预期值相同。这个功能将会对两个文件逐字节的比较

比较文件的代码如下:

if (!

Files.Compare("C:\\Work\\OrdersList.txt","C:\\Work\\OrdersList_old.txt")

Log.Warning("List

of orders was changed");

4.

支持多种语言和开发环境

TestComplete支持所用Visual Basic, Visual C++, Delphi, C++Builder, Java, Visual

Studio .NET, and Visual FoxPro开发的应用程序和模块。这所有的自动测试软件中时绝无仅有的。

5. 支持多种脚本语言

我们不必为了使用TestComplete而去学习其他的脚本语言,而是用我们熟悉的脚本语言即可。因为TestComplete支持以下的所有脚本语言:VBScript, DelphiScript,

JScript, C++Script or C#Script 。

6.事件处理(Event handling)

TestComplete

可以在脚本运行的时候跟踪系统所发生的事件,并根据测试人员预先编好的事件处理程序对相应的事件进行处理。例如,对系统中的一些意外的窗体的弹出,我们可以编写相应的程序对其进行处理,以避免测试的意外中断。

4.

Winrunner介绍

Mercury

Interactive公司的WinRunner是一种企业级的功能测试工具,用于检测应用程序是否能够达到预期的功能及正常运行。通过自动录制、检测和回放用户的应用操作,WinRunner能够有效地帮助测试人员对复杂的企业级应用的不同发布版进行测试,提高测试人员的工作效率和质量,确保跨平台的、复杂的企业级应用无故障发布及长期稳定运行。

Winrunner 7.6的特点主要有如下几个方面:

l

用WinRuuner创建一个测试,只需点击鼠标和键盘,完成一个标准的业务操作流程,WinRunner自动记录你的操作并生成所需的脚本代码。这样,即使计算机技术知识有限的业务用户轻松创建完整的测试。你还可以直接修改测试脚本以满足各种复杂测试的需求。

l

但是 WinRuuner对Java的支持不是很好,无法识别出绝大部分的对象

l

已经在网上看到Java的插件,但是由于License的问题,无法使用。

用WinRuuner创建一个测试,只需点击鼠标和键盘,完成一个标准的业务操作流程,WinRunner自动记录你的操作并生成所需的脚本代码。这样,即使计算机技术知识有限的业务用户轻松创建完整的测试。你还可以直接修改测试脚本以满足各种复杂测试的需求。WinRunner提供这两种测试创建方式,满足测试团队中业务用户和专业技术人员的不同需求。

插入检查点

在记录一个测试的过程中,可以插入检查点,检查在某个时刻/状态下,应用程序是否运行正常。在插入检查点后,WinRunner会收集一套数据指标,在测试运行时对其一一验证。WinRunner提供几种不同类型的检查点,包括文本的、GUI、位图和数据库。例如,用一个位图检查点,你可以检查公司的图标是否出现于指定位置。

检验数据

除了创建并运行测试,WinRunner还能验证数据库的数值,从而确保业务交易的准确性。例如,在创建测试时,可以设定哪些数据库表和记录需要检测;在测试运行时,测试程序就会自动核对数据库内的实际数值和预期的数值。WinRunner自动显示检测结果,在有更新/删除/插入的记录上突出显示以引起注意。

增强测试

为了彻底全面地测试一个应用程序,需要使用不同类型的数据来测试。WinRunner的数据驱动向导( Data Driver Wizard)可以让你简单地点击几下鼠标,就可以把一个业务流程测试转化为数据驱动测试,从而反映多个用户各自独特且真实的行为。

以一个订单输入的流程为例,你可能希望把订单号或客户名称作为可变栏,用多套数据进行测试。使用Data Driver Wizard,你可以选择订单号或客户名称用数据表格文件中的哪个栏目的数据替换。你可以把订单号或客户名称输入数据表格文件,或从其它表格和数据库中导入。数据驱动测试不仅节省了时间和资源,又提高了应用的测试覆盖率。

WinRunner还可以通过Function Generator增加测试的功能。使用Function Generator可以从目录列表中选择一个功能增加到你的测试中以提高测试能力。例如,你可以选择”calendar”,然后从日历功能的下属目录中选择,如Calendar_select_date(),然后你可以直观地输入参数,把这个功能插入到你的测试中。

针对相当数量的企业应用里非标准对象,WinRunner提供了Virtual Object Wizard来识别以前未知的对象。使用Virtual Object

Wizard,你可以选择未知对象的类型,设定标识和命名。在录制使用该对象的测试时,WinRunner会自动对应它的名字,从而提高测试脚本的可读性和测试质量。

运行测试

创建好测试脚本,并插入检查点和必要的添加功能后,你就可以开始运行测试。运行测试时,WinRunner会自动操作应用程序,就象一个真实的用户根据业务流程执行着每一步的操作。测试运行过程中,如有网络消息窗口出现或其它意外事件出现,WinRunner也会根据预先的设定排除这些干扰。

分析结果

测试运行结束后,你需要分析测试结果。WinRunner通过交互式的报告工具来提供详尽的、易读的报告。报告中会列出测试中发现的错误内容、位置、检查点和其它重要事件,帮助你对测试结果进行分析。这些测试结果还可以通过Mercury

Interactive的测试管理工具TestDirector来查阅。

维护测试

随着时间的推移,开发人员会对应用程序做进一步的修改,并需要增加另外的测试。使用WinRunner,你不必对程序的每一次改动都重新创建你的测试。WinRunner可以创建在整个应用程序生命周期内都可以重复使用的测试,从而大大地节省时间和资源,充分利用你的测试投资。

每次记录测试时,WinRunner会自动创建一个GUI Map文件以保存应用对象。这些对象分层次组织,既可以总览所有的对象,也可以查询某个对象的详细信息。一般而言,对应用程序的任何改动都会影响到成百上千个测试。通过修改一个GUI

Map文件而非无数个测试,WinRunner可以方便地实现测试重用。

帮助你的应用程序为无线应用作准备

随着无线设备种类和数量的增加,你的应用程序测试计划需要同时满足传统的基于浏览器的用户和无线浏览设备,如移动电话、传呼机和个人数字助理(PDA)。无线应用协议是一种公开的、全球性的网络协议,用来支持标准数据格式化和无线设备信号的传输。使用WinRunner,测试人员可以利用微型浏览模拟器来记录业务流程操作,然后回放和检查这些业务流程功能的正确性。

5.

两款软件的对比

特性

WinRunner

TestComplete

易于安装

GUI对象和脚本分离

toolbar/field定制

可以

可以

支持测试对象

HTML,DHTML,JavaScript,VBScript,XML,JAVA

applets, ActiveX,VB, PowerBuilder,Delphi,Terminal

Emulator,,Oracle,SAP,PeopleSoft, Siebel

Visual Basic, Visual C++, Delphi,

C++Builder, Java, VisualStudio .NET, and Visual FoxPro

脚本语言

TSL

VBScript, DelphiScript, JScript,

C++Script or C#Script

允许通过数据库验证数据

通过ODBC及本地数据库连接

文件比较

应用程序改变后的脚本维护

直接修改GUImap

更改脚本

数据库支持

市场流行的数据库

市场流行的数据库

无人看管下的自动执行测试

通过Testdirector

允许

分布式测试控制/同步/执行

Testdirector支持

支持

自动创建测试结果日志

非预期错误的恢复

允许

允许

与测试管理工具接口

Testdirector

自带Case管理功能。

价格

昂贵

$399

Add-in收费

部分收费

不收费

总论

在全球的市场占有率较高,功能全面,价格昂贵

在国内的推广还处于起步阶段,相关资料和经验很少。

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有