
TL;DR
This paper evaluates the impact of alert removals in static analysis on code complexity and bug tendency, using multiple methods including trials, profiling, and supervised learning, revealing that some interventions can significantly reduce future bugs.
Contribution
It introduces novel methods to assess the causal impact of alert removals on software quality, combining experimental, observational, and machine learning approaches.
Findings
Complexity-reducing interventions can lower future bug probability.
33% of Python files are affected by relevant interventions.
Potential to reduce bug tendency by 5.5 percentage points.
Abstract
Context: Static analysis captures software engineering knowledge and alerts on possibly problematic patterns. Previous work showed that they indeed have predictive power for various problems. However, the impact of removing the alerts is unclear. Aim: We would like to evaluate the impact of alert removals on code complexity and the tendency to bugs. Method: We evaluate the impact of removing alerts using three complementary methods. 1. We conducted a randomized controlled trial and built a dataset of 521 manual alert-removing interventions 2. We profiled intervention-like events using labeling functions. We applied these labeling functions to code commits, found intervention-like natural events, and used them to analyze the impact on the tendency to bugs. 3. We built a dataset of 8,245 alert removals, more than 15 times larger than our dataset of manual interventions. We applied…
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 Testing and Debugging Techniques · Software System Performance and Reliability
