SemFix: Program repair via semantic analysis

Created by W.Langdon from gp-bibliography.bib Revision:1.3949

  author =       "Hoang Duong Thien Nguyen and Dawei Qi and 
                 Abhik Roychoudhury and Satish Chandra",
  title =        "{SemFix:} Program repair via semantic analysis",
  booktitle =    "35th International Conference on Software Engineering
                 (ICSE 2013)",
  year =         "2013",
  editor =       "Betty H. C. Cheng and Klaus Pohl",
  pages =        "772--781",
  address =      "San Francisco, USA",
  month =        may # " 18-26",
  publisher =    "IEEE",
  keywords =     "genetic algorithms, genetic programming, SBSE,
                 Computer bugs, Educational institutions, Input
                 variables, Maintenance engineering, Semantics,
  URL =          "",
  DOI =          "doi:10.1109/ICSE.2013.6606623",
  size =         "10 pages",
  abstract =     "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.",
  notes =        "p774 'synthesize function'. p775 only 'change right
                 hand side of assignments and branch predicates' KLEE
                 static symbolic execution engine. Perl. Ubuntu. p779
                 does not fix 'more than one line' bugs. p780 GenProg:
                 'burden of compiling and testing', SIR poor on
                 'arithmetic bugs', GenProg SemFix equally successful on
                 larger programs and real bugs (GNU Coreutils) but 6
                 minutes v 3.8 minutes.

                 Time limit 4 minutes (p780 average running time 3.8
                 minutes). Tcas, gzip, schedule, schedule2, replace,
                 grep. Tarantula (see also \cite{oo:2012:SSBSE}
                 \cite{Xie:2013:SSBSE} ). 'using Ochiai instead of
                 Tarantula has negligible impact'

                 first order logic SMT solver. (see also

                 Also known as \cite{6606623}",

Genetic Programming entries for Hoang Duong Thien Nguyen Dawei Qi Abhik Roychoudhury Satish Chandra