Learning Quick Fixes from Code Repositories
Reudismam Rolim, Gustavo Soares, Rohit Gheyi, Titus Barik, Loris, D'Antoni

TL;DR
This paper introduces REVISAR, a tool that learns common Java code edit patterns from version histories, helping developers and analyzers identify useful quick fixes that are frequently applied in real-world projects.
Contribution
The paper presents REVISAR, a novel approach for automatically discovering and validating useful code edit patterns from large-scale software repositories.
Findings
Discovered 89 common edit patterns across multiple projects.
64% of patterns were not present in existing tools.
Programmers preferred 8 out of 9 patterns identified.
Abstract
Code analyzers such as Error Prone and FindBugs detect code patterns symptomatic of bugs, performance issues, or bad style. These tools express patterns as quick fixes that detect and rewrite unwanted code. However, it is difficult to come up with new quick fixes and decide which ones are useful and frequently appear in real code. We propose to rely on the collective wisdom of programmers and learn quick fixes from revision histories in software repositories. We present REVISAR, a tool for discovering common Java edit patterns in code repositories. Given code repositories and their revision histories, REVISAR (i) identifies code edits from revisions and (ii) clusters edits into sets that can be described using an edit pattern. The designers of code analyzers can then inspect the patterns and add the corresponding quick fixes to their tools. We ran REVISAR on nine popular GitHub…
Peer Reviews
No public reviews on file for this paper yet. If you reviewed it on a platform where reviews are public (OpenReview, ICLR, NeurIPS, ICML), you can paste yours below so the community can read it here.
Videos
No videos yet. Explain this paper in a talk, walkthrough, or lecture? Add one.
Taxonomy
TopicsSoftware Engineering Research · Software System Performance and Reliability · Software Testing and Debugging Techniques
