Coverage guided fuzzing (CGF) is an effective testing technique which has detected hundreds of thousands of bugs from various software applications. It focuses on maximizing code coverage to reveal more bugs during fuzzing. However, a higher coverage does not necessarily imply a better fault detection capability. Triggering a bug involves not only exercising the specific program path but also reaching interesting program states in that path. In this paper, we use mutation testing to improve CGF in detecting bugs. We use mutation scores as feedback to guide fuzzing towards detecting bugs rather than just covering code. To evaluate our approach, we conduct a well-designed experiment on 5 benchmarks. We choose the state-of-the-art fuzzing technique Zest as baseline and construct two modified techniques on it using our approach. The experimental results show that our approach can improve CGF in both code coverage and bug detection.
翻译:引导引信是一种有效的测试技术(CGF),它从各种软件应用程序中检测出数十万个错误。它侧重于最大限度地扩大代码覆盖范围,以在模糊过程中发现更多的错误。但是,更高的覆盖面并不一定意味着更好的故障检测能力。触发一个错误不仅涉及使用特定程序路径,而且涉及在这条路径上达到有趣的程序状态。在本文中,我们使用突变测试来改进计算机界面检测错误。我们用突变计作为反馈,指导检测错误而不是仅仅覆盖代码。为了评估我们的方法,我们进行了一个设计良好的5个基准的实验。我们选择了最先进的模糊技术作为基线,并用我们的方法设计了两种修改技术。实验结果显示,我们的方法可以在代码覆盖和错误检测两方面改进计算机界面。