回归测试解读,常见的回归测试策略有哪几种?

作者:回归测试   发布时间:2020-08-03

回归测试的英文名称:Regression Testing,从字面上看,是"倒退测试"。这就表明,软件有当前状态和原来状态之分。回归测试就是对软件的原来状态重新进行功能和非功能的测试,用以确保先前开发并测试过的软件在缺陷修复、配置改变、软件更新等等这些变化之后,仍能符合要求的运行(即:软件当前状态中那些没有被修改的部分的功能和非功能与原来状态保持一致)。


这里所说的软件当前状态和原来状态的概念,可以简单的认为,每一个当前提交测试的版本就是该软件的当前状态,上一个版本就是原来状态。或者,当前基线就是当前状态,上一次基线就是原来状态。具体如何区分,可以根据管理要求来制定。

回归测试


回归测试的时机


不论是基于新产品的开发还是老产品的维护升级,回归测试都是一个完整测试必不可少的一部分。通常,需要进行回归测试的时机是:


1、缺陷修复


当开发人员完成对当前状态的软件进行缺陷修复之后,并且提交新的测试版本或进行了代码基线;


2、软件更新


开发人员完成新增功能和代码重构之后,并且提交测试版本或进行了代码基线。其中,新增功能往往对应于维护类的产品,对其要进行完整的测试,即对新功能的验证测试,以及回归测试。


对于代码重构,应该本着运行质量永远高于代码质量的原则慎重对待,如果一旦决定重构,则必须进行全量回归测试;


3、配置改变


出于软件参数配置灵活性以及运维高效的需要,对配置文件、脚本、批处理命令、存储过程进行修改并正式通知测试部门之后。


回归测试策略通常有四种:全面回归测试、选择性回归测试、指标法回归测试和自动化工具回归测试。


1、全面回归测试


全面回归测试是指不管发现多少个问题,也不管哪些功能有问题,哪些功能没有问题,都进行测试。全面回归测试的优点是对所有功能进行验证,尽最大可能保证系统没有问题,但是这样同样带来一个很重要的问题,就是如果进行全面回归测试,那么测试的成本就会大大提高,并且从测试心理学角度来说,测试工程师是不可能全面回归测试的,即使给你足够的测试时间,也不可能全面回归。前面我们谈到测试心理学,关于测试心态的两种情况,在我们回归测试时,随着测试的不断迭代,我们测试的心理会发生变化,后面测试时我们更多的是这种心态:“测试是为了证明系统不存在问题。”这就决定着我们不可能对所有测试用例进行验证,很可能是只挑选了一部分用例进行验证测试。


2、选择性回归测试


选择性回归测试是指,在回归测试时我们只对出现问题的这些功能进行验证,没有出现问题的功能就不进行测试。例如,一个系统一共有20 个功能点,第一轮测试时,发现10个BUG,这10个BUG是测试其中8个功能点发现的,那么选择性回归测试就只对这8个功能进行回归测试。但这样存在一个问题,在修改某个BUG时,如果修改了A函数,而这个A函数又被其他的功能所调用(假设是F1功能,这个F1功能在上一轮测试中是正确的),这个时候就不能仅仅验证存在问题的8个功能,还应该验证F1功能是否正确,即除了验证这些BUG外,还要关注那些可能影响到的模块。但是这里又存在一个问题,测试工程师如何知道哪些功能可能会受到影响呢?所以这就需要开发工程师在修复BUG时写清楚,当前这个BUG是由什么原因引起的,这个问题是如何修改的以及可能产生的影响,所以选择性回归测试除了需要验证当前的问题外,还要验证修改的这些问题可能对其他功能带来的影响。


3、指标法回归测试


指标法回归测试是指每次回归测试一定比例的测试用例,例如用例库一共是500条用例,每次回归测试时只回归验证其中60%的用例,这个方法是不可取的,因为没有规定回归哪60%的用例,这样可能出现测试工程师故意回归一些不相关的测试用例,因此质量无法保证。


4、自动化工具回归测试


自动化工具回归测试是指使用自动化测试工具进行回归测试,前面我们介绍过从理论的角度来说,其实不管修改了哪些功能,都应该对所有的功能进行回归测试。但是当我们进行全面回归测试时,由于时间成本和测试心态变化的因素,其实我们是无法保证有能力全面回归测试的,这个时候就可以使用自动化测试工具来代替我们手工回归测试,这样既可以解决测试成本的问题,又可以解决测试过程中测试工程师的心态问题。目前,在国内自动化测试还是处于初步阶段,未来自动化测试一定会成为一个发展趋势。


回归测试在整个测试过程中都存在,而不只是存在于某个阶段,因为不管是单元测试、集成测试还是系统测试,只要在测试过程中发现系统存在BUG,就需要对BUG进行修改,而修改完成后就需要进行回归测试来验证是否将该BUG修改好。

推荐阅读:

浅谈智能设备质量保障:智能硬件测试如何开展?


从软件研发到上线整个过程中,都需要哪些测试


架构设计的五个核心要素,了解一下


如何编写测试用例?测试用例编写思路分享


Web站点自动化测试工具Selenium的主要功能


如何提升测试用例编写的专业性?分享8个思路


性能测试心得——吞吐量与并发数用户数之间的关系


测试工作中八成会遇到的一些软件测试管理问题


四种常见的功能测试用例设计方法




本文内容不用于商业目的,如涉及知识产权问题,请权利人联系SPASVO小编(021-60725088-8054),我们将立即处理,马上删除。



沪ICP备07036474号-4 |

沪公网安备 31010702003220号

2015-2022 版权所有 上海泽众软件科技有限公司 Shanghai ZeZhong Software Co.,Ltd.