【问题标题】:What's the difference between regression testing and mutation testing?回归测试和突变测试有什么区别?
【发布时间】:2012-03-29 15:41:58
【问题描述】:

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

【问题讨论】:

    标签: testing regression-testing mutation-testing


    【解决方案1】:

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

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

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

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


    Mutation testing 实际上是在您的应用程序中引入小错误(称为突变)(这些错误应该修复错误或提供新功能),以查看您的测试套件是否会发现它们。

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

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

    【讨论】:

    • 所以你的意思是故意注入错误,目的是测试测试套件是否可以测试你的应用程序?
    【解决方案2】:

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

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

    【讨论】:

      【解决方案3】:

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

      【讨论】:

        【解决方案4】:

        不同的目的。想象一下,你有一个产品,比如版本 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 已解决。

        回归测试就是发现这种问题。

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

        【讨论】:

          【解决方案5】:

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

          回归测试是任何类型的软件测试,旨在在对系统的现有功能和非功能区域进行更改(例如增强、补丁或配置更改)后发现新的软件错误或回归.

          Mutation testing(或 Mutation analysis 或 Program mutation)是一种软件测试方法,涉及对程序的源代码或字节码进行微小的修改。

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

          【讨论】:

            猜你喜欢
            • 2016-12-06
            • 2011-07-15
            • 1970-01-01
            • 1970-01-01
            • 2011-02-14
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多