探究大型语言模型在生成单元测试中的效果
本文介绍了从 GitHub 公开可用的代码细调的 Codex 语言模型,并研究了其 Python 代码编写能力。在新的评估集 HumanEval 上,我们的模型可解决 28.8% 的问题,并发现重复采样模型是解决难题的有效策略。但我们也发现其局限性,最终讨论了代码生成技术的潜在影响。
Jul, 2021
本研究提出了一个基于 GPT-3.5 的评估框架,用于评估代码生成的功能正确性和人类偏好,能够在不需要测试 oracle 或参考文献的情况下,达到比 CodeBERTScore 更高的准确性和一致性。
Apr, 2023
该研究探讨了大型语言模型在编程问题中的应用,发现最新技术如 InstructGPT 和 ChatGPT 在处理指令时表现优异,而早期使用变量名如 Codex 的模型的性能受描述问题时表浅的指标较大影响。
Jun, 2023
在本文中,我们提出了一种新方法 CodeT,利用预先训练的语言模型自动生成代码示例的测试用例,从而减少人工成本并增加测试场景的覆盖范围,最终实现基于生成的测试用例的代码解决方案选择。
Jul, 2022
CAT-LM 是一个使用 27 亿参数在 Python 和 Java 项目语料库上进行训练的新颖的预训练信号,通过考虑代码和测试文件之间的映射来生成与开发人员相似的测试代码,并且在生成测试完成时比更大的语言模型和最近的测试特定模型表现更好。
Oct, 2023
使用大规模生成模型和较小的编码器模型,语言模型可以帮助软件开发人员提高生产力,包括代码生成、代码补全、代码搜索等任务,并且可以通过新的基准数据集 GenCodeSearchNet (GeCS) 来评估语言模型对编程语言理解的泛化能力。
Nov, 2023
TestPilot 是一个利用大语言模型的适应性测试生成技术,可以自动为给定的程序生成单元测试,以帮助确保软件的正确性。用户只需提供函数的特征和实现方法,再提取阅读文档,如果测试失败,则 TestPilot 的自适应组件尝试生成新的测试。在 25 个 npm 软件包上的实验表明,TestPilot 生成的测试达到了 93.1% 的语句覆盖率,平均 58.5% 的测试包含了来自被测试包的至少一个功能性断言。
Feb, 2023
利用对最近的大型语言模型进行了代码测试的详尽分析,本研究展示了这些模型的一系列有趣性质,并展示了如何改进大型语言模型的程序测试能力,通过利用生成的测试用例来提高合成程序的质量,相较于 GPT-3.5-turbo 和最新的最先进技术,我们的方法在 HumanEval + 上的代码通过率分别提高了 11.77% 和 4.22%。
Oct, 2023
本文研究了利用大型语言模型进行自然语言生成的能力,并应用于编程课程中常见的两种学习资源的制作。研究发现,在创建编程练习时,只需要输入关键词,即可显著影响编程概念和上下文主题的内容,同时也证明了大多数自动生成的内容是全新且合理的。这些结果表明,使用大型生成机器学习模型作为教学工具是有重要价值的,但在交付给学生之前需要一些监督来确保生成的内容质量。文章还探讨了 OpenAI Codex 及类似工具对初学者编程教育的影响,并强调了可能改善教学体验的未来研究方向。
Jun, 2022
使用大型语言模型(LLMs)生成高质量的测试用例是一个重要问题,目前的研究主要集中在改进代码生成过程中通过 LLMs 生成辅助测试用例的性能,而 LLMs 在仅生成测试用例方面的性能尚未全面研究。为了填补这一空白,本文通过大量实验研究了 LLMs 生成高质量测试用例的能力,并提出了一种名为 TestChain 的多代理框架,通过与 Python 解释器的交互提供更准确的测试输出,实验结果表明 TestChain 在测试用例准确性上明显优于基准模型,其中使用 GPT-4 作为基础的 TestChain 在 LeetCode-hard 数据集上相比基准模型改进了 13.84%。
Apr, 2024