paperbot · PL 论文追踪

全部论文 待读 收藏

P2 History-Guided Configuration Diversification for Compiler Test-Program Generation

历史引导的配置多样化用于编译器测试程序生成
ASE 2019 34th IEEE/ACM International Conference on Automated Software Engineering (ASE)2019匹配度 2/10 · 论文聚焦编译器测试程序生成与配置多样化,属于软件测试/编译器测试方向,与用户关注的静态分析、形式化验证、浮点程序分析、贝叶斯程序分析以及 LLM/Agent 与 PL 交叉均无直接关系。其工业落地和问题驱动有一定吸引力,但主题不匹配。引用 52 inbox
Junjie Chen, Guancheng Wang, Dan Hao, Yingfei Xiong, Hongyu Zhang, Lu Zhang
crossref: 2026-09-12

AI 速览

一句话:提出 HiCOND,利用历史数据推断配置范围并搜索多样化配置,生成更易触发且多样的编译器测试程序。

编译器测试的关键是生成能有效发现 bug 的测试程序。尽管 Csmith 等测试生成器允许配置程序特征,但哪些配置有效并不清楚:有效配置既要易触发 bug,又要足够多样以发现不同类型 bug。本文提出 HiCOND,一种历史数据驱动的配置多样化测试程序生成方法。HiCOND 首先基于历史数据推断每个配置项中更可能生成 bug-revealing 测试程序的范围,然后通过粒子群优化搜索一组能产生多样测试程序的配置,最后据此生成测试程序。在 GCC 和 LLVM 上的实验表明,HiCOND 比三种现有方法分别多检测 75.00%、133.33% 和 145.00% 的 bug;该方法还应用于一家全球 IT 公司的实际编译器测试,并在实践评估中检测到 11 个 bug。

问题
编译器测试中,如何配置测试生成器才能生成既易触发 bug 又多样的测试程序,从而高效发现更多不同类型 bug,这一问题尚不明确。
方法
HiCOND 利用历史数据推断各配置项中更可能触发 bug 的范围,并通过粒子群优化搜索一组能够产生多样测试程序的测试配置,再据此生成测试程序。
评估
在 GCC 和 LLVM 上与三种现有方法进行对比实验,并在全球 IT 公司的实际编译器测试中开展实践评估。
原文摘要(Abstract)

Compilers, like other software systems, contain bugs, and compiler testing is the most widely-used way to assure compiler quality. A critical task of compiler testing is to generate test programs that could effectively and efficiently discover bugs. Though we can configure test generators such as Csmith to control the features of the generated programs, it is not clear what test configuration is effective. In particular, an effective test configuration needs to generate test programs that are bug-revealing, i.e., likely to trigger bugs, and diverse, i.e., able to discover different types of bugs. It is not easy to satisfy both properties. In this paper, we propose a novel test-program generation approach, called HiCOND, which utilizes historical data for configuration diversification to solve this challenge. HiCOND first infers the range for each option in a test configuration where bug-revealing test programs are more likely to be generated based on historical data. Then, it identifies a set of test configurations that can lead to diverse test programs through a search method (particle swarm optimization). Finally, based on the set of test configurations for compiler testing, HiCOND generates test programs, which are likely to be bug-revealing and diverse. We have conducted experiments on two popular compilers GCC and LLVM, and the results confirm the effectiveness of our approach. For example, HiCOND detects 75.00%, 133.33%, and 145.00% more bugs than the three existing approaches, respectively. Moreover, HiCOND has been successfully applied to actual compiler testing in a global IT company and detected 11 bugs during the practical evaluation.

链接与引用

DOI 原文 ·

BibTeX
@inproceedings{paperbot5219,
  title = {History-Guided Configuration Diversification for Compiler Test-Program Generation},
  author = {Junjie Chen and Guancheng Wang and Dan Hao and Yingfei Xiong and Hongyu Zhang and Lu Zhang},
  booktitle = {ASE},
  year = {2019},
  doi = {10.1109/ase.2019.00037}
}