Proceedings of the 26th ACM SIGSOFT International Symposium on Software Testing and Analysis 2017
DOI: 10.1145/3092703.3092719
|View full text |Cite
|
Sign up to set email alerts
|

Refining interprocedural change-impact analysis using equivalence relations

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 leverag… Show more

Help me understand this report

Search citation statements

Order By: Relevance

Paper Sections

Select...
3
1

Citation Types

0
10
0

Year Published

2018
2018
2023
2023

Publication Types

Select...
4
2

Relationship

0
6

Authors

Journals

citations
Cited by 16 publications
(10 citation statements)
references
References 50 publications
0
10
0
Order By: Relevance
“…Jackson and Ladd [14] describe an approach based on dependencies between input and output variables, but do not offer formal proofs. Gyori et al [13] took steps beyond concrete refinement, using equivalence relations, similar to those of Benton, for dataflow-based change impact analysis. Other works.…”
Section: Related Workmentioning
confidence: 99%
See 1 more Smart Citation
“…Jackson and Ladd [14] describe an approach based on dependencies between input and output variables, but do not offer formal proofs. Gyori et al [13] took steps beyond concrete refinement, using equivalence relations, similar to those of Benton, for dataflow-based change impact analysis. Other works.…”
Section: Related Workmentioning
confidence: 99%
“…Researchers and practitioners are increasingly aware that verification tools can be impactful if they embrace change through analyses that are compositional and span program versions. Reasoning about similarities and differences between programs goes back to Benton [7], who introduced state-based refinement relations, which were extended by Yang [36] and others [13,34]. However, to our knowledge, refinement relations have not been explored for traces: existing techniques, including bisimulation, cannot capture similarities/differences between how two programs behave over time.We present a novel theory that allows one to perform compositional reasoning about the similarities/differences between how fragments of two different programs behave over time through the use of what we call trace-refinement relations.…”
mentioning
confidence: 99%
“…Our approach has some similarities to other problems related to tainting [19]. In particular, Change-Impact Analysis is the problem of determining what parts of a program are affected due to a change.…”
Section: Related Workmentioning
confidence: 99%
“…Intuitively, it can be seen as a form of taint analysis, where the change is treated as taint. To solve this, Gyori et al [19] propose a combination of an imprecise type-based approach with a precise semantics-preserving approach. The latter considers the program before and after the change and finds relational equivalences between the two ver-sions.…”
Section: Related Workmentioning
confidence: 99%
“…A set of software metrics, for example, the C&K metric suite, is used to identify dependencies [2]. The dynamic techniques are based on the total number of distinct messages sent at runtime, method invocations, and aggregation relationships [3–5]. Static code attributes identify the most change prone classes, but not the classes that are most vulnerable to change ripples.…”
Section: Introductionmentioning
confidence: 99%