软件学报

北大核心,INSPEC,JST,Pж(AJ),EI

国内刊号:11-2560/TP

国际刊号:1000-9825

软件学报杂志2026年第7期:基于大语言模型的Java新特性测试程序生成

发布日期:

作者:赵英全,张博凯,王赞,郭以勒,陈佳丽,陈翔,陈俊洁

单位:赵英全,天津大学 智能与计算学部, 天津 30035011,张博凯,天津大学 智能与计算学部, 天津 30035002,王赞,天津大学 智能与计算学部, 天津 30035003,郭以勒,天津大学 智能与计算学部, 天津 30035004,陈佳丽,龙岩学院 数学与信息工程学院, 福建 龙岩 36401205,陈翔,南通大学 人工智能与计算机学院, 江苏 南通 22601906,陈俊洁,天津大学 智能与计算学部, 天津 30035007

关键词:大语言模型;测试程序生成;Java编译器;Java虚拟机;编译器测试;JVM测试

基金:国家重点研发计划(2024YFB4506300);国家自然科学基金(62472310, 62322208, 62232001, 12411530122)

Java编程语言自诞生以来,就始终处于不断发展和演变的过程中。随着新语言特性及编程范式的不断涌现,Java的表达能力和执行效率在不断提升,推动了整个软件生态的进步。为了确保Java生态的安全性和稳定性,研究人员设计了多种针对Java编译器及虚拟机的测试程序生成方法,以检测潜在的缺陷。然而,现有工作主要针对成熟的语法设计测试程序生成方法或变异策略,难以对语言新特性进行有效地测试。为此,本文提出一种基于大语言模型的Java新特性测试程序生成方法LumiX。首先,LumiX利用大模型对使用自然语言描述的新语言特性进行总结,概括得到新特性的使用描述;随后,LumiX以历史揭错测试程序作为种子程序,利用程序分析工具提取种子程序中可复用的程序元素,结合新特性的使用描述,利用大模型生成针对新特性的代码片段。新生成的代码片段将被插入至种子程序中,生成能够覆盖新特性的测试程序。最后,LumiX设计了双层的差分测试方法,分别利用不同的Java编译器(javac和ECJ)及Java虚拟机(Hotspot和OpenJ9)对新生成的测试程序进行编译和执行,通过对比不同编译器和虚拟机的执行结果来检测潜在的缺陷。实验结果表明,LumiX能够有效生成覆盖Java语言新特性的测试程序,并提升现有工具对Java语言新特性的测试能力。同时,本文将LumiX应用于最新发布的Java编译器以及虚拟机的测试中,累计发现16个未知缺陷,其中12个已被开发人员确认或修复。

来源:2026年第7期

《软件学报》期刊编辑部

查看软件学报杂志2026年第7期

联系我们

  • 地址:北京8718信箱
  • 电话:010-62562563
  • E-mail:jos (a) iscas. ac. cn

咨询工作人员