论文

Java 项目的基于调用链的 LLM 测试生成

Call-Chain-Aware LLM-Based Test Generation for Java Projects

摘要

大语言模型 (LLM) 最近显示出生成项目级单元测试的强大潜力。然而,现有的最先进的方法主要依赖于执行路径信息来指导提示构造,这对于具有丰富的类间依赖关系、深度调用链和复杂的对象初始化要求的复杂软件系统来说通常是不够的。在本文中,我们提出了 CAT,一种新颖的基于 LLM 的调用链感知测试生成方法,该方法通过专门的静态分析将调用链和依赖上下文明确地合并到提示中。为了构建可执行的、语义上有效的测试上下文,CAT 系统地对调用者-被调用者关系、对象构造函数和第三方依赖关系进行建模,并支持在发生生成失败时进行迭代测试修复。我们根据广泛使用的 Defects4J 基准测试以及 LLM 截止日期后发布的四个实际 GitHub 项目来评估 CAT。结果表明,在 Defects4J 的所有项目中,与最先进的方法 PANTA 相比,CAT 将线路和分支覆盖率分别提高了 18.04% 和 21.74%,同时在截止后的实际项目中始终实现卓越的性能。消融研究进一步证明了 CAT 中调用链和依赖上下文的重要性。