回归测试和变异测试之间有什么区别?

时间:2012-03-13 08:38:00

标签: testing regression-testing mutation-testing

想知道区别是什么。我需要一些简洁的解释。维基百科对我来说有点过于冗长。

5 个答案:

答案 0 :(得分:12)

Regression testing实际上是一个测试套件,应该尽可能多地测试应用程序的功能。

我们的想法是,当您根据错误修复或新功能的需要对应用程序进行更改时,回归测试有望捕获您的更改中的任何问题(或回归)。

它被称为回归,因为绝大多数测试都是由于之前的错误而添加的,因此,如果他们发现问题,您已经回归到之前的状态(问题再次存在)

换句话说,回归测试会测试您的应用程序。


Mutation testing实际上是将小错误(称为突变)引入您的应用程序(应该修复错误或提供新功能的错误),以确定您的测试套件是否可以检测到它们

这个想法是,如果您的测试套件没有获取突变,那么它就会有缺陷,并且应该添加更多的测试用例。

换句话说,变异测试会测试您的测试套件,而不是您的应用程序。

答案 1 :(得分:2)

不同的目的。想象一下,你有一个产品,比如版本1.0,有一个bug#123。在您的应用程序的1.01版中,您解决了该错误,但添加了一个新功能,您引入了一个新的错误,比如#124。现在你遇到这种情况:

  • 版本1.0:错误#123
  • 版本1.01:错误#123已解决,新错误#124。

现在假设你发布了全新的2.0版本。 如果,修复错误#124或添加新功能,您的错误#123再次处于活动状态,那么您就会有回归。

  • 版本1.0:错误#123
  • 版本1.01:错误#123已解决,新错误#124。
  • 版本2.0:错误#123活跃(REGRESSION!),错误#124解决。

如果出现问题,回归测试就是找到这种类型。

Muation测试是一个"测试"用于测试。想象一下,你有一个测试套件,你怎么能确定你的测试会发现错误?您可能希望在代码中引入一个小的更改(是的,一个错误!),以查看您的测试是否会找到它。这是变异测试。

答案 2 :(得分:1)

重新测试和回归测试之间的主要区别如果我们在错误修复区域对修改后的构建进行测试,则仅称为重新测试。如果我们对修改后的构建进行测试,包括应用程序中的所有主要功能主义者回归测试。

答案 3 :(得分:0)

每个维基百科页面的第一行总结得很好:

  

回归测试是指任何类型的软件测试,旨在发现系统的现有功能和非功能区域中的新软件错误或回归,例如增强,修补程序或配置更改等

     

变异测试(或变异分析或程序变异)是一种软件测试方法,涉及以较小的方式修改程序的源代码或字节代码。

变异测试实际上修改了程序以用于测试目的,而回归测试只是测试新代码如何影响程序。

答案 4 :(得分:0)

虽然其他人已经简要介绍了这两种回归测试和突变测试之间的区别,但在阅读有关突变测试时请注意:

不,模糊测试仍在尝试针对测试用例检查程序,而变异测试是针对不同版本的程序检查测试用例。