6.5.5 回归测试

更新于 2026年10月10日 版权声明
6.5.5 回归测试

回归测试(Regression Testing)是指修改了旧代码后,重新进行测试以确认修改没有引入新的错误或导致其他代码产生错误。

无论在进行系统测试还是功能测试时,当发现一些严重的缺陷而需要修正时,会构造一个新的软件包或新的软件补丁包,然后进行测试。这时的测试不仅要验证被修复的软件缺陷是否真正被解决了,而且要保证以前所有运行正常的功能依旧保持正常,而不要受到这次修改的影响。因为,虽然已发现的程序缺陷被修复了,但可能在其他受影响的区域出现新的软件缺陷,这样的缺陷称为回归缺陷。如果这时没有回归测试,产品就带着这样的回归缺陷被发布出去了,就会造成严重的后果。回归测试就是为了发现回归缺陷而进行的测试。

在软件生存周期中的任何一个阶段,只要软件发生了改变,就可能给该软件带来问题。软件的改变可能是源于发现了错误并做了修改,也有可能是因为在集成或维护阶段加入了新的模块。当软件中所含错误被发现时,如果错误跟踪与管理系统不够完善,就可能会遗漏对这些错误的修改;而开发者对错误理解的不够透彻,也可能导致所做的修改只修正了错误的外在表现,而没有修复错误本身,从而造成修改失败;修改还有可能产生副作用从而导致软件未被修改的部分产生新的问题,使本来工作正常的功能产生错误。同样,在有新代码加入软件的时候,除了新加入的代码中有可能含有错误外新代码,还有可能对原有的代码带来影响。因此,每当软件发生变化时,我们就必须重新测试现有的功能,以便确定修改是否达到了预期的目的,检查修改是否损害了原有的正常功能。同时,还需要补充新的测试用例来测试新的或被修改了的功能。为了验证修改的正确性及其影响就需要进行回归测试。

回归测试作为软件生存周期的一个组成部分,在整个软件测试过程中占有很大的工作量比重,软件开发的各个阶段都会进行多次回归测试。在渐进和快速迭代开发中,新版本的连续发布使回归测试进行得更加频繁,而在极端编程方法中,更是要求每天都进行若干次回归测试。因此,通过选择正确的回归测试策略来改进回归测试的效率和有效性是非常有意义的。

回归测试是在程序有修改的情况下,保证原有功能正常的一种测试策略和方法,因为这时的测试不一定要进行全面测试,而是根据修改的情况进行有效测试。程序在发现严重软件缺陷要进行修改或版本升级要新增功能时需要对软件进行修改,修改好的程序要进行测试,这时要检验软件所进行的修改是否正确,保证改动不会带来新的严重错误。

(1)回归测试的测试目的

①测试软件变更之后,变更部分的正确性和对变更需求的符合性;(https://www.daowen.com)

②测试软件变更之后,软件原有的、正确的功能、性能和其他规定的要求的不损害性。

(2)回归测试的对象

①未通过软件单元测试的软件,变更部分的正确性和对变更需求的符合性;

②未通过软件配置项测试的软件,在变更之后,首先应对变更的软件进行单元测试,然后再进行相关的集成测试和配置项测试;

③未通过系统测试的软件,在变更之后,首先应对变更的软件进行单元测试,然后再进行相关的集成测试、软件配置项和系统测试;

④因其他原因进行变更之后的软件单元,首先应对变更的软件进行单元测试,然后再进行相关的软件测试。

↑上一章 ↓下一章
关注公众号获取验证码
复制内容需要验证码(7.99元/天)