Publication Type
Conference Proceeding Article
Version
publishedVersion
Publication Date
7-2017
Abstract
Recently there has been a proliferation of automated program repair (APR) techniques, targeting various programming languages. Such techniques can be generally classified into two families: syntactic- and semantics-based. Semantics-based APR, on which we focus, typically uses symbolic execution to infer semantic constraints and then program synthesis to construct repairs conforming to them. While syntactic-based APR techniques have been shown success- ful on bugs in real-world programs written in both C and Java, semantics-based APR techniques mostly target C programs. This leaves empirical comparisons of the APR families not fully explored, and developers without a Java-based semantics APR technique. We present JFix, a semantics-based APR framework that targets Java, and an associated Eclipse plugin. JFix is implemented atop Symbolic PathFinder, a well-known symbolic execution engine for Java programs. It extends one particular APR technique (Angelix), and is designed to be sufficiently generic to support a variety of such techniques. We demonstrate that semantics-based APR can indeed efficiently and effectively repair a variety of classes of bugs in large real-world Java programs. This supports our claim that the framework can both support developers seeking semantics-based repair of bugs in Java programs, as well as enable larger scale empirical studies comparing syntactic- and semantics-based APR targeting Java. The demonstration of our tool is available via the project website at: https://xuanbachle.github.io/semanticsrepair/
Keywords
Automatic Program Repair, Symbolic Execution, Program Synthesis
Discipline
Information Security | Software Engineering
Research Areas
Cybersecurity
Publication
ISSTA 2017: Proceedings of the 26th ACM SIGSOFT International Symposium on Software Testing and Analysis, University of California, Santa Barbara, 2017 jULY 10-14
Identifier
10.1145/3092703.3098225
City or Country
University of California, US
Citation
LE, Xuan Bach D.; CHU, Duc-Hiep; LO, David; LE, GOUES; and VISSER, Willem.
JFIX: Semantics-based repair of Java programs via symbolic PathFinder. (2017). ISSTA 2017: Proceedings of the 26th ACM SIGSOFT International Symposium on Software Testing and Analysis, University of California, Santa Barbara, 2017 jULY 10-14.
Available at: https://ink.library.smu.edu.sg/sis_research/3690
Creative Commons License
This work is licensed under a Creative Commons Attribution-NonCommercial-No Derivative Works 4.0 International License.
Additional URL
http://doi.org./10.1145/3092703.3098225