首页 百科知识 软件测试工具

软件测试工具

时间:2022-10-09 百科知识 版权反馈
【摘要】:传统的软件测试流程往往存在项目进度难以控制、项目管理难度大、项目风险的控制能力弱以及软件项目开发费用超支等问题,为了改善这一情况,工作核心是尽早测试、连续测试和自动化测试。一旦软件通过了强有力的自动测试后,软件的信任度自然会增加。动态测试工具与静态测试工具不同,动态测试工具直接执行被测程序以提供测试支持。

6.2.6 软件测试工具

传统的软件测试流程往往存在项目进度难以控制、项目管理难度大、项目风险的控制能力弱以及软件项目开发费用超支等问题,为了改善这一情况,工作核心是尽早测试、连续测试和自动化测试。其中自动化测试不仅提供测试成功经验、提供对完整的测试流程的支持和各种测试的自动化实现,其自身也是支持尽早测试和连续测试的强有力的手段,包括支持测试指标的实时提取、项目质量的实时监控、支持每个迭代周期的增量测试和回归测试等。最终能够达到:测试团队基于一个完整的软件测试流程,使用一套完整的自动化软件测试工具,完成全方位的软件质量验证。

一、自动化软件测试的优点

测试对软件开发至关重要,在整个软件开发周期中,大约40%以上的人力和时间用于软件测试。即使这样,经过测试而交付使用的软件仍可能出错。为了减轻测试的工作量,提高测试的工作效率和质量,很有必要开发一些工具使测试过程趋于自动化。

通过自动化测试,可以使某些任务提高执行效率。除此之外,自动化软件测试还有很多优点:

(1)对程序的回归测试更方便。这是自动化测试最主要的任务,特别是在程序修改比较频繁时,效果是非常明显的。由于回归测试的动作和用例是完全设计好的,测试期望的结果也是完全可以预料的。将回归测试自动运行,可以极大提高测试效率,缩短回归测试时间。

(2)可以运行更多更烦琐的测试。自动化的一个明显的好处是可以在较少的时间内运行更多的测试。

(3)可以执行一些手工测试困难或不可能进行的测试。比如,对于大量用户的测试,不可能同时让足够多的测试人员同时进行测试,但是却可以通过自动化测试模拟同时有许多用户的情况,从而达到测试的目的。

(4)更好地利用资源。将烦琐的任务自动化,可以提高准确性和测试人员的积极性,将测试技术人员解脱出来,投入更多精力以便设计更好的测试用例。有些测试不适合于自动化测试,仅适合于手工测试,将可自动测试的测试自动化后,可以让测试人员专注于手工测试部分,提高手工测试的效率。

(5)测试具有一致性和可重复性。由于测试是自动执行的,每次测试的结果和执行的内容的一致性是可以得到保障的,从而达到测试的可重复的效果。

(6)测试的复用性。由于自动化测试通常采用脚本技术,这样就有可能只需要做少量的甚至不做修改,实现在不同的测试过程中使用相同的用例。

(7)可以让产品更快面向市场。自动化测试可以缩短测试时间,加快产品开发周期。

(8)增加软件信任度。由于测试是自动执行的,所以不存在执行过程中的疏忽和错误,完全取决于测试的设计质量。一旦软件通过了强有力的自动测试后,软件的信任度自然会增加。

总之,通过较少的开销获得更彻底的测试,提高软件质量,这是自动化测试的最终目的。

二、软件测试工具分类

1.黑盒测试工具

常用的黑盒测试工具包括:

(1)功能测试工具:用于检测被测程序能否达到预期的功能要求并正常运行。

(2)性能测试工具:性能测试工具有助于确定软件系统的性能。有些工具还可用于自动多用户客户/服务器加载测试和性能测量,用来生成、控制并分析客户/服务器应用的性能,即性能测试又分为客户端的测试和服务器端的测试。客户端的测试主要关注应用的业务逻辑、用户界面和功能测试等,服务器端的测试主要关注服务器的性能、衡量系统的响应时间、事务处理速度和其他时间敏感等。

2.白盒测试工具

白盒测试工具一般是针对被测源程序进行的测试,测试中发现的故障可以定位到代码级,根据测试工具的原理不同,又可分为静态测试工具和动态测试工具。

(1)静态测试工具

静态测试是指在不执行程序的情况下,对软件特性进行分析。静态分析主要集中在需求文档、设计文档以及程序结构上,可以进行类型分析、接口分析、输入输出规格说明等。常用的静态分析工具有:McCabe&Associates公司开发的McCabe Visual Quality ToolSet分析工具、ViewLog公司开发的LogiS-cope分析工具、Software Research公司开发的Testwork/Advisor分析工具及Software Emancipation公司开发的Discover分析工具等。

(2)动态测试工具

动态测试工具与静态测试工具不同,动态测试工具直接执行被测程序以提供测试支持。它所支持的测试范围十分广泛,包括功能确认与接口测试、覆盖率分析、性能分析、内存分析等。动态测试工具代表有Compuware公司开发的DevPartner软件、Rational公司研制的Purify系列。

三、常见软件测试工具及特点

1.Jtest

Jtest是Parasoft公司推出的一款针对Java语言的自动化的白盒测试工具,它通过自动实现Java的单元测试和代码标准校验,来提高代码的可靠性。Jtest首先分析每个Java类,然后自动生成Junit测试用例并执行用例,从而实现代码的最大覆盖,并将代码运行时未处理的异常暴露出来;另外,它还可以检查以DbC(Design by Contract)规范开发的代码的正确性。用户还可以通过扩展测试用例的自动生成器来添加更多的Junit用例。Jtest还能按照现有的超过350个编码标准来检查并自动纠正大多数常见的编码规则上的偏差,用户可自定义这些标准,通过简单的几个点击,就能预防类似于未处理异常、函数错误、内存泄漏、性能问题、安全隐患这样的代码问题。

2.Junit

Junit是一个开放的Java测试框架,它是Xunit测试体系架构的一种实现。在设计Junit单元测试框架时,设定了三个总体目标:第一是简化测试的编写,这种简化包括测试框架的学习和实际测试单元的编写;第二是使测试单元保持持久性;第三则是可以利用既有的测试来编写相关的测试。

一段测试的程序代码无法单独执行,需要是执行环境的一部分,同时,需要自动执行单元测试。例如,在系统中周期性地执行所有的测试以证明没有任何内容被破坏。由于单元测试需要符合特定的准则:一个成功的测试不应该是人工检查的,一个未通过测试的失败应该能产生文件以供诊断修改,而Junit可以提供这些便利。这样,所有测试开发者所需撰写的只是测试码本身了。

3.WinRunner

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

企业级应用可能包括Web应用系统、ERP系统、CRM系统等。这些系统在发布之前、升级之后都要经过测试,确保所有功能都能正常运行,没有任何错误。如何有效地测试不断升级更新和在不同环境的应用系统,是每个公司都会面临的问题。

如果时间或资源有限,这个问题就会更加棘手。人工测试的工作量太大,还需要额外的时间来培训新的测试人员等等。为了确保那些复杂的企业级应用在不同环境下都能正常可靠地运行,这就需要一个易操作的测试工具自动完成应用程序的功能性测试了。

4.LoadRunner

LoadRunner是一种预测系统行为和性能的负载测试工具。通过模拟上千万用户实施并发负载,及实时性能监测的方式,来确认和查找问题,LoadRun-ner能够对整个企业架构进行测试。通过使用LoadRunner,企业能最大限度地缩短测试时间,优化性能和加速应用系统的发布周期。

目前的企业网络应用环境都必须支持大量用户,网络体系架构中包含了各类应用环境和不同供应商提供的软件、硬件产品。难以预知的用户负载和越来越复杂的应用环境,使公司时时担心用户响应速度会过慢、系统会崩溃等问题,这些不可避免地造成了公司收益的损失。

Mercury Interactive的LoadRunner能让企业好好保护自己的收入来源,无需购置额外硬件而最大限度地利用现有的IT资源,并确保终端用户在应用系统的各个环节中对其测试应用的质量、可靠性和扩展性都有良好的评价。

LoadRunner是一种适用于各种体系架构的自动负载测试工具,它能预测系统行为并优化系统性能。LoadRunner的测试对象是整个企业的系统。它通过模拟实际用户的操作行为和进行实时性能监测,更快地查找和发现问题。此外,LoadRunner能够广泛支持各种协议和技术,为特殊环境提供特殊的解决方案

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈