Fire my passion

Anything with my most passion……
【摘抄】回归测试(Regression Test)

回归测试(Regression Test)

问:我听说不少关于Regression Test的介绍,但是它到底是怎么“回归”法?回归到哪里去?我还是没搞懂。

答:Regress 的英语定义是:  return  to  a  worse  or  lessdeveloped state。是倒退、退化、退步的意思。

在软件项目中,如果一个模块或功能以前是正常工作的,但是在一个新的构建中出了问题,那这个模块就出现了一个“退步”(Regression),从正常工作的稳定状态退化到不正常工作的不稳定状态。

在一个模块的功能逐步完成的同时,与此功能有关的测试用例也同样在完善中。一旦有关的测试用例通过,我们就得到了此模块的功能基准(Baseline)。

假如,在3.1.5版本,模块A的测试用例125是通过的,但是测试人员发现在新的版本3.1.6,这个测试用例却失败了,这就是一个“倒退”。在新版本上运行所有已通过的测试用例以验证有没有“退化”情况发生,这个过程就是一个“Regression Test”。如果这样的“倒退”是由于模块的功能发生了正常变化(由于设计变更的原因)引起的,那么测试用例的基准就要修改,以便和新的功能保持一致。

针对一个Bug Fix(拖鞋),我们也要作Regression Test。

(1)验证新的代码的确把缺陷改正了。

(2)同时要验证新的代码没有把模块的现有功能破坏,没有Regression。

所以对于“回归测试”中的“回归”,我们可以理解为“回归到以前不正常的状态”。

回归测试最好要自动化,因为这样就可以对于每一个构建快速运行所有回归测试,以保证尽早发现问题。在微软的实践中,在一个项目的最后稳定阶段,所有人都要参加测试,以验证所有已经修复过的 Bug 的确得到了修复,并且没有在最后一个版本中“复发”,这是一个大规模的、全面的“回归测试”。

posted on 2009-12-17 14:26  everx  阅读(433)  评论(0编辑  收藏  举报