Interprocedural Semantic Change-Impact Analysis using Equivalence Relations
Alex Gyori, Shuvendu K. Lahiri, Nimrod Partush

TL;DR
This paper introduces a semantics-aware change-impact analysis method that leverages equivalence relations to improve precision, significantly reducing impacted code in refactoring scenarios.
Contribution
It formalizes change impact using trace semantics and develops an incremental algorithm to incorporate equivalence relations, enhancing impact analysis precision.
Findings
35% reduction in impacted statements on average
Effective handling of semantics-preserving refactorings
Prototype evaluated on real-world open-source changes
Abstract
Change-impact analysis (CIA) is the task of determining the set of program elements impacted by a program change. Precise CIA has great potential to avoid expensive testing and code reviews for (parts of) changes that are refactorings (semantics-preserving). Existing CIA is imprecise because it is coarse-grained, deals with only few refactoring patterns, or is unaware of the change semantics. We formalize the notion of change impact in terms of the trace semantics of two program versions. We show how to leverage equivalence relations to make dataflow-based CIA aware of the change semantics, thereby improving precision in the presence of semantics-preserving changes. We propose an anytime algorithm that allows applying costly equivalence relation inference incrementally to refine the set of impacted statements. We have implemented a prototype in SymDiff, and evaluated it on 322…
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 · Advanced Software Engineering Methodologies · Software System Performance and Reliability
