目前,我有一些测试被指责为不能很好地捕捉bug。我想要做变异测试,以检测它们(并防止添加新的无用测试),但没有时间效率低的循环:更改代码->重新编译->运行测试->更改代码->重新编译->运行测试.等。
最初,我想直接修改二进制精灵文件(没有重新编译),但正如后来的帖子所建议的那样,这是没有意义的。
发布于 2015-06-17 09:39:10
好的,通过将突变测试分成四个主要阶段,我能够部分地解决这个问题:
实现是在python和C++中完成的,它大约有1700行代码(带有测试)+产品代码(CMake和gtest main.cpp文件)中的小适应。它只支持几个简单的突变,但仍然很有趣:)
发布于 2013-06-20 09:08:57
假设测试运行得很快,并且运行的次数足够大(~1M,~1k?),我应该得到潜在bug的命中率的粗略估计。
不是的。你的“精灵二进制文件中的一个位错误”可能会破坏任何东西(从精灵格式到数据段到调用堆栈等等)。通过这种方式,您不会得到任何关于but数量的粗略估计,而是对已损坏的可执行文件执行概率的粗略估计(这与您的应用程序完全无关)。
目前,我有很多测试被指责为根本不捕获bug。
这是您必须直接解决的问题,并且没有快捷方式:您必须为您的测试建立新的目标,重构代码以支持它们并实现它们。
https://stackoverflow.com/questions/17209373
复制相似问题