当前位置:文档之家› 软件测试工具的分类和使用

软件测试工具的分类和使用

TECHNOLOGY技术应用81

软件测试工具的分类和使用

曹晓勇..
(江苏自动化研究所江苏连云港.. 2 22006)

摘要:软件测试是软件工程中的一个重要且复杂的过程,在软件测试的不同阶段中合理
地引入相应的测试工具,可以加快测试进度、提高测试质量。本文介绍了覆盖软件测试周期
的几种常用测试工具,并论述了这些工具在不同的测试阶段所能发挥的作用。

关键词:测试工具;测试管理;测试用例;静态分析;黑盒测试;白盒测试;负载测试

1引言

在软件测试过程中,我们经常采用手工测试和自
动测试相结合的方法。采用测试工具进行自动化测试
有如下的优势:1)速度。自动化测试是手工执行速
度的的成千上万倍。2)效率。如果采用测试工具来
分担测试案例的执行时间,那么测试人员就会有更多
的精力完成其它工作从而推进整个测试进度。3)准
确度和精度。测试工具每次执行相同的测试用例时,
会毫无差错地按照编写的脚本来检查结果,不会出现

人为制造的误差。

选择什么样的测试工具是执行测试之前必须要确
定的关键性问题。而在确定被采用的测试工具之前一
定要充分了解这个工具能做什么以及怎样做,这样才
能使之更好地促进测试工作的开展。下面就软件测试
周期中常见的测试工具及其功能作用进行描述。

2测试工具的分类和作用

目前测试界在用的测试工具很多,基本上覆盖了
整个测试周期。按照这些工具所完成的任务,基本可
以分为以下几大类:测试管理工具,测试用例设计工
具、静态分析工具、白盒测试工具、黑盒测试工具、
性能测试工具等。但在实际的测试过程中,可根据测
试任务书或测试计划中对该软件项目的要求组合使
用以上测试工具,例如单元测试阶段,可能不仅要用
到单元测试工具,还可能用到静态分析和性能测试工..

具,这就需要测试人员在执行测试之前,对测试工具

进行认真选型,并确定其所使用的测试阶段。..

2.1测试管理工具


个优秀的测试管理工具,可以大大提高测试效
率,节省测试成本。国内多数软件公司在测试管理工
具尤其是缺陷跟踪工具方面,早已经告别了用WORD;~nEXCEL来提交和跟踪缺陷的时代。



个优秀的测试管理工具至少具备以下功能:

1)测试需求管理;2)测试计划管理;3)与需求相
关的测试用例管理;4)测试执行管理,如分配测试
任务;5)缺陷管理:6)测试执行过程相关的统计和
分析,例如用例覆盖率分析,缺陷统计分析等。
通过测试管理工具,可以有效地管理测试需求并
确保每个需求都有相应的人员完成。项目

管理人员也
能对项目的测试投入和测试进程及工作效率有一个全
局的了解。从而知道自己的资源投入以及人员利用情
况,知道哪里可能出现意外的风险并对其加以预防和
控制。

测试管理工具中比较常用的是.. Mer cury
Ineatv公司的T srco,该管理工具是一个

trcieetDietr
基于Web的软件,用户可以通过局域网或l nternet来
访问它。T etDietr

srco将使用管理工具的对象从项目
管理人员扩大到了软件质量控制部门、用户和其他
相关的部门。其主要包含需求分析、测试计划、测
试用例、运行、缺陷管理等五个功能模块。通过T est
Director,可以使一个较小规模的测试队伍能完成复


82 TECHNOLOGY技术应用

杂的测试流程管理工作,实现对成本和时间的有效管
理。除此之外,通过该软件用户也可以及时地掌握软
件的测试和完成情况,并对整个过程进行监督和管
理,这对用户控制成本和及早采取应对措施也是有好
处的。..

2.2测试用例设计工具
这类测试工具分为两类,一类是基于需求的测试
用例设计工具,另一类是基于代码的测试用例设计工
具。

对于基于需求的测试用例设计工具而言,多用于
系统级别的测试,且在使用中不受软件开发语言和运
行平台的限制。用这种测试用例设计工具生成测试用
例前,事先需要人工将软件的功能需求转化为工具可
以理解的文件格式,再以这个文件作为输入,通过工
具生成测试用例,故使用这种工具需要高质量的需求
规格说明。

这类工具的典型代表是.. SoftTest。在使用..
SoftTest生成测试用例时,先将软件功能需求转化为
文本形式的因果图,然后让SoftTest读入,SoftTest
会根据因果图自动生成测试用例。

但这种工具也不是完全值得依赖的,若需求有更
新或遗漏,测试工具是无法补充测试用例的。所以,
它并不能完全代替测试工程师来设计测试用例,最好
的办法是在使用这些工具的同时,再审查补充-
--{1分

~
测试用例,这样效果会比较好。

另外一种基于程序代码的测试用例生成工具多应
用在单元测试中,它通过读入程序代码文件并分析代
码的内部结构,产生测试的输入数据。由于这种工具
与代码的联系很紧密,所以,通常一个测试工具只能
针对某一种编程语言。而且,这种测试工具生成测试
用例的机理决定了它只能产生测试的输入数据,而不
能产生输入数据后的预期结果。虽然这样的输出还不
能称之为真正意义上的测试用例,但在单元测试中也
的确给测试人员带来了不少的方便。..

2.3静态分析工具
静态分析工具不需要运行被测试的软件代码,
仅以源

代码文件为输入并对其软件复杂性、代码规范
性、质量度量元、内存使用等方面进行分析和检查,

以此来评估软件的实际情况与用户定制的质量模型的
差距。与人工进行静态分析和代码审查方式相比,使
用工具不仅可以提高工作效率,而且可以保证分析工
作的全面性。现在的静态分析工具一般提供以下两个
功能:分析软件的复杂性、检查代码的规范性。

具有分析软件复杂性的静态分析工具的典型代
表是McCabe,其内部包含软件质量标准化组织制定
的ISO/IEC9126质量模型,该模型用来量化地衡量一
个软件产品的质量,除此之外,McCabe还从其它的
质量方法学中吸收一些元素,比如Haltn质量方法

sed
学、McCabe质量方法学。这些静态分析工具允许用
户调整质量模型中的一些数值,以更加符合实际情况
的要求。

具有检查代码规范性功能的静态分析工具,其
内部包含了得到公认的编码规范,比如函数、变量、
对象的命名规范,函数语句数的限制等等,工具支持
对这些规范的设置。工具的使用者可根据情况,裁减
出适合自己的编码规范,然后通过工具对代码进行分
析,定位代码中违反编码规范的地方。其典型代表是..
LDRA Testbed系列测试工具。LDRAtestbed并非单
纯的静态分析工具,它是LDRA一系列测试工具的集
合,包含动态测试。事实上,很多动态测试工具在进
行动态测试之前,都会对代码进行一定程度的静态分
析,LDRAtestbed即是如此。该工具在使用时,首
先选择静态分析的内容和程度,例如圈复杂度分析、
静态数据流分析、交叉索引分析、信息流分析等等。..
LDRA进行静态分析比较值得一提的是其编码规则的
修改和定制功能。它既可以修改既有的规则集里某些
规则的适用与否,也可以自己定制规则集,这是该测
试工具作为静态分析工具的一个亮点。..

2.4白盒测试工具
白盒测试工具一般是针对代码进行测试,测试
中发现的缺陷可以定位到代码级。由于多用于单元测
试阶段,因此也被称为单元测试工具。单元测试不仅
要验证被测单元的功能实现是否正确,还要查找代码
中的内存使用错误和性能瓶颈,并且为了检验测试
的全面性,还要对测试所达到的覆盖率进行统计和
分析。因此白盒测试工具多为一个套件,其中包含


了动态错误检测、时间性能分析、覆盖率统计等多

个工具。目前被普遍使用的该类测试工具套件主要

有Cour公司的N MeaDvateSui,

mpwaeugePrnrtdo
Rainlainlutnepie


toa公司的RtoaSieEtrrs等。

动态错误检测工具,用来检查代码中类似于内存

泄露、数组访问越界这样的程序错误。其

典型代表是..

RainlieEtrrs套件中的Pr
rrf测试工具,但

toaSutnepieiy

此测试工具的局限性在于仅适用于Windows平台。

时间性能测试工具,记录被测程序的执行时间。

小到一行代码、一个函数的运行时间,大到一个exe

或dl
ll文件的运行时间,性能分析工具都能清晰的记

录下来。通过分析这些数据,能够帮助我们定位代

码中的性能瓶颈。时间性能测试工具的典型代表是..

RainlSieEtrrs套件中的Qu niy

toautnepieatf~试工
具,如puiyno

rf一样,其局限性在于仅适用于Widws

平台。

覆盖率统计工具,统计出我们当前执行的测试

用例对代码的覆盖率。覆盖率统计工具提供的信息,

可以帮助我们根据代码的覆盖情况,进一步完善测试

用例,使所有的代码都被测试到,保证单元测试的全

面性。覆盖率统计工具的典型代表是RainlSie

toautEntrrs套件中的C vrg测试工具,如p rf和

epieoeaeuiyQuatf一样,其局限性在于仅适用于Widws

nivno平

台。

动态错误检测工具、性能分析工具、覆盖率统
计工具的运行机理是:用测试工具对被测程序进行编
译、连接,生成可执行程序。在这个过程中,工具会
向被测代码中插入检测代码。然后运行生成的可执行
程序,执行测试用例,在程序运行的过程中,工具会
在后台通过插入被测程序的检测代码收集程序中的动
态错误、代码执行时间、覆盖率信息。在退出程序
后,工具将收集到的各种数据显示出来,以供分析。..

2.5黑盒测试工具
黑盒测试工具也被称为功能测试工具,是软件
测试工具中非常活跃的一类工具,现在发展得已经较
为成熟,象MeruyItrcienunr

crneatv公司的WiRne,..
Rainloo,都是被广泛使用的功能测试工

toa公司的R bt
具。功能测试工具最能体现测试自动化的理论,通常..

TECHNOL0GY技术应用.. 83

也称为功能测试自动化工具。多用于确认测试阶段及
其对应的回归测试中,其测试对象多为拥有图形用户
界面的应用程序。



个成熟的功能测试工具是自动化程度较高的,

主要包括以下几个基本功能:录制和回放、检验、可

编程。

录制,就是记录下对软件的操作过程,回放,就

是象播放电影一样重放录制的操作。启动功能测试工

具,打开录制功能,依照测试用例中的描述一步一步

地操作被测软件,测试工具会以脚本语言的形式记录

下操作的全过程。依照此方法,可以将所有的测试用

例进行录制。在需要重新执行测试用例时,回放录制

的脚本,测试工具依照脚本中的内容,对被测软件进

行操作。这样除了能缩短测试所需要的时间外,还能


保证测试的完整、全面性,使测试人员能有更多的时

间来设计新的测试用例,从而提高测试质量。

录制只是实现了测试输入的自动化。一个完整的
测试用例,由输入和预期输出共同组成。所以,光是录
制回放还不是真正的功能测试自动化。测试自动化工具
中有一个检验功能,通过检验功能,在测试脚本中设置
检验点,使得工具能够对操作结果的正确性进行检验,
这样,就实现了完整的测试用例执行自动化。软件界面
上的一切界面元素,都可以作为检验点来对其进行检
验,比如文本、图片、各类控件的状态等。

脚本录制好了,也加入了检验点,一个完整的测
试用例已经被自动化了。但假如还想对脚本的执行过
程进行更多的控制,比如依据执行情况进行判断,从
而执行不同的路径,或者是对某一段脚本重复执行多
次,那么就要对录制的脚本进行编程,目前主流的功
能测试自动化工具都支持对脚本的编程。通过对脚本
进行编程,能够使脚本更加灵活,功能更加强大,脚
本的组织更富有逻辑性。..

2.6负载测试工具
这类测试工具的主要目的是度量应用系统的可
扩展性和性能,是一种预测系统行为和性能的自动化
测试工具。在性能测试过程中,通过实时性能监测来
确认和查找问题,并发现系统的瓶颈所在,从而针对
所发现问题对系统性能进行优化,确保应用的成功部


84 TECHNOLOGY技术应用

署。通常所说的强度测试、容量测试以及压力测试,
都属于性能测试的范畴,只是执行测试时的软、硬件
环境和处理的数据量不同。经常进行的性能测试包
括:系统能承受多大程度的并发操作;系统在网络较
为拥挤的情况下能否继续工作;系统在内存、处理器
等资源紧张的情况下是会否发生错误等等。

使用性能测试工具对软件系统的性能进行测试
时,大体分为以下几个步骤:

首先,录制软件产品中要对其进行性能测试的功
能部分的操作过程。这一步与前面功能测试自动化工
具中的那个录制过程很相似。功能录制结束后,会形
成与操作相对应的测试脚本。

然后,根据具体的测试要求,对脚本进行修改,
对脚本运行的过程进行设置,如设置并发的用户数
量、网络的带宽等,使脚本运行的环境与我们实际要
模拟的测试环境一致。

最后,运行测试脚本。性能测试工具会在模拟的
环境下执行我们所录制的操作,并实时的为我们显示
与被测软件系统相关的各项性能数据。

目前普遍使用的负载测试工具有QAL0ad、..
L0adRUrlner等,其中以L0adRUnner为首选。..
LoadRunner能够对整个企业架构进行测试,

它通过
模拟成千上万名用户和实时性能监测来确认和查找问
题。通过使用LoadRunner,企业能最大限度地缩短测
试时间,优化系统性能,加速应用系统的发布周期。

3测试工具的选择

目前市面上流行的测试工具很多,对测试工具的
选择可综合考虑以下几个原则:

(1)功能
功能是选择测试工具是最应该首先考虑的问题。
在测试工具选型中,并非功能越多越好,工具能够帮
助测试人员完成何种工作,效果如何,这是重要的参
考因素。另外,考虑测试工具的功能要结合软件所
处的生命周期阶段,不同的生命周期所需要的测试
重点不一样,那么对测试工具的功能需求自然也就
不一样。例如程序编码阶段可能需要Teeoi公司的

llgcgsoe软件、R oauy

Loicpatinl公司的Prif系列等;测试

和维护阶段可能需要Compuware的DevePartner和..
llc公司的L soe等。

Teeogiogicp

(2)性能
测试工具的性能主要考虑以下因素:测试工具可
否跨平台使用,其与操作系统和开发工具的兼容性如
何;测试工具与被测试软件的集成能力如何;测试结
果的展示能力如何,能否生成报表或其他格式,测试
数据是否方便导入导出等。

(3)价格
考虑工具的价格,分析其性价比是否值得购买。
(4)测试工具引入的连续性和一致性。
在选择测试工具时,有必要对测试工具的选择
有一个全盘的考虑,分阶段、逐步地引入测试工具。
使用了测试工具,并不是说已经进行了有效测试,测
试工具通常只支持某些应用的测试自动化,因此在进
行软件测试时常用的做法是:使用一种主要的自动化
测试工具,然后用传统的编程语言如:Java、C++、..
Viulai等编写自动化测试脚本以弥补测试工具

saBsc
的不足。同时,也可有效避免在测试工具上的重复选
型、重复购买等行为。

4结束语

本文论述了测试工具的分类以及在不同种类的测
试工具在软件测试过程中的作用。但是很明显,测试
工具也并非万能的,它有自身的很多局限性,在实际
中,软件测试工具不能取代手工测试,某些情况下手
工测试可以比自动测试发现更多的缺陷。所以要达到
好的测试效果和效率,除了给工具进行正确定位并选
择适合的测试工具以外,正确的测试理论和测试技术

是必不可少的。

参考文献..
[1mKae,akFlnue.

]CenrJcak,Hu gQUOCNgynTesigCoueSfwaeM]北京:

tnmptrotr[.机械
工业出版社&中信出版社,20
004.
『1软件测试技术经典教程.科学出版

2
22赵斌.北京;
社,2007.

【3】中国软件测试时代.ht
ttp:/
//www.testage.net/.


相关主题
文本预览
相关文档 最新文档