Providing Real-time Assistance for Repairing Runtime Exceptions using Stack Overflow Posts
Runtime Exceptions (REs) are an important class of bugs that occur frequently during code development. Traditional Automatic Program Repair (APR) tools are of limited use in this “in-development” use case, since they require a test-suite to be available as a patching oracle. Thus, developers typically tend to manually resolve their in-development REs, often by referring to technical forums, such as Stack Overflow (SO). To automate this manual process our paper presents a novel technique REX that provides real-time assistance to developers for repairing Java REs by recommending a relevant patch-suggesting SO post and synthesizing a repair patch from this post to fix the RE in the developer’s code. REX exploits a library of Runtime Exception Patterns (REPs) semi-automatically mined from SO posts, through a relatively inexpensive, one-time, incremental process. An REP is an abstracted sequence of statements that triggers a given RE. REPs are used to index SO posts, retrieve a post most relevant to the RE instance exhibited by a developers’ code and then mediate the process of extracting a concrete repair from the SO post, abstracting out post-specific details, and concretizing the repair to the developer’s buggy code. We evaluate REX on a published RE benchmark comprised of 78 Java instances. Our empirical evaluation shows that REX is able to generate a correct repair patch at the top position in 27% of the cases, within the top-3 in 40% of the cases and overall return a useful artifact in 81% of the cases. Further, the use of REPs proves instrumental to all aspects of REX’s performance, from ranking and searching of SO posts to synthesizing patches from a given post. In particular, 45% of correct patches generated by REX could not be produced by a baseline technique not using REPs, even when provided with REX’s SO-post ranking. REX is also fast, needing around 1 second, on average, to generate its output. Overall, these results indicate that REX can provide effective real-time assistance to developers in repairing REs.
Wed 6 AprDisplayed time zone: Amsterdam, Berlin, Bern, Rome, Stockholm, Vienna change
19:30 - 20:45 | ICST Automated Testing 2Research Papers / Journal-First Papers at Margaret Hamilton Chair(s): José Campos University of Lisbon, Portugal | ||
19:30 15mTalk | Providing Real-time Assistance for Repairing Runtime Exceptions using Stack Overflow Posts Research Papers | ||
19:45 15mTalk | To Seed or Not to Seed? An Empirical Analysis of Usage of Seeds for Testing in Machine Learning Projects Research Papers Saikat Dutta University of Illinois at Urbana-Champaign, Anshul Arunachalam University of Illinois at Urbana-Champaign, Sasa Misailovic University of Illinois at Urbana-Champaign | ||
20:00 15mTalk | Integration testing for robotic systems Journal-First Papers Maria Brito Federal University of Lavras Lavras, Simone do Rocio Senger de Souza ICMC/USP, Paulo Sergio Lopes de Souza ICMC/USP Link to publication DOI | ||
20:15 15mTalk | Patterns of Code-to-Test Co-evolution for Automated Test Suite Maintenance Research Papers | ||
20:30 15mLive Q&A | Discussion and Q&A Research Papers |