【问题标题】:Mutation Testing突变测试
【发布时间】:2010-12-25 03:46:17
【问题描述】:

从减少缺陷的角度来看,突变测试能否成功用于改进 TDD?

【问题讨论】:

标签: mutation-testing


【解决方案1】:

恕我直言,突变测试理论上不仅可以减少 TDD 上下文中的缺陷,还可以减少其他上下文中的缺陷......唯一的问题是在实践中不经常使用。另见Is mutation testing useful in practice?

【讨论】:

    【解决方案2】:

    我使用它,并认为它是成功的。

    如果您想对 Java 进行变异测试,我强烈建议您使用 David Schuler 的新 Javalanche 工具,而不是 Jester 和他的朋友。 Javalanche 操作的是字节码而不是源代码,因此速度要快几个数量级。

    【讨论】:

      【解决方案3】:

      可以,但需要付出一些努力。请检查这个,

      http://abeletsky.blogspot.com/2010/07/using-of-mutation-testing-in-real.html

      【讨论】:

      • 链接失效,在网络档案中不可用。
      【解决方案4】:

      单元测试的用处不再讨论。

      它们对于质量应用程序的概念至关重要。但是,我们如何评估它们的相关性?

      高达 100% 的代码覆盖率指标并不意味着代码经过 100% 的测试。这只是单元测试执行期间执行代码的视图。

      这项技术将使您对测试更有信心。

      This is a two step process: first mutants generation and then bloodshed of them. WTF?

      【讨论】:

        【解决方案5】:

        是的,我相信它是对 TDD 的一个很好的补充。

        Google 的开发人员似乎将其用作代码审查或拉取请求检查的辅助工具:

        https://homes.cs.washington.edu/~rjust/publ/industrial_mutation_icst_2018.pdf

        这是论文的引述:

        开发人员已决定重新设计大量代码以使其可测试,以便可以杀死突变体,他们在查看突变体的复杂逻辑表达式中发现了错误,他们决定删除具有等效突变体的代码,因为他们认为过早的优化,他们声称突变体为他们节省了数小时的调试甚至生产中断,因为没有测试用例正确覆盖突变下的逻辑。突变测试被称为多年来代码审查验证中最好的改进之一。虽然这种反馈很难量化,但再加上成千上万的开发人员愿意在他们的代码更改上检查浮出水面的突变体,这就是一个声明。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2013-06-05
          • 2020-02-02
          • 2013-01-11
          • 2012-07-04
          • 2019-03-08
          • 2012-03-29
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多