常用自动化测试工具简介随着人们对测试工作的重视以及测试工作的不断深入,越来越多的公司开始使用自动化测试工具。如果能够正确地选择和使用自动化测试工具,就会提高测试的效率和测试质量,降低测试成本。由于一些商用的自动化测试工具十分昂贵,因此在选择自动化测试工具时,要把各种因素考虑进去,只有这样才能做出正确的选择。由安博测试空间技术中心提供1自动化测试工具的分类根据测试方法的不同,自动化测试工具可以分为白盒测试工具、黑盒测试工具和测试管理工具。这些工具主要是MercuryInteractive(MI)、Segue、IBM/Rational、Compuware和Empirix等公司的产品,而MI公司的产品占了主流。这些工具和软件开发过程中相关活动的关系如图1所示。图1测试工具与开发过程关系图1.白盒测试工具白盒测试工具一般是针对代码进行测试,测试中发现的缺陷可以定位到代码级。根据测试工具的工作原理的不同,白盒测试工具又可以分为静态测试工具和动态测试工具。(1)静态测试工具静态测试就是在不执行程序的情况下分析软件的特性。因此,静态测试工具一般是对代码进行语法扫描,找出不符合编码规范的地方,根据某种质量模型评价代码的质量,生成系统的调用关系图等。静态测试工具直接对代码进行分析,不需要运行代码,也不需要对代码编译链接、生成可执行文件。静态测试工具的代表有Telelogic公司的Logiscope软件、PR公司的PRQA软件。(2)动态测试工具动态测试直接执行被测程序以提供测试活动。因此,动态测试工具需要实际运行被测系统,并设置断点,向代码生成的可执行文件中插入一些监测代码,掌握断点这一时刻程序运行数据。动态测试工具的代表有Compuware公司的DevPartner软件、Rational公司的Purify软件。常见的白盒测试工具,如表2、表3所示。工具名支持语言环境简介JtestJava代码分析和动态类、组件测试JcontractJava实时性能监控以及分析优化C++TestC,C++代码分析和动态测试CodeWizardC,C++代码静态分析Insure++C,C++实时性能监控以及分析优化.test.Net代码分析和动态测试表2Parasoft白盒测试工具集工具名支持语言环境简介BoundsCheckerC++,DelphiAPI和OLE错误检查、指针和泄露错误检查、内存错误检查TrueTimeC++,Java,VisualBasic代码运行效率检查、组件性能的分析FailSafeVisualBasic自动错误处理和恢复系统JcheckMSVisualJ++图形化的线程和事件分析工具TureCoverageC++,Java,VisualBasic函数调用次数、所占比率统计以及稳定性跟踪SmartCheckVisualBasic函数调用次数、所占比率统计以及稳定性跟踪CodeReviewVisualBasic自动源代码分析工具表6-3Compuware白盒测试工具集2.黑盒测试工具黑盒测试工具适用于系统功能测试和性能测试,包括功能测试工具、负载测试工具、性能测试工具等。黑盒测试工具的一般原理是利用脚本的录制(Record)/回放(Playback),模拟用户的操作,然后将被测系统的输出记录下来同预先给定的标准结果比较。黑盒测试工具可以大大减轻黑盒测试的工作量,在迭代开发的过程中,能够很好地进行回归测试。黑盒测试工具的代表有Rational公司的TeamTest、Compuware公司的QACenter。常见的黑盒功能测试工具,如表4所示。工具名公司名官方站点WinRunnerMercuryInteractive://://://://compuware.comQALoadCompuware://://://表4常见黑盒功能测试工具3.测试管理工具测试管理工具用于对测试进行管理。一般而言,测试管理工具负责对测试计划、测试用例、测试实施进行管理、对产品缺陷跟踪管理、产品特性管理等。测试管理工具的代表有Rational公司的TeamManager、Compuware公司的TrackRecord、MercuryInteractive公司的TestDirector等软件。除此之外,还有专用于性能测试的工具包括有:Radview公司的WebLoad;Microsoft公司的WebStress等工具;针对数据库测试的TestBytes;对应用性能进行优化的EcoScope等工具。2常见自动化测试工具介绍1.RationalRobotRationalRobot可以对在各种独立开发环境(IDE)中开发的应用程序,创建、修改并执行功能测试、分布式功能测试、回归测试以及整合测试,记录并回放能识别业务应用程序对象的测试脚本,可以快速、有效地跟踪、报告与质量保证测试相关的所有信息,并将这些信息绘制成图表。Robot的回归测试与Purify结合使用完成可靠性测试,与PureCoverage结合使用完成代码覆盖计算,与RationalQuantify结合使用完成应用程序性能测试。RationalRobot是一个面向对象的软件测试工具,主要针对Web、ERP和C/S进行功能自动化测试。可以降低在功能测试上的人力和物力的投入成本和风险,测试包括可见的和不可见的对象。RationalRobot可以开发运用三种测试脚本:用于功能测试的GUI脚本、用于性能测试的VU以及VB脚本。RationalRobot具有以下功能和作用:①执行完整的功能测试。记录和回放遍历应用程序的脚本以及测试在查证点处的对象状态。②执行完整的性能测试。通过RationalRobot与RationalTestManager的协作可以记录和回放脚本,这些脚本帮助断定多客户系统在不同负载情况下是否能够按照用户定义的标准运行。③在SQABasic、VB、VU多种环境下创建并编辑脚本。RationalRobot编辑器提供有色代码命令,并在集成脚本开发阶段提供键盘帮助。④测试微软IDE环境下VB、HTML、Java、OracleForms、PowerBuilder、Delphi、开发的应用程序以及用户界面上看不见的那些对象。⑤脚本回放阶段收集应用程序诊断信息。RationalRobot与RationalPurifyQuantifyPureCoverage集成,可以通过诊断工具回放脚本,并在日志中查看结果。⑥同Rational其他组件或产品集成使用Robot2.WinRunnerMercuryInteractive公司的WinRunner是一种企业级的用于检验应用程序是否如期运行的功能性测试工具。通过自动捕获,检测和模拟用户交互的操作,WinRunner能够辨认缺陷并且确保那些跨越多个应用程序和数据库的业务流程在初次发布就能避免出现故障,并且保持长期可靠运行。WinRunner的特点在于:与传统的手工测试相比,它能快速、批量地完成功能点测试;能针对相同测试脚本,执行相同的动作,从而消除人工测试所带来的理解上的误差;此外,它还能重复执行相同动作,测试工作中最枯燥的部分可交由机器完成;它支持程序风格的测试脚本,一个高素质的测试工程师能借助它完成流程极为复杂的测试,通过使用通配符、宏、条件语句、循环语句等,还能较好地完成测试脚本的重用;它针对于大多数编程语言和Windows技术,提供了较好的集成、支持环境,这对基于Windows平台的应用程序实施功能测试而言带来了极大的便利。其主要功能:(1)轻松创建测试(2)插入检查点(3)检验数据(4)增强测试(5)运行测试(6)分析结果(7)维护测试3.LoadRunnerMercuryInteractive的LoadRunner是一种适用于企业级系统、各种体系架构的自动负载测试工具,通过模拟实际用户的操作行为和实行实时性能监测,帮助更快地查找和发现问题,预测系统行为并优化系统性能。通过使用LoadRunner,企业能最大限度地缩短测试时间,优化性能和加速应用系统的发布周期。此外,LoadRunner能支持广泛的协议和技术,为一些特殊环境提供特殊的解决方案。业界认为LoadRunner的功能与QALoad相比不相上下。LoadRunner主要功能如下:①轻松创建虚拟用户。LoadRunner可以记录下客户端的操作,并以脚本的方式保存,然后建立多个虚拟用户,在一台或几台主机上模拟上百或上千虚拟用户同时操作的情景,同时记录下各种数据,并根据测试结果分析系统瓶颈,输出各种定制压力测试报告。②使用VirtualUserGenerator,能简便地创立起系统负载。该引擎能生成虚拟用户,以虚拟用户的方式模拟真实用户的业务操作行为。利用虚拟用户,在不同的操作系统的机器上同时运行上万个测试,从而反映出系统真正的负载能力。③创建真实的负载。LoadRunner能建立持续且循环的负载,限定负载又能管理和驱动负载测试方案,而且可以利用日程计划服务来定义用户在什么时候访问系统以产生负载,使测试过程高度自动化。④定位性能问题。LoadRunner内含集成的实时监测器,在负载测试过程的任何时候,可以观察到应用系统的运行性能,实时显示交易性能数据和其他系统组件的实时性能。⑤分析结果以精确定位问题所在。测试完毕后,LoadRunner收集、汇总所有的测试数据,提供高级的分析和报告工具,以便迅速查找到问题并追溯原由。⑥此外,LoadRunner完全支持基于Java平台应用服务器EnterpriseJavaBeans的负载测试,支持无限应用协议WAP和I-mode,支持MediaStream应用,可以记录和重放任何流行的多媒体数据流格式来诊断系统的性能问题,查找原由、分析数据的质量。4.ParasoftC++TestParasoftC++Test是Parasoft公司开发的专门针对C/C++的源程序代码进行自动化单元测试的工具,可以自动测试任何C/C++函数、类,自动生成测试用例、测试驱动函数或桩函数,在自动化的环境下完成单元测试,其单元级的测试覆盖率可以达到100%。ParasoftC++Test能够自动测试代码构造(白盒测试)、测试代码的功能性(黑盒测试)和维护代码的完整性(回归测试)。5.QACenterQACenter是黑盒测试工具,它可以帮助测试人员创建一个快速、可重用的测试过程。该测试工具能够自动帮助管理测试过程,快速分析和调试程序,能够针对回归测试、强度测试、单元测试、并发测试、集成测试、移植测试容量和负载测试建立测试用例,自动执行测试并产生相应的测试文档。QACenter测试工具主要包括以下几个模块:(1)QARun。QARun主要用于客户端/服务器系统中对客户端的功能测试。在功能测试中,主要包括对系统的