paperbot · PL 论文追踪

全部论文 待读 收藏

P2 Marco: A Stochastic Asynchronous Concolic Explorer

Marco:一种随机异步混合执行探索器
ICSE Proceedings of the IEEE/ACM 46th International Conference on Software Engineering2024匹配度 3/10 · 论文属于 concolic execution/程序测试调度方向,与广义程序分析相关;但未涉及用户核心关注的 LLM/Agent 与静态分析交叉、浮点程序分析或贝叶斯程序分析,因此匹配度较低。引用 8 inbox
Jie Hu, Yue Duan, Heng Yin
crossref: 2026-09-12

AI 速览

一句话:提出基于路径分歧概率的随机异步调度策略,提升混合执行测试的代码覆盖率。

混合执行(concolic execution)是强大的路径探索技术,但路径约束求解仍是主要瓶颈,因此输入/分支调度至关重要。现有最先进引擎采用的 branch-flipping 策略存在局限。本文提出从全局视角评估每个分支带来新代码覆盖的潜力,并考虑该分支处的路径分歧概率,据此设计随机异步调度策略。作者实现了原型工具 Marco,在来自 Google Fuzzbench、Binutils 和 UniBench 的 30 个真实程序上与最先进的混合执行器进行对比。结果表明 Marco 能超越基线方法,并在基线终止后仍持续取得进展。

问题
混合执行中路径约束求解是瓶颈,如何智能调度输入/分支以最大化代码覆盖成为关键问题。
方法
从全局视角评估每个分支的新代码覆盖潜力,并基于各分支的路径分歧概率,设计随机异步的分支翻转调度策略,实现原型 Marco。
评估
在 Google Fuzzbench、Binutils、UniBench 的 30 个真实程序上与最先进混合执行器对比,Marco 表现更优且在基线终止后仍能继续推进。
原文摘要(Abstract)

Concolic execution is a powerful program analysis technique for code path exploration. Despite recent advances that greatly improved the efficiency of concolic execution engines, path constraint solving remains a major bottleneck of concolic testing. An intelligent scheduler for inputs/branches becomes even more crucial. Our studies show that the previously under-studied branch-flipping policy adopted by state-of-the-art concolic execution engines has several limitations. We propose to assess each branch by its potential for new code coverage from a global view, concerning the path divergence probability at each branch. To validate this idea, we implemented a prototype Marco and evaluated it against the state-of-the-art concolic executor on 30 real-world programs from Google's Fuzzbench, Binutils, and UniBench. The result shows that Marco can outperform the baseline approach and make continuous progress after the baseline approach terminates.

链接与引用

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

BibTeX
@inproceedings{paperbot11259,
  title = {Marco: A Stochastic Asynchronous Concolic Explorer},
  author = {Jie Hu and Yue Duan and Heng Yin},
  booktitle = {ICSE},
  year = {2024},
  doi = {10.1145/3597503.3623301}
}