您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 信息化管理 > 第12章-回归测试的实用技术
第12章回归测试的实用技术回归测试(RegressionTesting)作为软件生命周期的一个组成部分,在软件开发的各个阶段都可能会进行若干次回归测试,回归测试在整个软件测试过程当中占有很大的工作量比重。本章重点讨论以下内容:●回归测试概述●回归测试用例库的维护方法●回归测试的方法●回归测试的基本过程●总结回归测试的结果●回归测试自动化的问题●回归测试实践总结●回归测试文档12.1回归测试概述回归测试概述主要内容包括:什么是回归测试、目的、范围、基本过程、人员、选择有效的回归测试包、人工回归测试流程、自动化自动回归测试流程、自动回归测试框架和框架的技术特点,分别介绍如下。12.1.1什么是回归测试只要软件发生修改,我们就必须重新测试软件,以便确定修改的软件功能是否达到了预期的目的,修改可能产生新的问题:可能导致软件未被修改的部分产生新的问题,使本来工作正常的功能产生错误;在有新代码加入软件的时候,除了新加入的代码中有可能含有错误外,新代码还有可能对原有的代码带来影响。12.1.2回归测试的目的回归测试的目的是:确认软件经过一些小的变更或修改后是否仍满足所有的需求。回归测试是重复测试,要求使用相同的方法,使用相同的测试用例和数据,在相同的环境下进行测试。12.1.3回归测试的范围在进行回归测试的时候,必须决定回归测试的范围,具体表现为:(1)测试所有修改或修正过的功能模块;(2)测试与被修改的模块相关的模块;(3)测试所有新增加的功能模块;(4)测试整个系统。表现(1)、表现(2)和表现(3)中只进行了部分的回归测试,这样的测试是不健全的,因为在软件系统中,对本地代码的修改可能导致整个系统产生副作用。12.1.4回归测试的基本过程回归测试的基本过程如图12-1所示。图12-1回归测试的基本过程12.1.5回归测试的策略回归测试需要时间、经费和人力来计划、实施和管理。为了尽可能有效地进行回归测试,需要对回归测试选择相应的策略。(1)测试用例库的维护为了保证测试用例库中测试用例的有效性,必须对测试用例库进行维护。测试用例的维护主要包括:1)删除过时的测试用例2)改进不受控制的测试用例3)删除冗余的测试用例4)增添新的测试用例12.1.6回归测试人员在回归测试过程当中,测试过程由一个测试经理(或组长)来监控测试工作的各个细节。而回归测试经常与系统测试和验收测试相关联,所以由测试经理(或组长)负责,确保选择合适的测试技术和在合理的质量控制中执行充分的回归测试。在回归测试工作中,回归测试人员将设计并实现测试新的扩展或增强部分所需的新测试用例,可结合自动化测试工具修改现有的测试数据。12.1.7选择有效的回归测试包在软件测试中,测试用例库可能变得相当大,每次回归测试都重新运行完整的测试包变得不切实际,有时测试组不得不选择一个缩减的、有效的回归测试包来完成回归测试。当测试组选择缩减的回归测试包时,要删除部分测试用例,删除哪些部分测试用例而不会让回归测试的意图遭到破坏。12.1.8人工回归测试流程人工回归测试流程如图12-2所示。如图12-2人工回归测试流程12.1.9自动化自动回归测试流程自动化自动回归测试流程如图12-3所示。图12-3自动化自动回归测试流程12.1.10自动回归测试框架、作用和框架的技术特点1.自动回归测试框架自动回归测试框架如图12-4所示。图12-4自动回归测试框架12.2软件测试的相关知识概述软件测试项目组在进行测试的过程中会将所用到的测试用例保存到“测试用例库”中,并进行维护,回归测试用例库的维护方法如下。12.2.1删除过时的测试用例实用的测试用例是经过长期的工作积累而成的,但是随着项目的不同,使用环境的不同,原来成功的测试用例可能不适应新的环境,需要对原有的测试用例进行修改和删除。删除不是一味清除原有测试用例,而是对原有的测试用例进行加工改造,使之适应新的应用项目。12.2.2改进不受控的测试用例在测试用例库中,有的测试用例是可重复并且是可控制的,但是有的测试用例不是可控制的(有些对输入或运行状态十分敏感的测试用例是不容易重复而且是难以控制的,会影响回归测试的效率),需要进行改进,使其达到可重复和可控制的要求。12.2.3删除冗余的测试用例在回归测试当中,有些测试用例随着项目的开展,难免会出现冗余(存在两个或者多个测试用例针对一组相同的输入和输出进行测试),所以需要定期的整理、维护测试用例库,将冗余的用例删除掉,并保存到回归测试用例库中,从而提高测试用例库的高效性和可用性。12.2.4增添新的测试用例测试用例随着应用的环境、功能、性能的不同,原有的测试用例库中的测试用例不能满足回归测试的要求,需要添加新的测试用例,如果某个程序段、构件或关键的接口发生了变化,那么应该开发新测试用例重新对其进行测试,并将新开发的测试用例合并到测试用例库中。12.3测试的目的和原则常用的回归测试的方法如下:12.3.1再测试全部用例把测试用例库的全部测试用例组成回归测试包进行测试,这是一种比较安全的方法,再测试全部用例具有最低的遗漏回归错误的风险,但测试时间、人员、设备、和经费成本最高。全部再测试几乎可以应用到任何情况下,基本上不需要进行分析和重新开发,但是随着开发工作的进展,测试用例不断增多,重复原先所有的测试将带来很大的工作量,往往超过了预算和进度。12.3.2基于风险进行测试从测试用例库中选择测试用例进行回归。这种方法有一定的风险。选择测试用例首先要选择运行最重要的、关键的和可疑的测试,而跳过那些非关键的、优先级别低的或者高稳定的测试用例。12.3.3基于操作进行测试如果测试用例库的测试用例是基于软件操作开发的,回归测试可以优先选择基于操作的测试用例,针对最重要或最频繁使用功能的测试用例,这种方法可以在一个给定的预算下最有效地提高系统的可靠性,但实施起来有一定的难度。12.3.4仅测试修改部分当测试者对修改的局部化有足够的信心时,可以仅测试修改部分,但要分析修改情况和修改的影响,回归测试尽可能覆盖受到影响的部分,但实施起来有一定的风险。在回归测试时,采用多种测试技术是常见的,表现在以下两个方面:(1)如果测试者对一个修改的软件进行回归测试时,回归测试者可以采用多种回归测试方法,例如:采用回归测试工具,进而增加了对修改软件的信心;(2)不同的回归测试者可能会根据自己的经验和判断选择不同的回归测试技术和方法。12.4总结回归测试的结果在软件测试周期结束后,测试、开发人员对回归测试的结果非常关注,因为他们想知道他们对bug修改是否达到的预期的结果,所以需要总结回归测试的结果。关于总结回归测试的结果,印度学者SrinivasanDesikanGopalawamyRamesh做了如下5点概括性的分析:如果特定测试用例的执行结果对于以前的版本通过,而当前版本未通过,则回归未通过。需要提交新版本,并对测试用例重新设置后心头重新测试。如果特定测试用例的执行结果对于以前的版本未通过,而当前的版本通过,则可以有把握地说缺陷修改有效。如果特定测试用例的执行结果对于以前的版本未通过,而当前版本也通过,如果对于这个特定的测试用例没有针对缺陷修改,则可能意味着这个测试用例的执行结果应该未通过,而且在回归测试中不应该选择这类测试用例。如果特定测试用例的执行结果对于以前的版本未通过,但是通过某种写入文档的迂回方法可以通过,而且测试人员也对这种迂回方法感到满意,则可以认为对于系统测试周期和回归测试周期都通过。如果测试人员对迂回不满意,则可以认为系统测试周是未通过,但是回归测试周期是通过的。12.5回归测试自动化的问题对于回归测试自动化工具的问题,目前有回归测试自动操作工具的供应商,但是需要考虑的组件和方面有:(1)系统应是自动构造程序。表现为:服务需要自动编译、自动部署。(2)回归测试自动化工具可以构造与实际使用场景相似的测试用例。(3)回归测试自动化工具一般只可以进行框架的测试。(4)使用回归测试自动化工具产生统一的结果报告,这样不用重复花时间去检验测试执行结果。12.6回归测试实践总结回归测试工作是一件有意义的工作,但是,在实际工作当中,回归测试需要反复不断地进行,使得回归测试变得非常繁琐,表现为重复性地工作,容易使测试者感到枯燥无味,工作积极性不高,以至于降低测试效率。12.7回归测试文档文档资料是管理进行的有效手段之一,清晰明了的文档能保证管理有条不紊的进行,以下是回归测试的文档清单。12.7.1工作开始前所需的文档回归测试进行前需要以下文档资料:测试计划;需要进行的测试列表;被测程序源码;回归测试用例。12.7.2工作结束后递交的文档回归测试结束后需要递交以下文档资料:回归测试的总结报告;回归测试的结果记录;回归测试日志。12.8人工回归测试实训和操作方法人工回归测试实训和操作的内容主要包括:回归测试持续执行的改进计划;人工回归测试的输入输出图;针对手机信息管理系统模型进行人工回归测试的测试用例、实训和操作方法。1.回归测试持续执行的改进计划对于回归测试的一些基本的理论和实用的技术,在前面12.1节~12.7节里已经做了详细的介绍,在这里,我们直接给出人工回归测试持续执行改进计划图,如图12-5所示。图12-5人工回归测试持续执行改进计划图从图12-5中就可以看出,回归测试是在不断的“计划-执行-检查-改进”过程中进行的。2.人工回归测试的输入输出图人工回归测试的输入输出图,如图12-6所示。图12-6人工回归测试输入输出图12.9回归测试的自动化测试实训操作方法自动化回归测试实训和操作的内容主要包括:自动化回归测试工作中的问题;自动化回归测试解决方案;手机信息管理系统回归测试案例。12.9.1自动化回归测试工作中的问题自动化回归测试需要频繁的执行,再执行,去检查曾经使用过的执行已经通过的测试用例是否因为软件的变动而执行失败。自动化回归测试需要反复执行,并且单调乏味。怎样才能做好自动化回归测试文档化的工作呢?通常的做法是采用列有产品特性的列表,然后对照列表检查。这是个很好的开始,自动化回归测试检查列表可以告诉你应该测试哪些方面。不过,自动化回归测试检查列表只是合于那些了解产品,并且知道需要采用哪种测试方法的人。12.9.2自动化回归测试解决方案在开始自动化回归测试之前,我们需要完善回归测试检查表,决定采用什么样的测试方法,确定测试中所用到的数据,并给出设计数据的完整方法。如果一个项目的工期充足,我们应该制定一个详细回归测试设计方案。设计方案是应当仔细检查缺陷跟踪库中与待测模块相关的所有已经关闭的缺陷,针对每个缺陷,重新编写能够发现该问题的测试执行操作。在回归测试方案中应该明确表明哪些部分适合使用自动化测试。请您解答:1.请详细说明回归测试的定义。2.请说明回归测试的范围是什么。3.请简要列举回归测试用例库的维护方法。4.列举常用的回归测试的方法。5.请列出回归测试可遵循的基本过程。•请您解答:•1.请详细说明回归测试的定义。•2.请说明回归测试的范围是什么。•3.请简要列举回归测试用例库的维护方法。•4.列举常用的回归测试的方法。•5.请列出回归测试可遵循的基本过程。谢谢
本文标题:第12章-回归测试的实用技术
链接地址:https://www.777doc.com/doc-8638079 .html