摘要
arXiv:2403.16218v3 宣布类型: replace-cross
摘要:测试是软件开发中的一个核心部分。测试生成工具试图自动化原本耗时的手动测试创建任务,但生成高覆盖率的测试仍然具有挑战性。本文提出了一种名为CoverUp的新颖方法,用于驱动高覆盖率的Python回归测试生成。CoverUp结合了覆盖率分析、代码上下文和提示中的反馈,逐步指导LLM生成提高行覆盖率和分支覆盖率的测试。我们使用来自开源Python项目的具有挑战性的代码基准对CoverUp的原型实现进行了评估,并展示了CoverUp在现有技术基础上有了显著改进。与CodaMosa这种结合搜索和LLM的测试生成器相比,CoverUp在每模块中行+分支覆盖率的中位数为80%(对比47%)。与MuTAP这种基于突变和LLM的测试生成器相比,CoverUp的整体行+分支覆盖率达到了90%(对比77%)。我们还证明,CoverUp的性能不仅来自于所使用的LLM,还来自于其各个组件的有效结合。