Automatic bug fixing: Difference between revisions

Content deleted Content added
No edit summary
BG19bot (talk | contribs)
m top: WP:CHECKWIKI error fix for #61. Punctuation goes before References. Do general fixes if a problem exists. -
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, uses [[program synthesis]] techniques to synthesize a patch, and then verifies the patched program satisfying the specification; the latter relies on the availability of a [[test suite]] or similar artifact, generates a search space of candidate patches, uses [[automated testing]] techniques to validate each candidate patch one by one, and collects validated patches that pass the test suite.
 
==Techniques using formal verification==