Content deleted Content added
Puppydragon (talk | contribs) No edit summary |
Puppydragon (talk | contribs) No edit summary |
||
Line 6:
'''Automatic bug-fixing''' is the automatic [[Patch (computing)|repair]] of [[software bug]]s without the intervention of a human programmer
<ref>Patching program errors (CACM 2008) {{DOI|10.1145/1409360.1409381}}</ref> <ref>Automated Patching Techniques: The Fix Is In (CACM 2010) {{DOI|10.1145/1735223.1735248}}</ref>. It is also commonly referred to as ''automatic patch generation'', ''automatic bug repair'', or ''automatic program repair''. The typical goal of such techniques is to automatically generate a correct [[Patch (computing) |patch]] to eliminate a [[software bug | bug]] in a software program without causing [[software regression]].
Techniques for automatic bug-fixing are still in their infancy, but are broadly divided into two camps depending on the way the proposed repair or patch is evaluated: those based on [[Formal verification|formal analysis]], and those that use a generate-and-validate [[search-based software engineering | search-based]] approach. The former relies on the availability of [[formal specification]] of the correct behavior of a program,
==Techniques using formal verification==
Verification-based program repair combines techniques from [[formal verification]], [[program synthesis]], and fault-
.<ref>Automatic Software Repair http://www.monperrus.net/martin/automatic-software-repair</ref>
==
In
A variety of tools are employed to generate a candidate repair, typically either deterministic approaches using solvers for [[satisfiability modulo theories]] (SMT)
|