只是想知道有什么区别。我需要一些简明的解释。维基百科对我来说有点太冗长了。
5 回答
回归测试实际上是一个测试套件,应该尽可能多地测试应用程序的功能。
这个想法是,当您根据错误修复或新功能的需要对应用程序进行更改时,回归测试将有望捕获您的更改的任何问题(或回归)。
它被称为回归,因为绝大多数测试都是由于以前的错误而添加的,因此,如果他们发现问题,您已经回归到以前的状态(问题再次存在)。
换句话说,回归测试测试您的应用程序。
突变测试实际上是在您的应用程序中引入小错误(称为突变)(不应该修复错误或提供新功能的错误),以查看您的测试套件是否能够识别它们。
这个想法是,如果您的测试套件没有检测到突变,那么它是有缺陷的,应该添加更多的测试用例。
换句话说,突变测试测试您的测试套件而不是您的应用程序。
不同的目的。想象一下,你有一个产品,比如版本 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 活动(回归!),错误 #124 已解决。
回归测试就是发现这种问题。
变异测试是测试的“测试”。想象一下你有一个测试套件,你怎么能确定你的测试会发现错误?您可能想在您的代码中引入一个小的更改(是的,一个错误!),看看您的测试是否会找到它。这是突变测试。
重新测试和回归测试之间的主要区别如果我们仅在错误修复区域对修改后的版本进行测试,则称为重新测试。如果我们对修改后的版本进行测试,包括应用程序中的所有主要功能,则称为回归测试。
每个维基百科页面的第一行总结得很好:
回归测试是任何类型的软件测试,旨在在对系统的现有功能和非功能区域进行更改(例如增强、补丁或配置更改)后发现新的软件错误或回归。
突变测试(或突变分析或程序突变)是一种软件测试方法,它涉及对程序的源代码或字节码进行微小的修改。
变异测试实际上是为了测试目的而修改程序,而回归测试只是测试新代码如何影响程序。
虽然其他人已经简要描述了这两个回归测试和突变测试之间的区别,但在阅读突变测试时请注意:
- 互联网上的许多来源,包括关于 Fuzz 测试的 Wikipedia 页面错误地将Fuzz 测试列为Mutation testing的一个特例。
不,模糊测试仍在尝试根据测试用例检查程序,而变异测试正在根据程序的不同版本检查测试用例。