Design patterns: elements of reusable object-oriented software
Design patterns: elements of reusable object-oriented software
A safe, efficient regression test selection technique
ACM Transactions on Software Engineering and Methodology (TOSEM)
Pythia: a regression test selection tool based on textual differencing
ENCRESS '97 IFIP TC5 WG5.4 3rd internatinal conference on on Reliability, quality and safety of software-intensive systems
Regression test selection for Java software
OOPSLA '01 Proceedings of the 16th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
Chianti: a tool for change impact analysis of java programs
OOPSLA '04 Proceedings of the 19th annual ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
A classification system and analysis for aspect-oriented programs
Proceedings of the 12th ACM SIGSOFT twelfth international symposium on Foundations of software engineering
Regression Test Selection for AspectJ Software
ICSE '07 Proceedings of the 29th international conference on Software Engineering
Celadon: a change impact analysis tool for aspect-oriented programs
Companion of the 30th international conference on Software engineering
Aspect-oriented software development
Aspect-oriented software development
Combining concept lattice with call graph for impact analysis
Advances in Engineering Software
Using water wave propagation phenomenon to study software change impact analysis
Advances in Engineering Software
Hi-index | 0.00 |
The addition of a cross-cutting concern in a program, through aspect weaving, has an impact on its existing behaviors. If test cases exist for the program, it is necessary to identify the subset of test cases that trigger the behavior impacted by the aspect. This subset serve to check that interactions between aspects and the base program do not introduce some unexpected behavior. Vidock performs a static analysis when aspects are compiled with a program to select the test cases impacted by the aspects. It leverages the pointcut descriptor to locate the set of methods impacted by aspects and then selects the test cases that can reach an impacted method. This static analysis has to perform over-approximations when the actual point where the aspect is executed can be computed only at runtime and when test cases call polymorphic objects. We measure the occurrence of these assumptions in 4986 projects containing 498 aspects to show they have a limited impact. Then, we run experiments with Vidock on 5 cases studies and analyze the impacts that different types of aspects can have on test cases.