«

»

A Test-Driven Approach to Developing Pointcut Descriptors in AspectJ

by Romain Delamare, Benoit Baudry, Sudipto Ghosh, Yves Le Traon
Abstract:
Aspect-oriented programming (AOP) languages introduce new constructs that can lead to new types of faults, which must be targeted by testing techniques. In particular, AOP languages such as AspectJ use a pointcut descriptor (PCD) that provides a convenient way to declaratively specify a set of joinpoints in the program where the aspect should be woven. However, a major difficulty when testing that the PCD matches the intended set of joinpoints is the lack of precise specification for this set other than the PCD itself. In this paper, we propose a test-driven approach for the development and validation of the PCD. We developed a tool, AdviceTracer, which enriches the JUnit API with new types of assertions that can be used to specify the expected joinpoints. In order to validate our approach, we also developed a mutation tool that systematically injects faults into PCDs. Using these two tools, we perform experiments to validate that our approach can be applied for specifying expected joinpoints and for detecting faults in the PCD.
Reference:
A Test-Driven Approach to Developing Pointcut Descriptors in AspectJ (Romain Delamare, Benoit Baudry, Sudipto Ghosh, Yves Le Traon), In Proceedings of the International Conference on Software Testing, Verification, and Validation (ICST), 2009.
Bibtex Entry:
@inproceedings{Delamare09a,
	Abstract = {Aspect-oriented programming (AOP) languages introduce new constructs
	that can lead to new types of faults, which must be targeted by testing
	techniques. In particular, AOP languages such as AspectJ use a pointcut
	descriptor (PCD) that provides a convenient way to declaratively
	specify a set of joinpoints in the program where the aspect should
	be woven. However, a major difficulty when testing that the PCD matches
	the intended set of joinpoints is the lack of precise specification
	for this set other than the PCD itself. 
	
	 In this paper, we propose a test-driven approach for the development
	and validation of the PCD. We developed a tool, AdviceTracer, which
	enriches the JUnit API with new types of assertions that can be used
	to specify the expected joinpoints. In order to validate our approach,
	we also developed a mutation tool that systematically injects faults
	into PCDs. Using these two tools, we perform experiments to validate
	that our approach can be applied for specifying expected joinpoints
	and for detecting faults in the PCD.},
	keywords = {test, AOP, oracle},
	Author = {Delamare, Romain and Baudry, Benoit and Ghosh, Sudipto and Le Traon, Yves},
	Booktitle = {Proceedings of the International Conference on Software Testing, Verification, and Validation (ICST)},
	Month = {April},
	Title = {A Test-Driven Approach to Developing Pointcut Descriptors in AspectJ},
	Url = {http://www.irisa.fr/triskell/publis/2009/Delamare09a.pdf},
	X-Country = {US},
	X-Editorial-Board = {yes},
	X-International-Audience = {yes},
	X-Language = {EN},
	X-Proceedings = {yes},
	Year = {2009},
	x-abbrv = {ICST},
}