《自动测试工具汇总》由会员分享,可在线阅读,更多相关《自动测试工具汇总(13页珍藏版)》请在金锄头文库上搜索。
1、一、自动软件测试工具的分类目前市场上的软件测试工具,从测试方法上一般分为白盒测试工具、黑盒测试工具、 测试管理工具以及辅助测试工具四大类。a) 白盒测试工具白盒测试工具一般是针对代码进行测试,测试中发现的缺陷可以定位到代码级,根据 测试工具原理的不同,又可以分为静态测试工具和动态测试工具。i. 静态测试工具静态测试工具直接对代码进行分析,不需要运行代码,也不需要对代码编译链接,生 成可执行文件。静态测试工具一般是对代码进行语法扫描,找出不符合编码规范的地方, 根据某种质量模型评价代码的质量,生成系统的调用关系图等。ii. 动态测试工具动态测试工具与静态测试工具不同,动态测试工具的一般采用“插桩
2、”的方式,向代 码生成的可执行文件中插入一些监测代码,用来统计程序运行时的数据。其与静态测试工 具最大的不同就是动态测试工具要求被测系统实际运行。白盒测试工具比较多,对它们的选择必须考虑它们所支持的语言或环境,这方面网上 的资料也比较多,在此无法一一进行介绍,比较有代表性的如下表所示:公司软件名称支持语言主要功能LogiscopeTelelogicC、C+、Java、 Ada 软件质量分析工具 Audit;代码规范 性检测工具 Rulechecker;测试覆盖 率统计工具 TestCheckerjtestjavaC+ TestC、C+代码静态分析、接口函数测试、自 回归测试CodeWizard
3、C、C+代码规则检测parasoftInsure+C、C+内存检查,覆盖率分析CompuwareDevPartnerC+,Java,Visual Basic代码覆盖率分析工具 TrueCoverage,代码效率分析工具 TrueTime 和内存分析检查工具 BoundsCheckerIbmRational PurifyPlusJava、C/C+、Vi sual Basic 和. NET代码覆盖率分析工具 pureCoverage, 代码效率分析工具 pureQuantity 和内 存检查工具 purifyMcCabeMcCabe IQC、C+、Java、 Ada、Visual Basic 和.
4、NET用于静态结构分析、代码复杂度和 覆盖率分析,包含 McCabe Test ,McCabe QA ,McCab e Reengineering 等组件LDRATestBedC、C+、Ada静态结构分析、代码检查、覆盖率 分析PRQAQAC、C+、Java代码检查GimpelPC-LintC、C+代码检查PolySpacePolySpaceC、C+、Ada代码静态分析北航QESATC+、Java代码动态测试和覆盖率分析Applied MicrosystemsCodeTest嵌入式硬件测试工具,可进行内存 检查、覆盖率分析、代码性能分析开源JUNITJava单元测试,代码检查b) 黑盒测试工具
5、黑盒测试工具适用于黑盒测试的场合,黑盒测试工具包括功能测试工具和性能测试工 具。黑盒测试工具的一般原理是利用脚本的录制(Record)/回放(Playback),模拟用户的操作, 然后将被测系统的输出记录下来同预先给定的标准结果比较。黑盒测试工具可以大大提高 测试人员的工作效率和质量,在迭代开发的过程中,能够很好地进行回归测试。c) 测试管理工具测试管理工具用于对测试进行管理。一般而言,测试管理工具对测试需求、测试计划、 测试用例、测试实施进行管理,并且,测试管理工具还包括对缺陷的跟踪管理。d) 辅助测试工具除了上述的测试工具外,还有一些专用的测试工具,比如:用于数据库测试的 TestByte
6、s、用于性能优化的 EcoScope、用于页面链接测试的 Link Sleuth 等。二、介绍和比较二、介绍和比较1 1、国外大公司所开发的商业测试管理工具国外大公司所开发的商业测试管理工具工具名称公司官方网址TestDirector 6) 自动记录测试结果,便于查看功能测试工具的不同主要表现在支持的测试对象、支持的平台类型、系统架构、用途 与功能、所使用的脚本语言以及价格等方面。具体比较见后面表格。录制用户操作修改脚本回放脚本评估结果由工具生成的脚本可重用的脚本测试结果重复回归测试9 9、性能测试工具、性能测试工具性能测试工具通常指那些用来支持压力、负载测试,能够用来录制和生成脚本、设置 和
7、部署场景、产生并发用户和向系统施加持续压力的工具。性能测试的指标一般包括并发用户数、响应时间、吞吐量和资源利用率,类型一般包 括负载测试、压力测试和强度测试。好的性能测试工具一般支持多种协议,可测试多种对象,可自动生成脚本并进行脚本 调试,可进行多种参数配置以输出结果,此外配置和操作简单,以 LoadRunner 为例,性能 测试工具的组成部分一般有如下 4 个:虚拟用户发生器 VuGen,压力调度和监控系统 Conductor,压力产生器 Player 和结果分析工具 Analyzer,测试的一般步骤为:1)通过用户操作和 VuGen 的录制,记录并生成自动化脚本,在用户修改的 基础上,得到
8、可成功回放的正确无误的脚本; 2)Conductor 把脚本传送到 player 上,并控制 player 对被测系统的加压方 式和行为; 3)Player 会记录最终用户响应时间、脚本执行的日志和被测系统的各个环 节的性能数据以供 conductor 定期收集; 4)压力运行结束以后,Player 将数据传送到 Conductor 中,Conductor 负 责将数据汇总; 5)数据分析工具 Analyzer 读取压力测试数据,进行分析工作,确定瓶颈和 调优方法; 6)针对性地进行系统调优,重复进行压力测试,确定性能是否得到提高;需要注意的是,功能测试工具的录制一般是针对 GUI 的操作录制
9、,脚本中记录的是用 户对控件的操作,例如“按下了确认按钮”,或是“在姓名文本框中输入了 ABCD”等 内容,这是因为功能测试工具主要是通过操作和数据来验证功能的正确性,评价的主要标 准是 GUI 的正确性(界面可见内容的正确性),性能测试着重的是“并发的性能”,GUI 的很多操作一般对服务器都不构成压力,因此,性能测试工具录制的是服务端和应用之间 的通信数据,为此需要首先选择录制的协议。性能测试工具的不同主要在支持的协议类型、支持的平台类型、用途与功能、所使 用的脚本语言以及价格等方面。三、市场调查1、 开发者采用的管理需求工具的分布状况2、 开发者团队配置管理工具的种类分布状况3、 开发者团
10、队对缺陷跟踪使用工具的种类分布状况4、 测试方式上的比例5、 开发者及其团队经常使用的黑盒测试工具分布状况6、6、 开发者及其团队经常使用的白盒测试工具分布状况四、对自动测试软件选择的一些想法和建议面对如此多的测试工具,对工具的选择就成了一个比较重要的问题。我们在考虑选用 工具的时候,建议从以下几个方面来权衡和选择:1、功能选择一个测试工具首先就是看它提供的功能,但并不是说测试工具提供的功能越多就 约好,在实际的选择过程中,适用才是根本。“钱要花在刀刃上”,为不需要的功能花费 金钱实在不是明智的行为。事实上,目前市面上同类的软件测试工具之间的基本功能都是 大同小异,各种软件提供的功能也大致相同
11、,只不过有不同的侧重点。除了基本的功能之外,以下的功能需求也可以作为选择测试工具的参考:1) 报表功能;测试工具生成的结果最终要由人进行解释,而且,查看最终报告的人员 不一定对测试很熟悉,因此,测试工具能否生成结果报表,能够以什么形势提供报表是需 要考虑的因素。2) 测试工具的集成能力;测试工具的引入是一个长期的过程,应该是伴随着测试过程 改进而进行的一个持续的过程。因此,测试工具的集成能力也是必须考虑的因素,这里的 集成包括两个方面的意思,首先,测试工具能否和开发工具进行良好的集成;其次,测试 工具能够和其他测试工具进行良好的集成。3) 操作系统和开发工具的兼容性;测试工具可否跨平台,是否适
12、用于公司目前使用的 开发工具,这些问题也是在选择一个测试工具时必须考虑的问题。2、价格除了功能之外,价格就应该是最重要的因素了。工具的代价不仅仅只是许可证费。还 包括每年的维护费用,还应有安装软件,执行管理,获得开发商的支持和咨询,训练用户, 升级的费用。购买前一定要权衡利弊。3、要考虑到公司的实际情况,不要盲目引入测试工具并不是每种测试工具都适合公司目前的实际情况。例如,如果一个公司所开发的软件属于工程性质的软件,在整个开发过程中需求和用 户界面变动较大,这种情况下就不适合引入黑盒测试软件,因为黑盒测试软件的基本原理 是录制/回放,对于不停变化的需求和界面,可能修改和录制脚本的工作量还大过测
13、试实施, 运用测试工具不但不能减轻工作量,反而加重了测试人员的负担。4、要形成一个良好的使用测试工具的环境要形成一种机制让测试工具真正能够发挥作用。例如,白盒测试工具的一般使用场合 是在单元测试阶段,而单元测试是由开发人员完成,如果没有流程来规范开发人员的行为, 在项目进度压力比较大的情况下,开发人员很可能就会有意识地不使用测试工具,来逃避 问题。在这种情况下,就必须形成一种有约束力的机制来强制对测试工具的使用。将测试工具的使用明确定义进公司的开发流程,我认为是一种比较好的方式。5、要进行有效的测试工具培训和学习测试工具的使用者必须对测试工具非常了解,在这方面,有效的培训是必不可少的。 测试工
14、具的培训是一个长期的过程,不是通过一两次讲课的形式就能达到良好的效果。而 且,在实际的使用测试工具的过程中,测试工具的使用者可能还存在着这样那样的问题, 这也需要有专人负责解决,否则的话,对于测试工具使用者的积极性是很大的打击。7、 鉴于目前公司在测试工具引入上还处于调研和尝试阶段,抱着谨慎的态度,建议先试 用共享或免费软件,待公司开发规模,质量管理力度,测试管理等达到一定深度时再考 虑引入正版收费软件。 a)a)测试管理工具,优先学习使用开源 TestLink; b)b)需求管理工具,暂时使用 Excel; c)c)配置管理工具,暂时使用 Microsoft VSS 即可,优先学习使用开源 CVS; d)d)缺陷管理工具,暂时使用 Mantis,优先学习使用 BugFree; e)e)功能测试工具, f)f)性能测试工具,优先学习使用开源 stressMark,Microsoft Web application stress tool,openSta 和 Jmeter;