Testing aspect-oriented programs

This work addresses software quality issues introduced by Aspect-Oriented Programming (AOP). AOP aims at enhancing modularity and thus solving the problem of crosscutting concerns by capturing them into new units of modularity called aspects. With the increasing usage and acceptance of AOP, the task of assuring aspect-oriented systems' correctness has become a challenge, mainly due to its nature. Although several testing techniques have been applied and improved for object-oriented programs through the years, there is still the problem of selecting and verifying which ones can be effectively applied to AOP. This paper presents a perspective on how AOP can improve quality (when applied correctly), identifies a set of key testing issues that arise with AOP and presents weaknesses and strengths of the existing solutions to improve quality in AOP.

[1]  Jianjun Zhao,et al.  On Identifying Bug Patterns in Aspect-Oriented Programs , 2007, 31st Annual International Computer Software and Applications Conference (COMPSAC 2007).

[2]  Mario Luca Bernardi,et al.  Reverse Engineering of Aspect Oriented Systems to Support their Comprehension, Evolution, Testing and Assessment , 2008, 2008 12th European Conference on Software Maintenance and Reengineering.

[3]  S. Reid The Art of Software Testing, Second edition. Glenford J. Myers. Revised and updated by Tom Badgett and Todd M. Thomas, with Corey Sandler. John Wiley and Sons, New Jersey, U.S.A., 2004. ISBN: 0-471-46912-2, pp 234: Book Reviews , 2005 .

[4]  Glenford J. Myers,et al.  Art of Software Testing , 1979 .

[5]  Naoyasu Ubayashi,et al.  Aspect-oriented programming with model checking , 2002, AOSD '02.

[6]  Abdul Azim Abdul Ghani,et al.  A Survey on Aspect-Oriented Testing Approaches , 2007, 2007 International Conference on Computational Science and its Applications (ICCSA 2007).

[7]  Tao Xie,et al.  APTE: automated pointcut testing for AspectJ programs , 2006, WTAOP '06.

[8]  Robert V. Binder,et al.  Testing Object-Oriented Systems: Models, Patterns, and Tools , 1999 .

[9]  Stephan Herrmann,et al.  Aspects for Testing Aspects , 2005 .

[10]  Ademar Aguiar,et al.  Towards detecting and solving aspect conflicts and interferences using unit tests , 2007, SPLAT.

[11]  Vladimir O. Safonov Using Aspect-Oriented Programming for Trustworthy Software Development , 2008 .

[12]  Daniel P. Friedman,et al.  Aspect-Oriented Programming is Quantification and Obliviousness , 2000 .

[13]  Guoqing Xu,et al.  A Novel Approach to Unit Testing : The Aspect-Oriented , 2004 .

[14]  James M. Bieman,et al.  Towards the Systematic Testing of Aspect-Oriented Programs , 2004 .

[15]  William C. Hetzel,et al.  The complete guide to software testing , 1984 .

[16]  Robert E. Filman What Is Aspect-Oriented Programming, Revisited , 2001 .

[17]  Gregor Kiczales,et al.  Aspect-oriented programming , 2001, ESEC/FSE-9.

[18]  William Lewis,et al.  Software Testing and Continuous Quality Improvement , 2000 .

[19]  Ramnivas Laddad,et al.  Aspect-Oriented Programming Will Improve Quality / Aspect-Oriented Programming: the Real Costs? , 2003, IEEE Softw..

[20]  M. Badri,et al.  Generating unit test sequences for aspect-oriented programs: towards a formal approach using UML state diagrams , 2005, 2005 International Conference on Information and Communication Technology.

[21]  David Robinson,et al.  Aspect-Oriented Programming with the e Verification Language: A Pragmatic Guide for Testbench Developers , 2007 .

[22]  Tao Xie,et al.  Efficient Mutant Generation for Mutation Testing of Pointcuts in Aspect-Oriented Programs , 2006, Second Workshop on Mutation Analysis (Mutation 2006 - ISSRE Workshops 2006).

[23]  Ramnivas Laddad,et al.  Aspectj in Action: Practical Aspect-Oriented Programming , 2003 .

[24]  Dianxiang Xu,et al.  State-based incremental testing of aspect-oriented programs , 2006, AOSD.