paperbot · PL 论文追踪

全部论文 待读 收藏

P1 Making symbolic execution promising by learning aggressive state-pruning strategy

通过学习激进状态剪枝策略提升符号执行效果
FSE Proceedings of the 28th ACM Joint Meeting on European Software Engineering Conference and Symposium on the Foundations of Software Engineering2020匹配度 6/10 · 该论文属于「AI→PL」方向(用学习算法改进符号执行的状态剪枝),与用户关注的利用学习方法增强静态分析/形式化验证有一定交叉,且其持续根据运行时数据更新概率剪枝策略带有贝叶斯式在线更新的味道。但它使用的并非 LLM/Agent,而是传统概率学习,也不涉及浮点程序分析或 ML 系统本身,落点偏传统自动化测试而非用户的核心交叉议题。引用 13 inbox
Sooyoung Cha, Hakjoo Oh
crossref: 2026-09-12

AI 速览

一句话:提出 HOMI,用学习驱动的激进状态剪枝只保留少量有前景状态,显著提升符号执行的覆盖率与缺陷发现能力。

符号执行在实践中通常尽可能保留大量状态,以防丢失重要状态,但这会导致状态爆炸和效率低下。本文提出 HOMI,通过只维护少量“有前景”状态来增强符号执行。作者观察到,在符号执行中只有极少数状态对提升代码覆盖率或到达缺陷点起关键作用。基于这一观察,HOMI 以最小化状态总数为目标,同时保留有前景状态;它利用学习算法在测试过程中不断累积数据,并据此持续更新概率式剪枝策略,从而识别并保留有前景状态。实验结果表明,在开源 C 程序上,HOMI 大幅提升了 KLEE 的代码覆盖率和缺陷发现能力。

问题
符号执行中维护尽可能多状态以避免漏掉重要状态,会造成状态爆炸,降低覆盖率提升和缺陷发现的效率。
方法
提出 HOMI,基于“仅少量状态对覆盖率和缺陷点至关重要”的观察,用学习算法根据测试过程累积的数据持续更新概率剪枝策略,只保留有前景状态。
评估
在开源 C 程序上对 KLEE 进行实验,比较代码覆盖率和缺陷发现能力。
原文摘要(Abstract)

We present HOMI, a new technique to enhance symbolic execution by maintaining only a small number of promising states. In practice, symbolic execution typically maintains as many states as possible in a fear of losing important states. In this paper, however, we show that only a tiny subset of the states plays a significant role in increasing code coverage or reaching bug points. Based on this observation, HOMI aims to minimize the total number of states while keeping “promising” states during symbolic execution. We identify promising states by a learning algorithm that continuously updates the probabilistic pruning strategy based on data accumulated during the testing process. Experimental results show that HOMI greatly increases code coverage and the ability to find bugs of KLEE on open-source C programs.

链接与引用

DOI 原文 ·

BibTeX
@inproceedings{paperbot5706,
  title = {Making symbolic execution promising by learning aggressive state-pruning strategy},
  author = {Sooyoung Cha and Hakjoo Oh},
  booktitle = {FSE},
  year = {2020},
  doi = {10.1145/3368089.3409755}
}