Enhancing automated program repair with deductive verification

Automated program repair (APR) is a challenging process of detecting bugs, localizing buggy code, generating fix candidates and validating the fixes. Effectiveness of program repair methods relies on the generated fix candidates, and the methods used to traverse the space of generated candidates to...

Full description

Saved in:
Bibliographic Details
Main Authors: LE, Xuan-Bach D., LE, Quang Loc, LO, David, GOUES, Claire Le
Format: text
Language:English
Published: Institutional Knowledge at Singapore Management University 2016
Subjects:
Online Access:https://ink.library.smu.edu.sg/sis_research/3753
https://ink.library.smu.edu.sg/context/sis_research/article/4755/viewcontent/3806a428.pdf
Tags: Add Tag
No Tags, Be the first to tag this record!
Institution: Singapore Management University
Language: English
id sg-smu-ink.sis_research-4755
record_format dspace
spelling sg-smu-ink.sis_research-47552018-06-01T05:18:38Z Enhancing automated program repair with deductive verification LE, Xuan-Bach D. LE, Quang Loc LO, David GOUES, Claire Le Automated program repair (APR) is a challenging process of detecting bugs, localizing buggy code, generating fix candidates and validating the fixes. Effectiveness of program repair methods relies on the generated fix candidates, and the methods used to traverse the space of generated candidates to search for the best ones. Existing approaches generate fix candidates based on either syntactic searches over source code or semantic analysis of specification, e.g., test cases. In this paper, we propose to combine both syntactic and semantic fix candidates to enhance the search space of APR, and provide a function to effectively traverse the search space. We present an automated repair method based on structured specifications, deductive verification and genetic programming. Given a function with its specification, we utilize a modular verifier to detect bugs and localize both program statements and sub-formulas in the specification that relate to those bugs. While the former are identified as buggy code, the latter are transformed as semantic fix candidates. We additionally generate syntactic fix candidates via various mutation operators. Best candidates, which receives fewer warnings via a static verification, are selected for evolution though genetic programming until we find one satisfying the specification. Another interesting feature of our proposed approach is that we efficiently ensure the soundness of repaired code through modular (or compositional) verification. We implemented our proposal and tested it on C programs taken from the SIR benchmark that are seeded with bugs, achieving promising results. 2016-10-01T07:00:00Z text application/pdf https://ink.library.smu.edu.sg/sis_research/3753 info:doi/10.1109/ICSME.2016.66 https://ink.library.smu.edu.sg/context/sis_research/article/4755/viewcontent/3806a428.pdf http://creativecommons.org/licenses/by-nc-nd/4.0/ Research Collection School Of Computing and Information Systems eng Institutional Knowledge at Singapore Management University Sound Repair Automated Repair Genetic Programming Deductive Verification Computer bugs Semantics Genetic programming Syntactics Benchmark testing Prototypes Software Engineering
institution Singapore Management University
building SMU Libraries
continent Asia
country Singapore
Singapore
content_provider SMU Libraries
collection InK@SMU
language English
topic Sound Repair
Automated Repair
Genetic Programming
Deductive Verification
Computer bugs
Semantics
Genetic programming
Syntactics
Benchmark testing
Prototypes
Software Engineering
spellingShingle Sound Repair
Automated Repair
Genetic Programming
Deductive Verification
Computer bugs
Semantics
Genetic programming
Syntactics
Benchmark testing
Prototypes
Software Engineering
LE, Xuan-Bach D.
LE, Quang Loc
LO, David
GOUES, Claire Le
Enhancing automated program repair with deductive verification
description Automated program repair (APR) is a challenging process of detecting bugs, localizing buggy code, generating fix candidates and validating the fixes. Effectiveness of program repair methods relies on the generated fix candidates, and the methods used to traverse the space of generated candidates to search for the best ones. Existing approaches generate fix candidates based on either syntactic searches over source code or semantic analysis of specification, e.g., test cases. In this paper, we propose to combine both syntactic and semantic fix candidates to enhance the search space of APR, and provide a function to effectively traverse the search space. We present an automated repair method based on structured specifications, deductive verification and genetic programming. Given a function with its specification, we utilize a modular verifier to detect bugs and localize both program statements and sub-formulas in the specification that relate to those bugs. While the former are identified as buggy code, the latter are transformed as semantic fix candidates. We additionally generate syntactic fix candidates via various mutation operators. Best candidates, which receives fewer warnings via a static verification, are selected for evolution though genetic programming until we find one satisfying the specification. Another interesting feature of our proposed approach is that we efficiently ensure the soundness of repaired code through modular (or compositional) verification. We implemented our proposal and tested it on C programs taken from the SIR benchmark that are seeded with bugs, achieving promising results.
format text
author LE, Xuan-Bach D.
LE, Quang Loc
LO, David
GOUES, Claire Le
author_facet LE, Xuan-Bach D.
LE, Quang Loc
LO, David
GOUES, Claire Le
author_sort LE, Xuan-Bach D.
title Enhancing automated program repair with deductive verification
title_short Enhancing automated program repair with deductive verification
title_full Enhancing automated program repair with deductive verification
title_fullStr Enhancing automated program repair with deductive verification
title_full_unstemmed Enhancing automated program repair with deductive verification
title_sort enhancing automated program repair with deductive verification
publisher Institutional Knowledge at Singapore Management University
publishDate 2016
url https://ink.library.smu.edu.sg/sis_research/3753
https://ink.library.smu.edu.sg/context/sis_research/article/4755/viewcontent/3806a428.pdf
_version_ 1770573711612575744