Testing 什么';回归测试和突变测试有什么区别?

Testing 什么';回归测试和突变测试有什么区别?,testing,regression-testing,mutation-testing,Testing,Regression Testing,Mutation Testing,只是想知道有什么不同。我需要一些简明的解释。维基百科对我来说有点太冗长了。实际上是一个测试套件,应该尽可能多地测试应用程序的功能 其思想是,当您根据修复bug或新功能的需要对应用程序进行更改时,回归测试有望发现更改中的任何问题(或回归) 这被称为回归,因为绝大多数测试都是由于以前的错误而添加的,因此,如果他们发现问题,您就回归到以前的状态(问题再次存在) 换句话说,回归测试测试您的应用程序 实际上是将小错误(称为突变)引入到应用程序中(不应该修复bug或提供新功能的错误),以查看您的测试套件是

只是想知道有什么不同。我需要一些简明的解释。维基百科对我来说有点太冗长了。

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

其思想是,当您根据修复bug或新功能的需要对应用程序进行更改时,回归测试有望发现更改中的任何问题(或回归)

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

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


实际上是将小错误(称为突变)引入到应用程序中(不应该修复bug或提供新功能的错误),以查看您的测试套件是否发现了这些错误

这个想法是,如果您的测试套件没有检测到突变,那么它是有缺陷的,应该添加更多的测试用例


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

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

  • 版本1.0:bug#123
  • 版本1.01:bug#123已解决,新bug#124
现在想象一下,您发布了全新的2.0版。 如果修复bug 124或添加新功能,您的bug 123再次处于活动状态,那么您将进行回归

  • 版本1.0:bug#123
  • 版本1.01:bug#123已解决,新bug#124
  • 版本2.0:bug#123激活(回归!),bug#124已解决
回归测试就是要找出这种if问题


Muation测试是测试的“测试”。假设您有一个测试套件,您如何确保您的测试会发现错误?您可能希望在代码中引入一个小的更改(是的,一个bug!),看看您的测试是否能找到它。这是变异测试。

每个维基百科页面的第一行都很好地总结了这一点:

回归测试是任何类型的软件测试,其目的是在系统的现有功能和非功能区域中发现新的软件缺陷或回归,这些缺陷或回归是在对其进行更改(如增强、补丁或配置更改)后发生的

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


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

如果我们只在bug固定区域对修改后的构建进行测试,则重新测试和回归测试之间的主要区别称为重新测试。如果我们对修改后的构建(包括应用程序中的所有主要功能)进行测试,则称为回归测试测试

虽然其他人已经向您简要描述了这两种回归测试和突变测试之间的差异,但在阅读突变测试时,请注意:

  • 互联网上的许多资源,包括作为的特例错误列出的资源

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

那么,您的意思是故意注入错误,目的是测试测试套件是否正确,以测试您的应用程序?