Software Engineering
New Tool Helps Developers Make Sense of Bug-Finding Warnings Through Smart Summaries
SWIRL uses interactive feedback to automatically group and summarize warnings from static analysis tools, helping programmers understand patterns in code issues more confidently.
Developers reviewing output from bug-finding tools like Infer and SpotBugs face a tedious challenge: processing warnings individually without a clear sense of how issues relate to one another. Researchers have proposed SWIRL, a system designed to simplify this process by automatically grouping related warnings and generating customized summaries based on what developers actually care about.
The Problem with Static Analysis Alerts#
Static analysis tools scan code to catch potential bugs before they reach production, but they often produce long lists of warnings that can be difficult to prioritize or understand as a whole. Developers must manually work through each alert, lacking visibility into common themes or structural patterns that might help identify root causes faster. This cognitive burden—what researchers call "sensemaking"—can make the review process inefficient and error-prone.
How SWIRL Works#
Rather than passively showing warnings, SWIRL engages developers through active feedback. As users label warnings as either interesting or uninteresting, the system's rule inference algorithm learns to identify shared characteristics among them. SWIRL looks for common structural patterns including:
- Object containment and inheritance relationships
- Method calls and field accesses
- Similar code expressions
The system then surfaces rules that group related warnings together, updating dynamically as users provide more feedback.
Evidence from Testing#
Researchers evaluated SWIRL on real-world warnings from Java projects. In a user study, participants felt significantly more confident identifying root causes for warnings they deemed uninteresting when using SWIRL compared to a baseline that simply listed warnings without grouping. The study also revealed substantial variation in how different developers wanted warnings organized, underscoring the value of customizable, user-driven summarization.
A simulation showed that SWIRL's rule-level feedback accelerated the learning process: combining rule feedback with instance-level feedback required only 11.8 interactions on average to align inferred rules with user preferences, versus 17.8 interactions using feedback at the instance level alone.
Why It Matters#
As static analysis becomes more prevalent in development workflows, tools that help developers interpret tool output efficiently could reduce time spent on false positives and clarify which warnings deserve attention. SWIRL demonstrates that active learning and personalized grouping can meaningfully improve how developers work with automated code review.