一句话:提出 InterFuzz,首个用异构程序图引导生成复杂类间结构测试用例的 Java 编译器模糊测试框架,发现 24 个新 bug。
现代 Java JIT 与 AOT 编译器在优化时会推断和分析复杂的类间结构,一旦推断错误就会引入严重缺陷(HotSpot、R8 等生产编译器均有先例)。然而现有 Java 模糊测试工具主要关注类内或方法内的简单构造,难以充分探索类间关系。为此,作者提出 InterFuzz:它引入异构程序图(HPG)来抽象和操纵类间关系,利用类间变异器构造复杂的类间交互,并以图复杂度指标引导测试生成趋向高多样性代码。评估表明,InterFuzz 能发现传统模糊测试器遗漏的编译器缺陷,在 HotSpot、ART 和 R8 上共发现 24 个新 bug,其中 20 个已被开发者确认,16 个依赖复杂的类间结构。
Modern Java compilers, such as Just-In-Time (JIT) and Ahead-Of-Time (AOT) compilers, often infer and analyze complex inter-class structures to perform program optimizations while preserving semantic correctness. However, incorrect inference of these structures during compilation can lead to critical bugs, as observed in production compilers like HotSpot and R8. Despite their effectiveness, existing Java fuzzing tools fail to adequately explore inter-class relationships, focusing instead on simpler intra-class or intra-method constructs. To bridge this gap, we present InterFuzz, the first fuzzing framework designed to systematically generate Java test cases with complex inter-class structures. InterFuzz introduces a novel concept of Heterogeneous Program Graph (HPG) to abstract and manipulate inter-class relationships. It then employs Inter-Class Mutators to construct intricate interactions, and utilizes graph complexities to guide test generation toward high-diversity code. Our evaluation shows that InterFuzz effectively uncovers compiler bugs that elude traditional fuzzers, having discovered 24 new bugs across HotSpot, ART, and R8. Among these, 20 bugs are confirmed by developers and 16 bugs hinge on intricate inter-class structures.
@inproceedings{paperbot11616,
title = {Fuzzing Java Optimizing Compilers with Complex Inter-Class Structures Guided by Heterogeneous Program Graphs},
author = {Shiyu Qiu and Ming Wen and Zifan Xie and Hai Jin},
booktitle = {ICSE},
year = {2026},
doi = {10.1145/3744916.3773212}
}