你真的了解回归测试吗?

发表于:2021-4-06 09:42

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:刘晓佳Rachel    来源:51Testing软件测试网原创

  一、什么是回归测试
  回归测试(regression test)是在程序被修改后启动的一个测试过程。其目的在于验证程序被修改后,程序仍然按照原有测试用例正常运行。在开发阶段,回归测试可用于发现缺陷并被修复后,重新验证带缺陷功能块这一阶段。

  二、回归测试和普通测试的区别
  许多人常以为回归测试只是普通测试的拓展,然而事实并非完全如此。回归测试与普通测试存在着以下几点区别。

  1.测试计划有不同
  普通测试的测试计划使用的测试用例全是新增未曾执行过的,常用于代码开发阶段;而回归测试测试计划中使用的测试用例为已经被执行过的。

  2.测试范围不同
  普通测试旨在于检测程序的正确性,包括单模块功能正确性以及模块交互的正确性;而回归测试只关注产生缺陷或新增功能点的程序正确性。

  3.时间消耗不同
  普通测试常占产品研发-交付周期一般以上;而回归测试与之相比,只占用很少的一部分时间。

  4.开发信息不同
  普通测试阶段,开发人员与测试人员关系和距离较近,测试人员获取开发信息比较容易和全面;而回归测试可以在任何时间、地点执行,测试人员获取开发信息相比不会那么易得。

  5.完成时间不同
  回归测试要求的完成时间远远小于普通测试,因为回归测试只会针对部分功能进行测试。

  6.频率不同
  回归测试在产品生命周期内会被频繁执行(如每个缺陷被修复后都会被执行);而普通测试一旦在产品交付后就会被终止。

  三、回归测试的分类
  回归测试可被分为两类:递进型回归测试(Progressive regression testing)和修正型回归测试(corrective regression testing)。
  递进型回归测试是指对原有测试用例进行修改,以适配测试修改后的程序(如新需求引入导致的模块或功能增删)。
  修正型回归测试与递进型回归测试相反,主要特点在于原有测试用例不做任何修改。修正型回归测试主要用于修正程序设计错误或缺陷修复后的测试,其目的在于验证程序严格按照测试用例的输入输出描述运行。
  递进型回归测试和修正型回归测试的区别总结如下表1所示:
表1 递进型回归测试和修正型回归测试的区别

  四、如何进行回归测试
  通过前面部分可以知道,回归测试总的目的是检测原有模块/功能点或新增模块/功能点运行正常,无缺陷。那么我么如何进行回归测试呢?回归测试流程与普通测试流程大同小异,都需要经过测试用例准备、测试计划(可有可无)、测试执行、测试报告输出等步骤。
  以数学形式表示回归测试使用的用例,可以这样说明:假如某开发周期的软件功能集合为P,与之对应的测试用例集为T。在回归测试时,我们可以使用测试用例集T、对新增/修改(比如修复缺陷)后的功能集P、进行测试。其中P、?P,T、?T。以此可见,针对回归测试,关键点在与测试用例集T、的选取。
  那么如何选取回归测试用例集呢?常有:根据代码修改部分选取回归测试用例集,或根据数据流图选取回归测试用例集等方法。简而言之,收集需要回归测试的功能集P、相关信息,在用例库中检索出与之关联的测试用例集T、。
  还是让我们用实例说明进行回归测试的整个流程吧,结合第三部分的阐述,以两个栗子来说明不同的回归测试类型,如何进行回归测试。

  1.修正型回归测试
  修正型回归测试主要用于检测出缺陷后并修复缺陷后进行,使用流程图表示这个过程可以如下图所示:
图1 修正型回归测试流程图

  假设:开发周期D内,软件功能集为P={P1,P2,P3,P4,P5},对应测试用例集为T={T1,T2,T3,T4,T5}。经过普通测试后,提交缺陷集B={B2,B3},B2是T2用例发现的与P2功能相关的缺陷;B3是T3用例发现的与P3功能相关的缺陷。
  经过缺陷修复后,需要对检测出缺陷的功能P2,P3进行回归测试,回归测试用例集为T、={T2,T3},T2和T3用例不做任何修改进行测试。

  2.递进型回归测试
  递进型回归测试通常针对对原有功能进行增删等修改后进行,递进型流程图和所处阶段如下图2所示,递进型回归测试可用于当前开发周期对原有功能进行修改后启动。
图2 递进型回归测试流程图

  假设:开发周期Dn+1内,软件功能集为P={P1,P2,P3,P4,P5、,P6,P7},其中P1-P4为软件原有功能,P6,P7为开发周期Dn+1内新增功能,P5、为对原有P5功能进行修改后的功能。对应测试用例集为T包含原有用例集T1-T4,新增用例集T6,T7,和修改后的测试用例T5、。即T={T1,T2,T3,T4,T5、,T6,T7}。
  在递进型回归测试阶段,需要对P5、功能进行回归测试,使用的测试用例为对原有T5用例进过修改,以适配新P5、的T5、用例。

  五、清楚回归测试的意义
  回归测试在测试活动中经常被提及和使用,常有测试人员不清楚常规(普通)测试和回归测试的意义,以及如何进行过回归测试。经过本文的介绍,可以帮助测试人员更好地了解和回归测试活动。

      版权声明:本文出自51Testing会员投稿,51Testing软件测试网及相关内容提供者拥有内容的全部版权,未经明确的书面许可,任何人或单位不得对本网站内容复制、转载或进行镜像,否则将追究法律责任。
《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号