从缺陷减少的角度来看,突变测试能否成功地用于改进 TDD?
5 回答
恕我直言,突变测试理论上可以减少缺陷,不仅在 TDD 上下文中,而且在其他上下文中也是如此......唯一的问题是在实践中不经常使用。另请参阅突变测试在实践中有用吗?
我使用它,并认为它是成功的。
如果你想对 Java 使用变异测试,我强烈建议使用David Schuler的新Javalanche工具,而不是 Jester 和朋友。Javalanche 操作的是字节码而不是源代码,因此速度要快几个数量级。
单元测试的用处不再讨论。
它们在质量应用程序的概念中是必不可少的。但是,我们如何评估它们的相关性?
代码覆盖率指标高达 100% 并不意味着代码经过 100% 测试。这只是单元测试执行期间执行代码的视图。
这种技术将使您对测试更有信心。
是的,我相信它是对 TDD 的一个很好的补充。
Google 的开发人员似乎将其用作代码审查或拉取请求检查的辅助工具:
https://homes.cs.washington.edu/~rjust/publ/industrial_mutation_icst_2018.pdf
这是论文的引述:
开发人员已决定重新设计大量代码以使其可测试,以便杀死突变体,他们在查看突变体的复杂逻辑表达式中发现了错误,他们决定删除具有等效突变体的代码,因为他们认为这是过早的优化,他们声称突变体为他们节省了数小时的调试时间,甚至是生产中断,因为没有测试用例正确地覆盖了突变下的逻辑。突变测试被称为多年来代码审查验证中最好的改进之一。虽然这种反馈很难量化,但再加上成千上万的开发人员愿意在他们的代码更改上检查浮出水面的突变体,这就是一个声明。
它可以,但需要一点努力。请检查这个,
http://abeletsky.blogspot.com/2010/07/using-of-mutation-testing-in-real.html