变异测试

时间:2009-12-10 07:47:53

标签: mutation-testing

突变检测是否可以成功地用于从缺陷减少的角度改进TDD?

5 个答案:

答案 0 :(得分:4)

理论上,IMHO突变测试不仅可以减少TDD环境中的缺陷,还可以减少其他环境中的缺陷......唯一的问题是在实践中不经常使用。另请参阅Is mutation testing useful in practice?

答案 1 :(得分:1)

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

如果你想对Java使用变异测试,我强烈建议使用David Schuler的新Javalanche工具而不是Jester和朋友。 Javalanche操纵字节码而不是源代码,因此数量级更快。

答案 2 :(得分:0)

不再讨论单元测试的有用性。

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

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

这项技术可让您对测试更有信心。

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

答案 3 :(得分:0)

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

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

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

这是报纸上的一句话:

  

开发人员已决定重新设计大量代码,使其可测试,以便杀死突变体;他们发现了复杂的逻辑表达式中的错误,正在寻找突变体;他们决定删除等效突变体的代码,因为他们认为由于过早的优化,他们声称该突变体为他们节省了数小时的调试时间,甚至节省了生产中断的时间,因为没有测试用例正确地涵盖了突变体下的逻辑。变异测试被称为多年来代码审查验证中最好的改进之一。尽管这种反馈难以量化,但结合成千上万的愿意检查其代码更改中出现的突变体的开发人员,我们发表了自己的看法。

答案 4 :(得分:-1)

可能,但需要付出一点努力。请检查一下,

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