How to Design a Program Repair Bot? Insights from the Repairnator Project
arXiv:1811.09852 · doi:10.1145/3183519.3183540
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 unique experience in this area. In this paper, we reflect upon Repairnator in order to share this knowledge with the automatic program repair community.
References in corpus (7)
- Nopol: Automatic Repair of Conditional Statement Bugs in Java Programs
- Automatic Software Repair: a Bibliography
- Automatic Repair of Real Bugs in Java: A Large-Scale Experiment on the Defects4J Dataset
- Continuous integration in a social-coding world: Empirical evidence from GitHub. **Updated version with corrections**
- NPEFix: Automatic Runtime Repair of Null Pointer Exceptions in Java
- Control-Flow Integrity: Precision, Security, and Performance
- Test Case Generation for Program Repair: A Study of Feasibility and Effectiveness
Cited by in corpus (16)
- On the Efficiency of Test Suite based Program Repair: A Systematic Assessment of 16 Automated Repair Systems for Java Programs
- Bears: An Extensible Java Bug Benchmark for Automatic Program Repair Studies
- iFixR: Bug Report driven Program Repair
- An Empirical Study of Bots in Software Development -- Characteristics and Challenges from a Practitioner's Perspective
- Explainable Software Bot Contributions: Case Study of Automated Bug Fixes
- MSRBot: Using Bots to Answer Questions from Software Repositories
- Repairnator patches programs automatically
- Quality Gatekeepers: Investigating the Effects ofCode Review Bots on Pull Request Activities
- A Software-Repair Robot based on Continual Learning
- Motivations, Challenges, Best Practices, and Benefits for Bots and Conversational Agents in Software Engineering: A Multivocal Literature Review
- T5APR: Empowering Automated Program Repair across Languages through Checkpoint Ensemble
- A Comprehensive Study of Code-removal Patches in Automated Program Repair
- Leveraging Predictions from Multiple Repositories to Improve Bot Detection
- Don't Disturb Me: Challenges of Interacting with SoftwareBots on Open Source Software Projects
- C4Q: A Chatbot for Quantum
- Is ChatGPT 3 safe for students?