Automatic software repair tools

by Martin Monperrus

This page lists automatic software repair tools. The publicly available ones allow comparative and reproducible open research.

If you are aware of other ones, please send me an email.

See also: What is automatic software repair?

For C code

(alphabetical order)

Angelix (NUS): http://angelix.io/

CETI (University of New Mexico, 2017): https://bitbucket.org/nguyenthanhvuh/ceti/ paper

Genprog (University of Virginia, 2009): Genprog repairs C code with a failing test case website, genprog-source-v3.0.zip backup

DFixer (Beijing Institute of Software, China) repairs concurrency bugs in C code backup

Leakfix (Peking University, 2015): memory-Leak fixing for C Programs http://sei.pku.edu.cn/~gaoqing11/leakfix/ backup

Prophet (MIT, 2016): test based repair for C http://groups.csail.mit.edu/pac/prophet/ backup

RSRepair (National University of Defense Technology, 2014): RSRepair repairs C code with a failing test case: (fork and extension of GenProg) http://qiyuhua.github.io/projects/rsrepair/ backup

SearchRepair (UMass, 2015): https://github.com/ProgramRepair/SearchRepair backup

SOSRepair (CMU/UMass et al. 2019) https://github.com/squaresLab/SOSRepair

SPR (MIT, 2015): http://rhino.csail.mit.edu/spr-rep/README.html

For Java code

(alphabetical order)

ACS (PKU), focusing on conditions https://github.com/Adobee/ACS backup

ARJA (Michigan State University) https://github.com/yyxhdy/arja

ASM (University of New Mexico, Eric Schulte) Repairs Java bytecode http://github.com/eschulte/asm backup

Astor (Inria & Univ Lille, France): A program repair framework for Java, containing jGenProg an implementation of Genprog for Java. https://github.com/SpoonLabs/astor paper

DLFix (New Jersey Inst. of Technology, USA) https://github.com/ICSE-2019-AUTOFIX/ICSE-2019-AUTOFIX

Genesis (MIT) http://rhino.csail.mit.edu/genesis-rep/ backup

HDRepair/Historicalfix (Univ. Singapor) https://github.com/xuanbachle/bugfixes backup

JAID (Chen, Pei, Furia): Tool of “Contract-Based Program Repair without the Contracts” https://bitbucket.org/maxpei/jaid/ backup

JAFF (Andrea Arcuri): One of the very first repair tool. backup

Java-RSRepair (Quinn Hanam, UBC) a Java implementation of Genprog and RSRepair https://github.com/qhanam/Java-RSRepair backup

Genprog4java (CMU) https://github.com/squaresLab/genprog4java

kGenProg (Osaka University) https://github.com/kusumotolab/kGenProg paper

Nopol (Inria & Univ Lille, France): Nopol repairs condition bugs (if condition, missing precondition) in Java code with failing test case. https://github.com/SpoonLabs/nopol/ paper

NpeFix (Inria & Univ Lille, France): NpeFix repairs null pointer exceptions in Java code. https://github.com/Spirals-Team/npefix paper

PraPR (UT Dallas, USA) https://github.com/ali-ghanbari/prapr-sc

ssFix (Brown University, USA) https://github.com/qixin5/ssFix, https://github.com/sharpFix18/sharpFix

QACrashFix (Peking University, Gao et al.) extracts fix edit scripts from StackOverflow http://sei.pku.edu.cn/~gaoqing11/qacrashfix/ backup

TBar (University of Luxembourg, 2018) https://github.com/SerVal-DTF/TBar

For Python code

Clara (Sumit Gulwani, Ivan Radiček, Florian Zuleger) https://github.com/iradicek/clara backup

PyEDB (Ackling et al. , University of Adelaide) uses a bitstring encoding for repair https://bitbucket.org/tomackling/pyedb backup

For OCAML code

RITE (Sakkas et al. UCSD, U. Michigan) https://github.com/gsakkas/rite paper

Tagged as: