How to Design a Program Repair Bot? Insights from the Repairnator Project
Simon Urli, Zhongxing Yu, Lionel Seinturier, Martin Monperrus

TL;DR
This paper presents Repairnator, an autonomous program repair bot that monitors test failures, reproduces bugs, and applies repair tools to generate patches, sharing insights from its operation on numerous open-source projects since 2017.
Contribution
It introduces Repairnator, a novel autonomous repair bot, and shares practical insights and lessons learned from its deployment across many projects over several years.
Findings
Repaired 17 bugs across 1,609 projects
Operated since February 2017 with three repair systems
Studied 11,317 test failures
Abstract
Program repair research has made tremendous progress over the last few years, and software development bots are now being invented to help developers gain productivity. In this paper, we investigate the concept of a " program repair bot " and present Repairnator. The Repairnator bot is an autonomous agent that constantly monitors test failures, reproduces bugs, and runs program repair tools against each reproduced bug. If a patch is found, Repairnator bot reports it to the developers. At the time of writing, Repairnator uses three different program repair systems and has been operating since February 2017. In total, it has studied 11 317 test failures over 1 609 open-source software projects hosted on GitHub, and has generated patches for 17 different bugs. Over months, we hit a number of hard technical challenges and had to make various design and engineering decisions. This gives us a…
Peer Reviews
No public reviews on file for this paper yet. If you reviewed it on a platform where reviews are public (OpenReview, ICLR, NeurIPS, ICML), you can paste yours below so the community can read it here.
Code & Models
Videos
No videos yet. Explain this paper in a talk, walkthrough, or lecture? Add one.
Taxonomy
TopicsSoftware Testing and Debugging Techniques · Software Reliability and Analysis Research · Software Engineering Research
