Mutating aspect-oriented models to test cross-cutting concerns

Aspect-oriented (AO) modeling is used to separate normal behaviors of software from specific behaviors that affect many parts of the software. These are called “cross-cutting concerns,” and include things such as interrupt events, exception handling, and security protocols. AO modeling allow developers to model the behaviors of cross-cutting concerns independently of the normal behavior. Aspect-oriented models (AOM) are then transformed into code by “weaving” the aspects (modeling the cross-cutting concerns) into all locations in the code where they are needed. Testing at this level is unnecessarily complicated because the concerns are often repeated in many locations and because the concerns are muddled with the normal code. This paper presents a method to design robustness tests at the abstract, or model, level. The models are mutated with novel operators that specifically target the features of AOM, and tests are designed to kill those mutants. The tests are then run on the implementation level to evaluate the behavior of the woven cross-cutting concerns.

[1]  John A. Clark,et al.  Class Mutation : Mutation Testing for Object-Oriented Programs , 2000 .

[2]  Richard J. Lipton,et al.  Hints on Test Data Selection: Help for the Practicing Programmer , 1978, Computer.

[3]  A. Jefferson Offutt,et al.  Mutation-based testing criteria for timeliness , 2004, Proceedings of the 28th Annual International Computer Software and Applications Conference, 2004. COMPSAC 2004..

[4]  Hewlett-Packard An Approach for Adequate Testing of AspectJ Programs , 2005 .

[5]  Jan Jürjens,et al.  Model-Based Security Engineering with UML , 2004, FOSAD.

[6]  Lionel C. Briand,et al.  Modeling robustness behavior using aspect-oriented modeling to support robustness testing of industrial systems , 2011, Software & Systems Modeling.

[7]  A. Jefferson Offutt,et al.  Introduction to Software Testing , 2008 .

[8]  Yves Le Traon,et al.  A Test-Driven Approach to Developing Pointcut Descriptors in AspectJ , 2009, 2009 International Conference on Software Testing Verification and Validation.

[9]  Standard Glossary of Software Engineering Terminology , 1990 .

[10]  K. N. King,et al.  A fortran language system for mutation‐based software testing , 1991, Softw. Pract. Exp..

[11]  M. Trakhtenbrot,et al.  New Mutations for Evaluation of Specification and Implementation Levels of Adequacy in Testing of Statecharts Models , 2007, Testing: Academic and Industrial Conference Practice and Research Techniques - MUTATION (TAICPART-MUTATION 2007).

[12]  Frits W. Vaandrager,et al.  Testing timed automata , 1997, Theor. Comput. Sci..

[13]  Márcio Eduardo Delamaro,et al.  Mutation analysis testing for finite state machines , 1994, Proceedings of 1994 IEEE International Symposium on Software Reliability Engineering.

[14]  Rajeev Alur,et al.  A Theory of Timed Automata , 1994, Theor. Comput. Sci..

[15]  David Harel,et al.  Statecharts: A Visual Formalism for Complex Systems , 1987, Sci. Comput. Program..

[16]  James Lyle Peterson,et al.  Petri net theory and the modeling of systems , 1981 .

[17]  Lionel C. Briand,et al.  An industrial application of robustness testing using aspect-oriented modeling, UML/MARTE, and Search algorithms , 2011, MODELS'11.

[18]  Brian Nielsen,et al.  Automated test generation from timed automata , 2001, International Journal on Software Tools for Technology Transfer.

[19]  Kim G. Larsen,et al.  Testing Real-Time Systems Using UPPAAL , 2008, Formal Methods and Testing.

[20]  Ana R. Cavalli,et al.  Specification of Timed EFSM Fault Models in SDL , 2007, FORTE.

[21]  A. Jefferson Offutt,et al.  Inter-class mutation operators for Java , 2002, 13th International Symposium on Software Reliability Engineering, 2002. Proceedings..

[22]  Jennifer Pérez,et al.  Integrating aspects in software architectures: PRISMA applied to robotic tele-operated systems , 2008, Inf. Softw. Technol..

[23]  Fadi Wedyan,et al.  On generating mutants for AspectJ programs , 2012, Inf. Softw. Technol..

[24]  Robert M. Hierons,et al.  Mutation testing from probabilistic and stochastic finite state machines , 2009, J. Syst. Softw..

[25]  W. Eric Wong,et al.  Mutation Testing Applied to Validate Specifications Based on Petri Nets , 1995, FORTE.

[26]  Wang Yi,et al.  Timed Automata: Semantics, Algorithms and Tools , 2003, Lectures on Concurrency and Petri Nets.

[27]  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).

[28]  Marius Mikucionis,et al.  Formal Methods and Testing , 2008 .

[29]  Cristina V. Lopes,et al.  Testing aspect-oriented programming Pointcut Descriptors , 2006, WTAOP '06.

[30]  Tzilla Elrad,et al.  Stateful aspects: the case for aspect-oriented modeling , 2007 .

[31]  Jim Smith,et al.  Separation of Fault Tolerance and Non-Functional Concerns: Aspect Oriented Patterns and Evaluation , 2010, J. Softw. Eng. Appl..

[32]  Roger T. Alexander,et al.  A Candidate Fault Model for AspectJ Pointcuts , 2006, 2006 17th International Symposium on Software Reliability Engineering.

[33]  Wang Yi,et al.  Uppaal in a nutshell , 1997, International Journal on Software Tools for Technology Transfer.

[34]  J.-C. Rault,et al.  A software reliability assessment based on a structural and behavioral analysis of programs , 1976, ICSE '76.

[35]  Fabiano Cutigi Ferrari,et al.  Mutation Testing for Aspect-Oriented Programs , 2008, 2008 1st International Conference on Software Testing, Verification, and Validation.