Page 31 - 《软件学报》2026年第7期
P. 31
2716 软件学报 2026 年第 37 卷第 7 期
LumiX 利用大模型强大的代码生成能力, 通过结合历史揭错测试程序的上下文以及新特性的使用描述, 生成新的
针对新特性的代码片段. 新生成的代码片段将被插入至历史揭错测试程序中, 从而生成新的测试程序. 新生成的测
试程序采用两阶段的差分测试, 分别用 Java 编译器和 JVM 对其进行编译和执行, 从而全面地检测 Java 编译器和
JVM 中与新特性相关的缺陷. 本文在 4 个长期支持版本的 OpenJDK、两款主流的 Java 编译器以及两款主流的
JVM 上进行了广泛的实验. 实验结果表明, LumiX 在检测新特性缺陷方面优于现有工作, 且能够有效提升 Java 编
译器和 Java 虚拟机的代码覆盖率. 此外, 在实验过程中, LumiX 累计检测出 16 个未知缺陷, 其中 12 个已经被开发
人员确认或修复.
References
[1] OpenJDK. Java Release. 2025. https://openjdk.org/projects/jdk/24/
[2] Darcy JD. JEP 126: Lambda expression & virtual extension methods. 2015. https://openjdk.org/jeps/126
[3] Bateman A, Pressler R. JEP 437: Structured concurrency (second incubator). 2023. https://openjdk.org/jeps/437
[4] Chen JJ, Patra J, Pradel M, Xiong YF, Zhang HY, Hao D, Zhang L. A survey of compiler testing. ACM Computing Surveys (CSUR),
2021, 53(1): 4. [doi: 10.1145/3363562]
[5] Haghighat MR, Khukhro D, Yakovlev A. JavaFuzzer. 2018. https://github.com/AzulSystems/JavaFuzzer
[6] Yang XJ, Chen Y, Eide E, Regehr J. Finding and understanding bugs in C compilers. In: Proc. of the 32nd ACM SIGPLAN Conf. on
Programming Language Design and Implementation. San Jose: ACM, 2011. 283–294. [doi: 10.1145/1993498.1993532]
[7] Livinskii V, Babokin D, Regehr J. Random testing for C and C++ compilers with YARPGen. Proc. of the ACM on Programming
Languages, 2020, 4(OOPSLA): 196. [doi: 10.1145/3428264]
[8] Chen JJ, Wang GC, Hao D, Xiong YF, Zhang HY, Zhang L. History-guided configuration diversification for compiler test-program
generation. In: Proc. of the 34th IEEE/ACM Int’l Conf. on Automated Software Engineering. San Diego: IEEE, 2019. 305–316. [doi: 10.
1109/ASE.2019.00037]
[9] Le V, Afshari M, Su ZD. Compiler validation via equivalence modulo inputs. In: Proc. of the 35th ACM SIGPLAN Conf. on
Programming Language Design and Implementation. Edinburgh: ACM, 2014. 216–226. [doi: 10.1145/2594291.2594334]
[10] Le V, Sun CN, Su ZD. Finding deep compiler bugs via guided stochastic program mutation. In: Proc. of the 2015 ACM SIGPLAN Int’l
Conf. on Object-oriented Programming, Systems, Languages, and Applications. Pittsburgh: ACM, 2015. 386–399. [doi: 10.1145/2814270.
2814319]
[11] Sun CN, Le V, Su ZD. Finding compiler bugs via live code mutation. In: Proc. of the 2016 ACM SIGPLAN Int’l Conf. on Object-
oriented Programming, Systems, Languages, and Applications. Amsterdam: ACM, 2016. 849–863. [doi: 10.1145/2983990.2984038]
[12] Wu MY, Lu MH, Cui HM, Chen JJ, Zhang YQ, Zhang LM. JITfuzz: Coverage-guided fuzzing for JVM just-in-time compilers. In: Proc.
of the 45th IEEE/ACM Int’l Conf. on Software Engineering. Melbourne: IEEE, 2023. 56–68. [doi: 10.1109/ICSE48619.2023.00017]
[13] Xie ZF, Wen M, Qiu SY, Jin H. Validating JVM compilers via maximizing optimization interactions. In: Proc. of the 29th ACM Int’l
Conf. on Architectural Support for Programming Languages and Operating Systems, Vol. 4. ACM, 2024. 345–360. [doi: 10.1145/3622781.
3674188]
[14] Li C, Jiang YY, Xu C, Su ZD. Validating JIT compilers via compilation space exploration. In: Proc. of the 29th Symp. on Operating
Systems Principles. Koblenz: ACM, 2023. 66–79. [doi: 10.1145/3600006.3613140]
[15] Chen YT, Su T, Sun CN, Su ZD, Zhao JJ. Coverage-directed differential testing of JVM implementations. In: Proc. of the 37th ACM
SIGPLAN Conf. on Programming Language Design and Implementation. Santa Barbara: ACM, 2016. 85–99. [doi: 10.1145/2908080.
2908095]
[16] Vallée-Rai R, Co P, Gagnon E, Hendren L, Lam P, Sundaresan V. Soot—A Java bytecode optimization framework. In: Proc. of the 1999
Conf. of the Centre for Advanced Studies on Collaborative Research. Mississauga: IBM Press, 1999. 13. [doi: 10.5555/781995.782008]
[17] Gu QH. LLM-based code generation method for golang compiler testing. In: Proc. of the 31st ACM Joint European Software Engineering
Conf. and Symp. on the Foundations of Software Engineering. San Francisco: ACM, 2023. 2201–2203. [doi: 10.1145/3611643.3617850]
[18] Liu KB, Liu YY, Chen ZP, Zhang JM, Han YD, Ma Y, Li G, Huang G. LLM-powered test case generation for detecting tricky bugs.
arXiv:2404.10304v1, 2024.
[19] Tu HX, Zhou ZD, Jiang H, Yusuf INB, Li YX, Jiang LX. LLM4CBI: Taming LLMs to generate effective test programs for compiler bug
isolation. arXiv:2307.00593v1, 2023.
[20] Wang Y, Wang WS, Joty S, Hoi SCH. CodeT5: Identifier-aware unified pre-trained encoder-decoder models for code understanding and

