Automated program repair techniques aim to aid software developers with the challenging task of fixing bugs. In heuristic-based program repair, a search space of program variants is created by applying mutation operations on the source code to find potential patches for bugs. Most commonly, every selection of a mutation operator during search is performed uniformly at random. The inefficiency of this critical step in the search creates many variants that do not compile or break intended functionality, wasting considerable resources as a result. In this paper, we address this issue and propose a reinforcement learning-based approach to optimise the selection of mutation operators in heuristic-based program repair. Our solution is programming language, granularity-level, and search strategy agnostic and allows for easy augmentation into existing heuristic-based repair tools. We conduct extensive experimentation on four operator selection techniques, two reward types, two credit assignment strategies, two integration methods, and three sets of mutation operators using 22,300 independent repair attempts. We evaluate our approach on 353 real-world bugs from the Defects4J benchmark. Results show that the epsilon-greedy multi-armed bandit algorithm with average credit assignment is best for mutation operator selection. Our approach exhibits a 17.3% improvement upon the baseline, by generating patches for 9 additional bugs for a total of 61 patched bugs in the Defects4J benchmark.


翻译:自动程序修复技术旨在辅助软件开发人员完成修复缺陷这一具有挑战性的任务。在基于启发式的程序修复中,通过对源代码应用变异操作创建程序变体的搜索空间,以寻找缺陷的潜在补丁。最常见的方式是,在搜索过程中每次选择变异算子时都采用均匀随机的方式。这一关键步骤的低效性导致生成的许多变体无法编译或破坏预期功能,从而浪费了大量计算资源。本文针对该问题,提出了一种基于强化学习的方法来优化启发式程序修复中变异算子的选择。我们的解决方案与编程语言、粒度级别和搜索策略无关,并能轻松集成到现有基于启发式的修复工具中。我们通过22,300次独立修复尝试,对四种算子选择技术、两种奖励类型、两种信用分配策略、两种集成方法以及三组变异算子进行了广泛实验。在Defects4J基准数据集中的353个真实缺陷上评估了该方法。结果表明,采用平均信用分配的贪婪多臂赌博机算法最适合变异算子选择。与基线相比,我们的方法提升了17.3%,在Defects4J基准数据集中额外修复了9个缺陷,总共修复了61个缺陷。

0
下载
关闭预览

相关内容

Automator是苹果公司为他们的Mac OS X系统开发的一款软件。 只要通过点击拖拽鼠标等操作就可以将一系列动作组合成一个工作流,从而帮助你自动的(可重复的)完成一些复杂的工作。Automator还能横跨很多不同种类的程序,包括:查找器、Safari网络浏览器、iCal、地址簿或者其他的一些程序。它还能和一些第三方的程序一起工作,如微软的Office、Adobe公司的Photoshop或者Pixelmator等。
剑桥大学《数据科学: 原理与实践》课程,附PPT下载
专知会员服务
54+阅读 · 2021年1月20日
Linux导论,Introduction to Linux,96页ppt
专知会员服务
82+阅读 · 2020年7月26日
专知会员服务
61+阅读 · 2020年3月19日
100+篇《自监督学习(Self-Supervised Learning)》论文最新合集
专知会员服务
167+阅读 · 2020年3月18日
Stabilizing Transformers for Reinforcement Learning
专知会员服务
60+阅读 · 2019年10月17日
强化学习最新教程,17页pdf
专知会员服务
182+阅读 · 2019年10月11日
机器学习入门的经验与建议
专知会员服务
94+阅读 · 2019年10月10日
MIT新书《强化学习与最优控制》
专知会员服务
282+阅读 · 2019年10月9日
Hierarchically Structured Meta-learning
CreateAMind
27+阅读 · 2019年5月22日
Transferring Knowledge across Learning Processes
CreateAMind
29+阅读 · 2019年5月18日
强化学习的Unsupervised Meta-Learning
CreateAMind
18+阅读 · 2019年1月7日
Unsupervised Learning via Meta-Learning
CreateAMind
44+阅读 · 2019年1月3日
A Technical Overview of AI & ML in 2018 & Trends for 2019
待字闺中
18+阅读 · 2018年12月24日
【SIGIR2018】五篇对抗训练文章
专知
12+阅读 · 2018年7月9日
Reinforcement Learning: An Introduction 2018第二版 500页
CreateAMind
14+阅读 · 2018年4月27日
【推荐】SVM实例教程
机器学习研究会
17+阅读 · 2017年8月26日
强化学习族谱
CreateAMind
26+阅读 · 2017年8月2日
国家自然科学基金
0+阅读 · 2014年12月31日
国家自然科学基金
0+阅读 · 2014年12月31日
国家自然科学基金
0+阅读 · 2014年12月31日
国家自然科学基金
0+阅读 · 2014年12月31日
国家自然科学基金
0+阅读 · 2013年12月31日
国家自然科学基金
0+阅读 · 2013年12月31日
国家自然科学基金
0+阅读 · 2011年12月31日
国家自然科学基金
0+阅读 · 2008年12月31日
国家自然科学基金
0+阅读 · 2008年12月31日
Advances and Open Problems in Federated Learning
Arxiv
18+阅读 · 2019年12月10日
VIP会员
最新内容
马赛克战:俄乌战场透析
专知会员服务
7+阅读 · 今天4:12
《利用人工智能增强军事决策》
专知会员服务
1+阅读 · 今天4:09
《自动机器学习在军事数据耕耘法中的应用》
专知会员服务
3+阅读 · 今天4:02
为何指挥所生存能力要求范式转变
专知会员服务
1+阅读 · 今天3:54
打造“新蛛网”模式与高科技动员
专知会员服务
1+阅读 · 今天3:33
“蛛网”行动一周年:远程无人机战争
专知会员服务
1+阅读 · 今天3:23
【剑桥博士论文】智能体-环境协同优化
专知会员服务
5+阅读 · 6月9日
为初级军官战术训练设计生成式人工智能平台
专知会员服务
8+阅读 · 6月9日
《美军条令:作战伤员后送保障》
专知会员服务
6+阅读 · 6月9日
相关VIP内容
剑桥大学《数据科学: 原理与实践》课程,附PPT下载
专知会员服务
54+阅读 · 2021年1月20日
Linux导论,Introduction to Linux,96页ppt
专知会员服务
82+阅读 · 2020年7月26日
专知会员服务
61+阅读 · 2020年3月19日
100+篇《自监督学习(Self-Supervised Learning)》论文最新合集
专知会员服务
167+阅读 · 2020年3月18日
Stabilizing Transformers for Reinforcement Learning
专知会员服务
60+阅读 · 2019年10月17日
强化学习最新教程,17页pdf
专知会员服务
182+阅读 · 2019年10月11日
机器学习入门的经验与建议
专知会员服务
94+阅读 · 2019年10月10日
MIT新书《强化学习与最优控制》
专知会员服务
282+阅读 · 2019年10月9日
相关资讯
Hierarchically Structured Meta-learning
CreateAMind
27+阅读 · 2019年5月22日
Transferring Knowledge across Learning Processes
CreateAMind
29+阅读 · 2019年5月18日
强化学习的Unsupervised Meta-Learning
CreateAMind
18+阅读 · 2019年1月7日
Unsupervised Learning via Meta-Learning
CreateAMind
44+阅读 · 2019年1月3日
A Technical Overview of AI & ML in 2018 & Trends for 2019
待字闺中
18+阅读 · 2018年12月24日
【SIGIR2018】五篇对抗训练文章
专知
12+阅读 · 2018年7月9日
Reinforcement Learning: An Introduction 2018第二版 500页
CreateAMind
14+阅读 · 2018年4月27日
【推荐】SVM实例教程
机器学习研究会
17+阅读 · 2017年8月26日
强化学习族谱
CreateAMind
26+阅读 · 2017年8月2日
相关基金
国家自然科学基金
0+阅读 · 2014年12月31日
国家自然科学基金
0+阅读 · 2014年12月31日
国家自然科学基金
0+阅读 · 2014年12月31日
国家自然科学基金
0+阅读 · 2014年12月31日
国家自然科学基金
0+阅读 · 2013年12月31日
国家自然科学基金
0+阅读 · 2013年12月31日
国家自然科学基金
0+阅读 · 2011年12月31日
国家自然科学基金
0+阅读 · 2008年12月31日
国家自然科学基金
0+阅读 · 2008年12月31日
Top
微信扫码咨询专知VIP会员