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