论文阅读-自动程序修复-Keep the Conversation Going:Fixing 162 out of 337 bugs for $0.42 each using ChatGPT-2023

本文介绍了一种使用ChatGPT进行程序bug修复的方法,通过指导ChatGPT识别自身为自动修复工具,提供错误信息并反复验证,最终可能获得看似合理的plausiblepatch。作者还将其与CodexRepair和AlphaRepair进行了比较。
摘要由CSDN通过智能技术生成

1 introduction

文章标题翻译过来就是:只要两块五毛钱,ChatGPT帮你修bug。所以本文的核心思想就是,通过和chatgpt"对谈‘,使得chatgpt自动化修复程序代码。

2 方法概述图 overview

step1:首先告诉ChatGPT,它的定位就是“You are an Automated Program Repair tool”

step2:在对ChatGPT进行提问时,必须要告诉ta所遇到的bug导致的报错信息(这种报错信息一般是代码无法通过已有的标准测试用例产生的),这样ChatGPT就会变得更聪明。

        ·用填充的位置指示器替换函数中有错误的代码完全≪INFILL≫

        ·提供原始的bug行

        ·失败的测试1)它的名称,2)触发测试失败的相关代码行,以及3)产生的错误信息

通过 test suite (测试套件)判断 patch 是否成立,如果成立进入下一阶段,如果不成立持续询问 Chatgpt 直到获取一个 plausible patch(进入step3)

step3:ChatGPT很可能第一次没法给出正确的bug修复建议,但是你把上一次有问题的修复建议产生的报错信息反馈给ta,就能得到一个新的答案,这样不需要反复几次,你就能够得到准确的答案。

step4:输入已经获取的 plausible patch 及相关信息,获取更多 plausible patch:ChatGPT生成的所谓plausible patch(指的是能够通过已有测试用例,但不一定完备的patch。在这里,这个plausible本身的含义就很微妙,翻译为“貌似合理”,那么到底是合理还是不合理呢?),作者认为这种答案也很有用,你先拿着这个答案去鼓励一下ChatGPT(“你回答得很棒哦”)然后再让ta给出另一个答案(“能不能再想想还有没有其他的答案呢?”),这样它有可能就能给出一个完备的patch了

3 对方法的评估 Evaluation

作者对这套方法起名ChatRepair,然后用来和已有的一些系统对比,包括作者自己基于另一个大语言模型开发的修复工具CodexRepair,以及当前大家认为能代表LLM-based代码修复的AlphaRepair。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值