在软件开发过程当中,只要软件发生改动,就可能给该软件带来诸多的问题,我们就必须重新测试现有的功能模块。软件的改动可能是源于功能的变更、模块的增加或者bug的修改,具体表现在以下几个方面:
(1)跟踪和管理系统不够健全,遗漏对bug的修改;
(2)开发者对bug理解不够深入,只修改了bug的表面现象,而没有对bug做本质修改;
(3)本bug被修改,之前版本bug掩盖的其他错误暴露出来;
(4)bug被修改,但并没有考虑到与此问题相关联的其他功能模块。
回归测试正是为了验证以上几个方面是否发生,以便确定修改是否达到了预期的目的,验证修改是否损害了原有的正常功能。与此同时,还需要补充新的测试用例来测试新增的、被修改了的功能模块。验证修改的正确性及其影响,即为回归测试。
回归测试不是特定的测试级别,软件开发的各个阶段都会进行多次回归测试。