突变检测,有很多假阳性。尽管有这些假阳性,为什么以及什么时候我应该使用突变测试?
例如。
public int add(int a,int b){
return a+b;
}
public void testAdd() {
add(2,2);
...
}如果突变结果为,则返回a*b
测试用例仍然可以通过,但它不应该通过。
发布于 2015-07-28 17:11:07
您给出的示例不是假阳性(通常称为等效突变)
当你的单个测试不能完全描述你想要的行为时,突变体会存活下来(另外)。也就是说,突变测试告诉你你的测试套件是有缺陷的。
这应该会提示您添加更多描述行为的测试(例如,断言1+2= 3)。
当你添加更多的测试时,这个变种就会被杀死。
你应该在你的开发中使用突变测试来发现你的错误。尽管理论上等价的突变体是一个大问题(你只能通过手动检查来确定存活的突变体是否等价),但在实践中,我发现它们很少成为问题-至少在使用pitest进行变异时是这样。
https://stackoverflow.com/questions/31650703
复制相似问题