变异测试 java
多年以来,为源代码编写单元测试一直是一种好习惯。 并且还可以使用测试覆盖率报告来查看测试覆盖了多少代码。 尽管行+分支覆盖率报告非常有用,但是它并不能告诉您单元测试的实际效果。 因此,甚至在测试中没有一个断言的情况下,甚至有可能达到100%的覆盖率。
对更好的测试方法感兴趣,我参加了今年的“ 欢乐编码”会议中的“突变测试”研讨会。
变异测试是执行和分析单元测试的结果和覆盖范围的一种截然不同的方法。 无需测量单元测试“访问了”多少代码,而是确定单元测试实际上“测试了”多少代码。
那么它实际上是如何工作的
变异测试背后的基本思想是对(字节)代码进行微小的更改(变异),然后执行测试以查看是否被单元测试检测到。
可能的突变是将“ >
”更改为“ >=
”,将“ ++
”替换为“ --
”,并删除“ void
”方法调用。
因此,每个突变都会创建代码的变更版本,称为“突变”。
在进行实际的变异测试之前,首先需要对原始代码执行单元测试,以查看是否没有测试失败。
然后,将针对每个“突