如何设计程序修复机器人?来自 Repairnator 项目的洞见
软件工程
2019-03-11 v1
摘要
程序修复研究在过去几年取得了巨大进展,并且软件开发生成式机器人现正被发明以帮助开发者提升生产力。本文中,我们研究“程序修复机器人”的概念并介绍 Repairnator。Repairnator 机器人是一个自主代理,持续监测测试失败、复现缺陷,并对每个复现的缺陷运行程序修复工具。若发现补丁,Repairnator 机器人向开发者报告。在撰写本文时,Repairnator 使用三种不同的程序修复系统,且自 2017 年 2 月起一直运行。总计,它研究了托管于 GitHub 的 1609 个开源软件项目上的 11317 次测试失败,并为 17 个不同缺陷生成了补丁。数月间,我们遭遇了若干硬性技术挑战,并不得不做出各种设计与工程决策。这给了我们该领域独特的经验。本文中,我们反思 Repairnator 以将这一知识分享给自动程序修复社区。
引用
@article{arxiv.1811.09852,
title = {How to Design a Program Repair Bot? Insights from the Repairnator Project},
author = {Simon Urli and Zhongxing Yu and Lionel Seinturier and Martin Monperrus},
journal= {arXiv preprint arXiv:1811.09852},
year = {2019}
}