Automatic bug fixing: Difference between revisions

Content deleted Content added
Use: add usage for security
Generate-and-validate: mention the Kali line of repair
Line 17:
 
<!-- mutation based repair -->
One way to generate candidate patches is to apply [[program mutation|mutation operators]] on the original program. Mutation operators manipulate the original program, potentially via its [[abstract syntax tree]] representation, or a more coarse-grained representation such as operating at the [[Statement (programming)|statement]]-level or [[Block (programming)|block]]-level. Earlier [[Genetic improvement (computer science)|genetic improvement]] approaches operate at the statement level and carry out simple delete/replace operations such as deleting an existing statement or replacing an existing statement with another statement in the same source file.<ref name=genprog2009 /><ref name="genprog2012">{{Cite book |last1=Le Goues |first1=Claire |title=2012 34th International Conference on Software Engineering (ICSE) |last2=Dewey-Vogt |first2=Michael |last3=Forrest |first3=Stephanie |last4=Weimer |first4=Westley |date=2012 |publisher=IEEE |isbn=978-1-4673-1067-3 |pages=3–13 |chapter=A Systematic Study of Automated Program Repair: Fixing 55 out of 105 Bugs for $8 Each |citeseerx=10.1.1.661.9690 |doi=10.1109/ICSE.2012.6227211 |s2cid=10987936}}</ref> Recent approaches use more fine-grained operators at the [[abstract syntax tree]] level to generate more diverse set of candidate patches.<ref name=prophetspr /> Notably, the statement deletion mutation operator, and more generally removing code, is a reasonable repair strategy, or at least a good fault localization strategy.<ref>{{Cite namejournal |last=sprQi |first=Zichao |last2=Long |first2=Fan |last3=Achour |first3=Sara |last4=Rinard |first4=Martin |date=2015-07-13 |title=An analysis of patch plausibility and correctness for generate-and-validate patch generation systems |url=http://dx.doi.org/10.1145/2771783.2771791 |journal=Proceedings of the 2015 International Symposium on Software Testing and Analysis |___location=New York, NY, USA |publisher=ACM |doi=10.1145/2771783.2771791}}</ref><ref>{{Cite journal |last=Ginelli |first=Davide |last2=Martinez |first2=Matias |last3=Mariani |first3=Leonardo |last4=Monperrus |first4=Martin |date=2022 |title=A comprehensive study of code-removal patches in automated program repair |url=https://link.springer.com/10.1007/s10664-021-10100-7 |journal=Empirical Software Engineering |language=en |volume=27 |issue=4 |pages=97 |doi=10.1007/s10664-021-10100-7 |issn=1382-3256}}</ref>
 
<!-- fix templates -->