SemFix: program repair via semantic analysis. Debugging consumes significant time and effort in any major software development project. Moreover, even after the root cause of a bug is identified, fixing the bug is non-trivial. Given this situation, automated program repair methods are of value. In this paper, we present an automated repair method based on symbolic execution, constraint solving and program synthesis. In our approach, the requirement on the repaired code to pass a given set of tests is formulated as a constraint. Such a constraint is then solved by iterating over a layered space of repair expressions, layered by the complexity of the repair code. We compare our method with recently proposed genetic programming based repair on SIR programs with seeded bugs, as well as fragments of GNU Coreutils with real bugs. On these subjects, our approach reports a higher success-rate than genetic programming based repair, and produces a repair faster.
Keywords for this software
References in zbMATH (referenced in 5 articles )
Showing results 1 to 5 of 5.
- Mehdi Bahrami, N.C. Shrikanth, Shade Ruangwan, Lei Liu, Yuji Mizobuchi, Masahiro Fukuyori, Wei-Peng Chen, Kazuki Munakata, Tim Menzies: PyTorrent: A Python Library Corpus for Large-scale Language Models (2021) arXiv
- Kölbl, Martin; Leue, Stefan; Wies, Thomas: TarTar: a timed automata repair tool (2020)
- Nguyen, Thanhvu; Weimer, Westley; Kapur, Deepak; Forrest, Stephanie: Connecting program synthesis and reachability: automatic program repair using test-input generation (2017)
- Yuan Yuan; Wolfgang Banzhaf: ARJA: Automated Repair of Java Programs via Multi-Objective Genetic Programming (2017) arXiv
- Long, Fan; Rinard, Martin: Automatic patch generation by learning correct code (2016) ioport