Page 9 - 《软件学报》2026年第7期
P. 9
软件学报 ISSN 1000-9825, CODEN RUXUEW E-mail: jos@iscas.ac.cn
2026,37(7):2694−2718 [doi: 10.13328/j.cnki.jos.007590] [CSTR: 32375.14.jos.007590] http://www.jos.org.cn
©中国科学院软件研究所版权所有. Tel: +86-10-62562563
*
基于大语言模型的 Java 新特性测试程序生成
赵英全 1 , 张博凯 1 , 王 赞 1 , 郭以勒 1 , 陈佳丽 2 , 陈 翔 3 , 陈俊洁 1
1
(天津大学 智能与计算学部, 天津 300350)
2
(龙岩学院 数学与信息工程学院, 福建 龙岩 364012)
3
(南通大学 人工智能与计算机学院, 江苏 南通 226019)
通信作者: 陈俊洁, E-mail: junjiechen@tju.edu.cn
摘 要: Java 编程语言自诞生以来, 就始终处于不断发展和演变的过程中. 随着新语言特性及编程范式的不断涌现,
Java 的表达能力和执行效率在不断提升, 推动了整个软件生态的进步. 为了确保 Java 生态的安全性和稳定性, 研究
人员设计了多种针对 Java 编译器及虚拟机的测试程序生成方法, 以检测潜在的缺陷. 然而, 现有工作主要针对成熟
的语法设计测试程序生成方法或变异策略, 难以对语言新特性进行有效的测试. 为此, 提出一种基于大语言模型的
Java 新特性测试程序生成方法 LumiX. 首先, LumiX 利用大模型对使用自然语言描述的新语言特性进行总结, 概括
得到新特性的使用描述; 随后, LumiX 以历史揭错测试程序作为种子程序, 利用程序分析工具提取种子程序中可复
用的程序元素, 结合新特性的使用描述, 利用大模型生成针对新特性的代码片段. 新生成的代码片段将被插入至种
子程序中, 生成能够覆盖新特性的测试程序. 最后, LumiX 设计了双层的差分测试方法, 分别利用不同的 Java 编译
器 (javac 和 ECJ) 及 Java 虚拟机 (HotSpot 和 OpenJ9) 对新生成的测试程序进行编译和执行, 通过对比不同编译器
和虚拟机的执行结果来检测潜在的缺陷. 实验结果表明, LumiX 能够有效生成覆盖 Java 语言新特性的测试程序,
并提升现有工具对 Java 语言新特性的测试能力. 同时, 将 LumiX 应用于最新发布的 Java 编译器以及虚拟机的测
试中, 累计发现 16 个未知缺陷, 其中 12 个已被开发人员确认或修复.
关键词: 大语言模型; 测试程序生成; Java 编译器; Java 虚拟机; 编译器测试; JVM 测试
中图法分类号: TP311
中文引用格式: 赵英全, 张博凯, 王赞, 郭以勒, 陈佳丽, 陈翔, 陈俊洁. 基于大语言模型的Java新特性测试程序生成. 软件学报,
2026, 37(7): 2694–2718. http://www.jos.org.cn/1000-9825/7590.htm
英文引用格式: Zhao YQ, Zhang BK, Wang Z, Guo YL, Chen JL, Chen X, Chen JJ. Java New Feature Test Program Generation Based
on Large Language Models. Ruan Jian Xue Bao/Journal of Software, 2026, 37(7): 2694–2718 (in Chinese). http://www.jos.org.cn/1000-
9825/7590.htm
Java New Feature Test Program Generation Based on Large Language Models
1
1
2
3
1
1
ZHAO Ying-Quan , ZHANG Bo-Kai , WANG Zan , GUO Yi-Le , CHEN Jia-Li , CHEN Xiang , CHEN Jun-Jie 1
1
(College of Intelligence and Computing, Tianjin University, Tianjin 300350, China)
2
(School of Mathematics and Information Engineering, Longyan University, Longyan 364012, China)
3
(School of Artificial Intelligence and Computer Science, Nantong University, Nantong 226019, China)
Abstract: Since its inception, the Java programming language has been in a process of constant development and evolution. As new
language features and programming paradigms continuously emerge, Java’s expressiveness and execution efficiency are steadily improving,
* 基金项目: 国家重点研发计划 (2024YFB4506300); 国家自然科学基金 (62472310, 62322208, 62232001, 12411530122)
本文由“智能化基础软件可信构造和供应链安全”专题特约编辑王林章教授、司徒凌云研究员、钟浩研究员、 向剑文教授、张路教授
推荐.
收稿时间: 2025-09-08; 修改时间: 2025-10-20, 2025-12-04; 采用时间: 2025-12-08; jos 在线出版时间: 2025-12-26
CNKI 网络首发时间: 2026-06-02

