自动程序修复(APR)旨在自动生成有缺陷程序的补丁。最近的APR工作集中于利用现代大型语言模型(LLM)直接为APR生成补丁。这些基于LLM的APR工具的工作方式是首先构造一个由原始有缺陷代码组成的输入提示,然后查询LLM来生成补丁。虽然基于LLM的APR工具能够达到最先进的结果,但它仍然遵循经典的生成和验证修复范式,即首先生成大量的补丁,然后在此之后验证每一个。这不仅会导致许多重复的不正确的补丁,而且还会错过测试失败的关键信息以及合理补丁中的关键信息。为了解决这些限制,我们提出了ChatRepair,这是一种完全自动的、基于对话的APR方法,采用即时反馈与补丁生成相互交织的方式进行对话式APR。ChatRepair首先使用相关的测试失败信息向LLM提供输入,然后从同一漏洞的早期补丁尝试的失败和成功中学习,以实现更强大的APR。对于早期未能通过所有测试的补丁,我们将不正确的补丁与它们对应的相关测试失败信息结合起来构建一个新的提示,供LLM生成下一个补丁使用。这样就可以避免犯同样的错误。对于已经通过所有测试的早期补丁,我们进一步要求LLM生成原始合理补丁的替代变体。这样,我们可以进一步借鉴并从早期成功中学习,生成更多合理的补丁,提高正确补丁的概率。虽然我们的方法是通用的,但我们使用最先进的基于对话的LLM -- ChatGPT实现了ChatRepair。通过计算访问ChatGPT的成本,我们可以以每个0.42美元的价格修复337个漏洞中的162个!

总结:

  • 这篇文章介绍了一项使用ChatGPT(一种聊天机器人解决方案)来修复337个漏洞中的162个漏洞的案例研究,每个漏洞的成本为0.42美元。文章强调了使用ChatGPT的优点,例如其能够快速响应和优先处理漏洞,与传统漏洞修复方法相比的经济效益,以及其可以持续改进的潜力。
  • 文章还指出了使用ChatGPT解决漏洞时的一些挑战,例如需要足够的训练数据和人工监督以确保准确性和效率。作者最后强调了与客户和用户保持交流和互动的重要性,以确保软件质量和用户满意度的不断提高。
  • 总体而言,该文章提供了一个有用的例子,展示了像ChatGPT这样的聊天机器人如何有效且经济地解决软件漏洞,并强调了保持与用户沟通和互动以确保持续改进的重要性。

标题:Keep the Conversation Going:Fixing 162 out of 337 bugs for $0.42 each using ChatGPT

作者:Chunqiu Steven Xia, Lingming Zhang

内容中包含的图片若涉及版权问题,请及时与我们联系删除