论文
规划探索:好奇心驱动的 LLM 测试生成规划
Planning to Explore: Curiosity-Driven Planning for LLM Test Generation
摘要
使用 LLM 进行代码生成自然扩展到了代码测试和评估。随着代码库的规模和复杂性不断增长,自动测试生成的需求也随之增加。当前基于 LLM 的测试生成方法依赖于最大化即时覆盖增益的策略,这是一种贪婪的方法,在代码上达到稳定状态,其中到达深层分支需要单独产生零新覆盖率的设置步骤。借鉴贝叶斯探索的原理,我们将程序的分支结构视为未知环境,并将不断发展的覆盖图视为代表 LLM 迄今为止发现的代理概率后验。我们的方法 CovQValue 将覆盖图反馈给 LLM,并行生成不同的候选计划,并根据 LLM 估计的 Q 值选择信息最丰富的计划,寻求平衡即时分支发现与未来可达性的操作。我们的方法优于 TestGenEval Lite 上的贪婪选择,在三个流行的 LLM 中实现了 51-77% 的更高分支覆盖率,并赢得了 77-84% 的目标。此外,我们还为迭代测试生成建立了一个基准 RepoExploreBench,他们达到了 40-74%。这些结果显示了好奇心驱动的规划方法对于基于 LLM 的探索的潜力,可以通过顺序交互更有效地发现程序行为