paperbot · PL 论文追踪

RSS

Compatible Branch Coverage Driven Symbolic Execution for Efficient Bug Finding

PLDI 8(PLDI)2024引用 13
Qiuping Yi, Yifan Yu, Guowei Yang

尚未生成 AI 速览(可能缺少 API key 或等待下次运行补跑)。

原文摘要(Abstract)

Symbolic execution is a powerful technique for bug finding by generating test inputs to systematically explore all feasible paths within a given threshold. However, its practical usage is often limited by the path explosion problem. In this paper, we propose compatible branch coverage driven symbolic execution for efficient bug finding. Our new technique owns a novel path-pruning strategy obtained from program dependency analysis to effectively avoid unnecessary explorations. Specifically, based on a Compatible Branch Set , our technique directs symbolic execution to explore feasible branches while soundly pruning redundant paths that have no new contributions to branch coverage. We have implemented our approach atop KLEE and conducted experiments on a set of programs from Siemens Suite, GNU Coreutils, and other real-world programs. Experimental results show that, compared with the state-of-the-art symbolic execution techniques, our approach always uses significantly less time to reproduce bugs while achieving the same or better branch coverage. On average, our approach got over 45% path reduction and 3x speedup on the GNU Coreutils programs

链接与引用

DOI 原文 · PDF(开放获取) · DBLP

BibTeX
@article{YiYY24,
  title = {Compatible Branch Coverage Driven Symbolic Execution for Efficient Bug Finding},
  author = {Qiuping Yi and Yifan Yu and Guowei Yang},
  journal = {Proceedings of the ACM on Programming Languages},
  volume = {8},
  number = {PLDI},
  year = {2024},
  doi = {10.1145/3656443}
}