Trace Analysis for Aspect Application

AspectJ is a language implementing aspect oriented programming on top of Java. Usually aspect application influences not only observable behavior but changes program flow internally. To test if an aspect works as intended, we suggest trace analysis to capture these internal changes. We demonstrate how trace analysis can be used for impact analysis. It can also be used to validate that refactorings which replaced scattered code by an aspect did not change system behavior.