Automatic Program Repair with Condition Synthesis and Compound Mutations

Fan Long, Zichao Qi, Sara Achour, Martin Rinard · DSpace@MIT (Massachusetts Institute of Technology) · 2015

We present PCR, a new automatic patch generation system. PCR uses a new condition synthesis technique to efficiently discover logical expressions that generate desired control-flow transfer patterns. Presented with a set of test cases, PCR deploys condition synthesis to find and repair incor-rect if conditions that cause the application to produce the wrong result for one or more of the test cases. PCR also leverages condition synthesis to obtain a set of compound modifications that generate a rich, productive, and tractable search space of candidate patches. We evaluate PCR on a set of 105 defects from the Gen-Prog benchmark set. For 40 of these defects, PCR gener-ates plausible patches (patches that generate correct outputs for all inputs in the test suite used to validate the patch). For 12 of these defects, PCR generates correct patches that are functionally equivalent to developer patches that appear in subsequent versions. For comparison purposes, GenProg generates plausible patches for only 18 defects and correct patches for only 2 defects. AE generates plausible patches for only 27 defects and correct patches for only 3 defects. 1.

Read the paper · More papers on PaperTik