Evaluating Heuristics for Iterative Impact Analysis
Yibin Wang, Maksym Petrenko, V\'aclav Rajlich

TL;DR
This paper evaluates various heuristics for iterative impact analysis in software engineering, finding that while IIA improves recall over other techniques, the studied heuristics do not outperform random inspection in guiding impact estimation.
Contribution
The study systematically assesses propagation and termination heuristics for IIA, revealing their limited effectiveness in improving impact estimation accuracy.
Findings
IIA achieves better recall than other impact analysis methods.
The investigated heuristics do not outperform random inspection in impact estimation.
Heuristics studied do not significantly enhance IIA performance.
Abstract
Iterative impact analysis (IIA) is a process that allows developers to estimate the impacted units of a software change. Starting from a single impacted unit, the developers inspect its interacting units via program dependencies to identify the ones that are also impacted, and this process continues iteratively. Experience has shown that developers often miss impacted units and inspect many irrelevant units. In this work, we study propagation heuristics that guide developers to find the actual impacted units and termination heuristics that help to decide whether the estimated impact is complete. The roles of these two kinds of heuristics are complementary and affect both the precision and recall when used during IIA. We investigated several propagation heuristics adapted from previously published papers and combined them with a practical termination heuristic. We developed a reenactment…
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 Reliability and Analysis Research · Software Testing and Debugging Techniques
