论文

上下文很重要:提高基于 LLM 的单元测试生成的实际可靠性

Context Matters: Improving the Practical Reliability of LLM-Based Unit Test Generation

摘要

自动化单元测试生成最近受益于 大语言模型 (LLM) 的进步,但我们的工业部署揭示了有前景的研究成果和实际可用性之间持续存在的差距。在具有复杂框架和跨文件依赖关系的现实项目中,LLM 生成的测试经常无法编译,需要昂贵的手动修复,或者提供不稳定的覆盖率改进。本文报告了我们在设计、部署和评估 CATGen 方面的经验,CATGen 是基于 LLM 的单元测试生成的上下文感知工作流程,并通过重复的工业故障和改进提供信息。我们发现编译稳健性关键取决于使项目级依赖关系明确、稳定测试类脚手架以及用轻量级静态分析替换基于 LLM 的迭代修复,而不是依赖 LLM 来推断不完整的项目上下文。这些经验驱动的见解塑造了 CATGen 的多阶段设计,它结合了结构化上下文检索、确定性测试框架构建和基于程序分析的后处理。我们根据专有工业项目中的真实复杂焦点方法以及 Defects4J 基准来评估 CATGen,以评估普遍性。在这两种设置中,与现有的基于 LLM 的方法相比,CATGen 显着提高了编译成功率和结构覆盖率,同时显着减少了生成时间和词元消耗。我们的结果表明,在实践中可靠的基于 LLM 的单元测试生成较少依赖于单独的即时工程,而更多地依赖于基于现实世界开发约束的系统工程支持。