{"month":"07","date_published":"2017-07-10T00:00:00Z","title":"JFIX: Semantics-based repair of Java programs via symbolic PathFinder","year":"2017","abstract":[{"lang":"eng","text":"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 successful 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/ "}],"_id":"941","project":[{"name":"Rigorous Systems Engineering","call_identifier":"FWF","grant_number":"S 11407_N23","_id":"25832EC2-B435-11E9-9278-68D0E5697425"},{"_id":"25F42A32-B435-11E9-9278-68D0E5697425","grant_number":"Z211","name":"The Wittgenstein Prize","call_identifier":"FWF"}],"status":"public","publication":"Proceedings of the 26th ACM SIGSOFT International Symposium on Software Testing and Analysis","department":[{"_id":"ToHe"}],"type":"conference","quality_controlled":"1","conference":{"name":"ISSTA: International Symposium on Software Testing and Analysis","start_date":"2017-07-10","end_date":"2017-07-14","location":"Santa Barbara, CA, United States"},"oa_version":"None","author":[{"first_name":"Xuan","full_name":"Le, Xuan","last_name":"Le"},{"full_name":"Chu, Duc Hiep","first_name":"Duc Hiep","id":"3598E630-F248-11E8-B48F-1D18A9856A87","last_name":"Chu"},{"first_name":"David","full_name":"Lo, David","last_name":"Lo"},{"last_name":"Le Goues","full_name":"Le Goues, Claire","first_name":"Claire"},{"last_name":"Visser","full_name":"Visser, Willem","first_name":"Willem"}],"date_created":"2018-12-11T11:49:19Z","date_updated":"2021-01-12T08:22:05Z","doi":"10.1145/3092703.3098225","language":[{"iso":"eng"}],"day":"10","user_id":"3E5EF7F0-F248-11E8-B48F-1D18A9856A87","publisher":"ACM","page":"376 - 379 ","publication_status":"published","publist_id":"6478","citation":{"ieee":"X. Le, D. H. Chu, D. Lo, C. Le Goues, and W. Visser, “JFIX: Semantics-based repair of Java programs via symbolic  PathFinder,” in Proceedings of the 26th ACM SIGSOFT International Symposium on Software Testing and Analysis, Santa Barbara, CA, United States, 2017, pp. 376–379.","ista":"Le X, Chu DH, Lo D, Le Goues C, Visser W. 2017. JFIX: Semantics-based repair of Java programs via symbolic  PathFinder. Proceedings of the 26th ACM SIGSOFT International Symposium on Software Testing and Analysis. ISSTA: International Symposium on Software Testing and Analysis, 376–379.","apa":"Le, X., Chu, D. H., Lo, D., Le Goues, C., & Visser, W. (2017). JFIX: Semantics-based repair of Java programs via symbolic  PathFinder. In Proceedings of the 26th ACM SIGSOFT International Symposium on Software Testing and Analysis (pp. 376–379). Santa Barbara, CA, United States: ACM. https://doi.org/10.1145/3092703.3098225","short":"X. Le, D.H. Chu, D. Lo, C. Le Goues, W. Visser, in:, Proceedings of the 26th ACM SIGSOFT International Symposium on Software Testing and Analysis, ACM, 2017, pp. 376–379.","mla":"Le, Xuan, et al. “JFIX: Semantics-Based Repair of Java Programs via Symbolic  PathFinder.” Proceedings of the 26th ACM SIGSOFT International Symposium on Software Testing and Analysis, ACM, 2017, pp. 376–79, doi:10.1145/3092703.3098225.","chicago":"Le, Xuan, Duc Hiep Chu, David Lo, Claire Le Goues, and Willem Visser. “JFIX: Semantics-Based Repair of Java Programs via Symbolic  PathFinder.” In Proceedings of the 26th ACM SIGSOFT International Symposium on Software Testing and Analysis, 376–79. ACM, 2017. https://doi.org/10.1145/3092703.3098225.","ama":"Le X, Chu DH, Lo D, Le Goues C, Visser W. JFIX: Semantics-based repair of Java programs via symbolic  PathFinder. In: Proceedings of the 26th ACM SIGSOFT International Symposium on Software Testing and Analysis. ACM; 2017:376-379. doi:10.1145/3092703.3098225"},"scopus_import":1}