paperbot · PL 论文追踪

全部论文 待读 收藏

P2 Bug synthesis: challenging bug-finding tools with deep faults

缺陷合成:以深层缺陷挑战缺陷查找工具
FSE Proceedings of the 2018 26th ACM Joint Meeting on European Software Engineering Conference and Symposium on the Foundations of Software Engineering2018匹配度 3/10 · 该论文用符号执行、约束合成等形式化技术生成缺陷语料,用于评估缺陷检测工具,属于程序分析与形式化方法方向,但与用户核心关注的 LLM/Agent 与静态分析/形式化验证交叉、浮点程序分析、贝叶斯程序分析均无直接关联。引用 55 inbox
Subhajit Roy, Awanish Pandey, Brendan Dolan-Gavitt, Yu Hu
crossref: 2026-09-12

AI 速览

一句话:提出缺陷注入系统 Apocalypse,用符号执行与约束合成生成公平、深层、独立、可复现且罕见的缺陷语料。

评估缺陷检测工具长期缺乏可靠的真实缺陷语料;已有 LAVA、EvilCoder 等自动缺陷注入系统生成的缺陷与自然缺陷存在多方面差异。本文提出自动缺陷注入系统 Apocalypse,利用符号执行、基于约束的程序合成与模型计数等形式化技术,自动向大型代码库注入公平(可被现有工具发现)、深层(触发需满足长依赖链)、互不相关、可复现且罕见(仅少量输入可触发)的缺陷。作者将缺陷注入 30 个 Coreutils 程序以及 TCAS 测试套件,并从多个指标评估其真实性。结果表明 Apocalypse 合成的缺陷高度真实,不偏向某一类缺陷发现策略,且比手工注入的缺陷更难发现:最先进的符号执行工具需多约 240 倍的测试才能发现。

问题
缺陷检测工具的研究长期缺乏可用于评估其效果的可靠真实缺陷语料,而已有自动注入缺陷与自然缺陷差异较大。
方法
Apocalypse 结合符号执行、基于约束的程序合成与模型计数,自动向大型代码库注入公平、深层、互不相关、可复现且罕见的缺陷。
评估
向 30 个 Coreutils 程序与 TCAS 测试套件注入缺陷,从多个指标检验缺陷真实性,并与手工注入缺陷及 LAVA 对比检测难度,衡量发现缺陷所需测试数量。
原文摘要(Abstract)

In spite of decades of research in bug detection tools, there is a surprising dearth of ground-truth corpora that can be used to evaluate the efficacy of such tools. Recently, systems such as LAVA and EvilCoder have been proposed to automatically inject bugs into software to quickly generate large bug corpora, but the bugs created so far differ from naturally occurring bugs in a number of ways. In this work, we propose a new automated bug injection system, Apocalypse, that uses formal techniques—symbolic execution, constraint-based program synthesis and model counting—to automatically inject fair (can potentially be discovered by current bug-detection tools), deep (requiring a long sequence of dependencies to be satisfied to fire), uncorrelated (each bug behaving independent of others), reproducible (a trigger input being available) and rare (can be triggered by only a few program inputs) bugs in large software code bases. In our evaluation, we inject bugs into thirty Coreutils programs as well as the TCAS test suite. We find that bugs synthesized by Apocalypse are highly realistic under a variety of metrics, that they do not favor a particular bug-finding strategy (unlike bugs produced by LAVA), and that they are more difficult to find than manually injected bugs, requiring up around 240× more tests to discover with a state-of-the-art symbolic execution tool.

链接与引用

DOI 原文 ·

BibTeX
@inproceedings{paperbot4619,
  title = {Bug synthesis: challenging bug-finding tools with deep faults},
  author = {Subhajit Roy and Awanish Pandey and Brendan Dolan-Gavitt and Yu Hu},
  booktitle = {FSE},
  year = {2018},
  doi = {10.1145/3236024.3236084}
}