第10章 软件测试自动化



前言

软件测试是软件工程中的重要部分,是确保软件质量的重要手段。随着软件的复杂度不断增强、软件产业的不断发展,软件测试得到越来越广泛的重视,本章将介绍自动化测试的定义、自动化测试的作用、自动化测试工具的分类和自动化测试工具的应用等内容。


一、软件测试自动化基础

自动化测试能够替代大量手工测试工作,避免重复测试,同时,它还能够完成大量手工无法完成的测试工作,如并发用户测试、大数据量测试、长时间运行可靠性测试等。特别是对于大型工程,或者持续的长期工程,采用自动测试的效果是非常明显的。

二、软件测试自动化的作用和优势

通常,自动化测试(与手工测试相对比)的好处有以下几点。
• 产生可靠的系统。
• 改进测试工作质量。
• 提高测试工作效率。

三、软件测试自动化的引入条件

(1)管理层要充分意识到软件测试自动化的重要性
(2)对软件测试自动化有正确认识
(3)有一个很好的计划和稳定的应用行为
(4)实施测试自动化必须进行多方面的培训
(5)具有一个专注的、有着丰富技能的测试团队,并且分配以足够的时间和资源

四、软件测试自动化的实施过程

(1)熟悉、分析测试用例
(2)把已有的测试用例归类,写成比较简单的测试自动化计划书
(3)开始自动化测试程序的编写
(4)尽量用“数据驱动”来将测试覆盖率提高
(5)将测试用例写成自动化测试程序
(6)不断地完善自动化测试系统

五、主流软件测试工具

1.白盒测试工具

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

静态测试工具:直接对代码进行分析,不需要运行代码,也不需要对代码编译链接、生成可执行文件。静态测试工具一般是对代码进行语法扫描,找出不符合编码规范的地方,根据某种质量模型评价代码的质量,生成系统的调用关系图等。
动态测试工具:动态测试工具与静态测试工具不同,动态测试工具一般采用“插桩”的方式,向代码生成的可执行文件中插入一些监测代码,用来统计程序运行时的数据。其与静态测试工具最大的不同就是动态测试工具要求被测系统实际运行。

  1. BoundsChecker
    BoundsChecke是用于Visual C++开发环境所开发程序代码的一个很优秀的自动捕捉错误及调试工具。

  2. Jtest
    Jtest是Parasoft公司推出的一款针对Java语言的自动化白盒测试工具,它通过自动实现Java的单元测试和代码标准校验,来提高代码的可靠性。

  3. JUnit
    JUnit是一个开源的Java测试框架,它是XUint测试体系架构的一种实现。

  4. JCheck
    JCheck是用来分析Java执行过程与事件的工具,它可实时监控程序执行的状态。

  5. .test
    .test是专为.NET开发而推出的使用方便的自动化单元级测试与静态分析工具。

2.黑盒测试工具

黑盒测试工具适用于黑盒测试的场合。黑盒测试工具的一般原理是利用脚本的录制(Record)/回放(Playback),模拟用户的操作,然后将被测系统的输出记录下来,同预先给定的标准结果比较。黑盒测试工具可以大大减少黑盒测试的工作量,在迭代开发的过程中,能够很好地进行回归测试。

  1. WinRunner
    WinRunner是Mercury Interactive公司提供的一个企业级的功能检测工具。用于检测应用程序是否能够达到预期的功能及正常运行

  2. QARun
    QARun组件主要用于客户/服务器模式下客户端的功能测试。在功能测试中主要包括对应用的GUI(图形用户界面)的测试以及客户端事件逻辑的测试。

  3. Robot
    IBM Rational Robot是业界最顶尖的功能测试工具,它甚至可以在测试人员学习高级脚本技术之前帮助其进行成功的测试。

  4. SilkTest
    SilkTest 是一种用于企业应用的先进的基于标准的测试平台,是用于对企业级应用进行功能测试的产品,它提供了用于测试的创建和定制的工作流设置、测试计划和管理、直接的数据库访问及校验等功能,使用户能够高效率地进行软件自动化测试。

3.性能测试工具

性能测试的主要手段是通过产生模拟真实业务的压力对被测系统进行加压,研究被测系统在不同压力情况下的表现,找出其潜在的瓶颈。因此,一个良好的性能测试工具必需能做到:提供产生压力的手段;能够对后台系统进行监控;对压力数据能够进行分析,快速找出被测系统的“瓶颈”。

  1. QALoad
    QALoad是支持企业级应用的负载测试工具,该工具支持的范围广,测试的内容多,可以帮助软件测试人员、开发人员和系统管理人员对分布式的应用进行有效的负载测试。负载测试能够模拟大批量用户的活动,从而发现大量用户负载对系统的影响。

  2. LoadRunner
    LoadRunner是Mercury Interactive公司开发的一种预测系统行为和性能的负载测试工具,它可以通过模拟成千上万个用户和实施,实时监测来确认和查找问题。对于有实力的大公司而言,这款软件可能比较适合,它的功能和QALoad相比不相上下,通过使用LoadRunner,企业能够最大限度地缩短测试时间、优化性能并加速应用系统的发布周期。一些著名的公司,如IBM、SUN、Oracle等都用这个软件,但是它的价格也很贵。

  3. QuickTest
    QuickTest 是一种功能自动测试工具(简称QTP)。使用QTP的目的是想用它来执行重复的手动测试,主要是用于回归测试和测试同一软件的新版本。因此在测试前要考虑好如何对应用程序进行测试,例如要测试那些功能、操作步骤、输入数据和期望的输出数据等。目前已经被惠普收购,正式名字为HP QuickTest Professional software。

  4. Performance Runner
    Performance Runner(简称PR)是性能测试工具,通过模拟高并发的客户端,通过协议和报文产生并发压力给服务器,测试整个系统的负载和压力承受能力,实现压力测试、性能测试、配置测试、峰值测试等。

  5. TeamTest
    Rational TeamTest提供一系列工具进行全方面的软件测试,包括测试规划和准备,自动生成测试脚本,缺陷追踪及更正,测试报告,测试结果制图和测试进度评估等。高端可伸缩的 Rational TeamTest可以帮助测试人员隔离性能瓶颈的原因,应用Rational TeamTest测试人员可以分析商务事务处理,客户呼叫和系统资源等引起性能恶化的因素。

  6. WebLoad
    WebLoad是RadView公司开发的。WebLoad性能测试分析工具旨在测试Web应用和Web服务的功能,性能,程序漏洞,兼容性,稳定性和抗攻击性,并且能够在测试的同时分析问题原因和定位故障点。WebLoad专为测试在大量用户访问下的Web应用性能而设计,控制中心运载在Windows 2000/XP/2003系统上,负载发生模块(load machine)可在Windows、Solaris和Linux系统上运行,模拟出的用户流量支持.NET和J2EE两种环境。

4.测试管理工具

测试管理工具用于对测试进行管理。一般而言,测试管理工具对测试需求、测试计划、测试用例、测试实施进行管理,并且测试管理工具还包括对缺陷的跟踪管理。测试管理工具的代表有QADirector、TestDirector、TestManager、TrackRecord、QC等。


总结

以上就是今天要讲的内容,本文仅仅简单介绍了软件测试的基本概念,希望能够对正在阅读的你有所帮助。如果你也对软件测试感兴趣的话,就跟着我一起学下去吧。

如果您觉得我写的还不错,请多给我点赞鼓励一下,您的支持也是我不断前进的最大动力。同时也欢迎您将本篇文章分享给您的朋友,一起学习。最后,也欢迎大家在私信和评论里与我探讨学习过程中遇到的问题,大家共同进步。

猜你喜欢

转载自blog.csdn.net/qq_50564231/article/details/132234925