LLM2D
检索增强测试生成:我们还有多远?
Retrieval-Augmented Test Generation: How Far Are We?
发布日期: 9/20/2024
arXiv ID: oai:arXiv.org:2409.12682v1

摘要

arXiv:2409.12682v1 公告类型: 交叉 摘要: 检索增强生成(RAG)在软件工程任务中展现了显著的进步。尽管其潜力巨大,RAG在单元测试生成中的应用仍未得到充分探索。为了填补这一空白,我们率先研究基于RAG的大型语言模型在测试生成中的有效性。由于RAG可以利用多种知识源来增强其性能,我们还探讨了不同知识源对RAG知识库在单元测试生成中的影响,以提供其实际效益和局限性的见解。具体而言,我们考察了基于三种领域知识的RAG:1)API文档,2)GitHub问题,以及3)StackOverflow问答。每种来源从不同角度提供了创建测试所需的关键知识,即API文档提供了官方API使用指南,GitHub问题提供了库开发者对API相关问题的解决方案,而StackOverflow问答则展示了社区驱动的解决方案和最佳实践。在我们的实验中,我们专注于五个广泛使用且典型的基于Python的机器学习(ML)项目,即TensorFlow、PyTorch、Scikit-learn、Google JAX和XGBoost,以高效构建、训练和部署复杂的神经网络。我们使用这些项目中最常用的前10%的API进行了实验,共涉及188个API。我们研究了四种最先进的LLM(开源和闭源),即GPT-3.5-Turbo、GPT-4o、Mistral MoE 8x22B和Llamma 3.1 405B的有效性。此外,我们比较了三种生成单元测试用例的提示策略,即零样本、基本RAG和基于三种外部来源的API级别RAG。最后,我们比较了用于RAG的不同知识源的成本。