摘要
生产断言是嵌入代码中的语句,用于帮助开发人员验证他们对代码的假设。它们有助于开发人员进行调试,提供有价值的文档,并增强代码理解能力。当前这方面的研究主要集中于使用静态分析和深度学习等技术生成单元测试的断言。虽然这些技术已显示出前景,但在生成具有不同用途的生产断言方面却存在不足。
本预印本通过介绍 Assertify 来解决这一差距,Assertify 是一款自动化端到端工具,它利用大型语言模型 (LLM) 和少量样本学习的提示工程来生成生产断言。通过创建上下文丰富的提示,该工具模拟了开发人员在为其代码创建生产断言时所采取的方法。为了评估我们的方法,我们从 GitHub 上抓取了 22 个成熟的 Java 存储库,编译了一个包含 2810 个方法的数据集。我们的实验通过生成平均 ROUGE-L 分数为 0.526 的断言来证明少量样本学习的有效性,这表明与开发人员编写的断言具有相当高的结构相似性。这项研究证明了大型语言模型在自动化生成类似于原始断言的生产断言方面的潜力。