Abstract
Aspect-Oriented Software Development is a contemporary technique of software development that aims to improve the separation of concerns issues faced by traditional approaches. It improves the modularity of crosscutting concerns into units called aspects. However, this feature raises concerns about the quality of aspect-oriented programs (AOP). Existing functional testing approaches do not directly investigate the aspect composition problem, its resultant interactions and representation on a dynamic model. This paper describes a state-based testing method for AOP that targets class–aspect and aspect–aspect faults. To support the developed method, we introduce a model to represent the dynamic behavior of aspects interactions, a strategy to derive testing sequences, and a testing tool. Results of our assessment show that the approach is capable of detecting faults based on fault-models available in the literature. Furthermore, it is able to reveal another source of faults on AOPs, the aspect composition fault.
Keywords
This is a preview of subscription content, log in via an institution.
Buying options
Tax calculation will be finalised at checkout
Purchases are for personal use only
Learn about institutional subscriptionsPreview
Unable to display preview. Download preview PDF.
References
Filman, R., Elrad, T., Clarke, S., Akşit, M. (eds.): Aspect-Oriented Software Development. Addison-Wesley, Boston (2005)
Kiczales, G., Lamping, J., Menhdhekar, A., et al.: Aspect-oriented programming. In: Akşit, M., Matsuoka, S. (eds.) ECOOP 1997. LNCS, vol. 1241, pp. 220–242. Springer, Heidelberg (1997)
Lemos, O., Franchin, I., Masiero, P.: Integration testing of object-oriented and aspect-oriented programs: A structural pairwise approach for java. Science of Comp. Programming 74, 861–878 (2009)
Lemos, O., Masiero, P.: A pointcut-based coverage analysis approach for aspect-oriented programs. Info. Sciences 181(13), 2721–2746 (2011)
Xiong, L., Li, J.: A structural testing approach for aspect-oriented programs based on data and control flow. In: 2013 4th IEEE International Conference on Software Engineering and Service Science (ICSESS), pp. 85–88 (May 2013)
Liu, C.-H., Chang, C.-W.: A state-based testing approach for aspect-oriented programming. J. Inf. Sci. Eng. 24(1), 11–31 (2008)
Xu, D., Ding, J.: Prioritizing state-based aspect tests. In: 2010 Third International Conference on Software Testing, Verification and Validation (ICST), pp. 265–274 (April 2010)
Xu, D., el Ariss, O., Xu, W., Wang, L.: Testing aspect-oriented programs with finite state machines. Softw. Test., Verif. Reliab. 22(4), 267–293 (2012)
Delamare, R., Baudry, B., Le-Traon, Y.: Ajmutator: A tool for the mutation analysis of aspectj pointcut descriptors. In: International Conference on Software Testing, Verification and Validation Workshops, ICSTW 2009, pp. 200–204 (April 2009)
Ferrari, F.C., Rashid, A., Maldonado, J.C.: Towards the practical mutation testing of aspectj programs. Science of Computer Programming 78(9), 1639–1662 (2013)
Silveira, F.F., da Cunha, A.M., de Resende, A.M.P., Lisbôa, M.L.B.: The testing activity on the aspect-oriented paradigm. In: Proceedings of the 1st Workshop on Testing Aspect-Oriented Programs at AOSD 2005 (2005)
DeMillo, R.A., Lipton, R.J., Sayward, F.G.: Hints on test data selection: help for the practicing programmer. J. -Computer 11, 34–41 (1978)
Alexander, R.T., Bieman, J.M., Andrews, A.A.: Towards the systematic testing of aspect-oriented programs. Tech. Rep. CS-4-105, Colorado State University, Fort Collins, Colorado (2004)
Bsekken, J., Alexander, R.: A candidate fault model for aspectj pointcuts. In: 17th International Symposium on Software Reliability Engineering, ISSRE 2006, pp. 169–178 (November 2006)
Bergmans, L., Tekinerdogan, B., Glandrup, M., Aksit, M.: On composing separated concerns: Composability and composition anomalies. In: Workshop on Advanced Separation of Concerns (2000)
Mortensen, M., Alexander, R.T.: An approach for adequate testing of aspectJ programs. In: Proceedings of the 1st Workshop on Testing Aspect-Oriented Programs at AOSD 2005 (2005)
Anbalagan, P., Xie, T.: Automated generation of pointcut mutants for testing pointcuts in aspectj programs. In: 19th International Symposium on Software Reliability Engineering, ISSRE 2008, pp. 239–248 (November 2008)
Ferrari, F.C., Nakagawa, E.Y., Rashid, A., Maldonado, J.C.: Automating the mutation testing of aspect-oriented java programs. In: Proceedings of the 5th Workshop on Automation of Software Test, AST 2010, pp. 51–58. ACM, New York (2010)
Ferrari, F., Burrows, R., et al.: An exploratory study of fault-proneness in evolving aspect-oriented programs. In: Proceedings of the 32nd ACM/IEEE International Conference on Software Engineering, ICSE 2010, vol. 1, pp. 65–74. ACM, New York (2010)
Xu, W., Xu, D., Goel, V., Nygard, K.: Aspect flow graph for testing aspect-oriented programs. In: Proceedings of the 8th IASTED International Conference on Software Engineering and Applications. ACTA Press (2004)
Xu, D., Xu, W., Nygard, K.: A state-based approach to testing aspect-oriented programs. In: SEKE 2005: Proceedings of the 17th International Conference on Software Engineering and Knowledge Engineering, Taipei (July 2005)
Binder, R.V.: Testing object-oriented systems: models, patterns, and tools. Addison-Wesley, Boston (2001)
Xu, D., Xu, W.: State-based incremental testing of aspect-oriented programs. In: AOSD 2006: Proceedings of the 5th International Conference on Aspect-Oriented Software Development, pp. 180–189. ACM Press, New York (2006)
Xu, D., Xu, W., Wong, W.E.: Testing aspect-oriented programs with uml design models. International Journal of Software Engineering and Knowledge Engineering 18(3), 413–437 (2008)
Lemos, O., Vincenzi, A., Maldonado, J., Masiero, P.: Control and data flow structural testing criteria for aspect-oriented programs. J. Syst. and Software 80(6), 862–882 (2007)
Kulesza, U., Soares, S., Chavez, C., et al.: The crosscutting impact of the AOSD Brazilian research community. Journal of Systems and Software 86, 905–933 (2013)
Laddad, R.: AspectJ in Action: Practical Aspect-Oriented Programming. Manning Publications Co., Greenwich (2003)
Ma, Y.-S., Kwon, Y.-R., Offutt, J.: Inter-class mutation operators for java. In: Proceedings of the International Symposium on Software Reliability Engineering, ISSRE 2002, p. 352. IEEE Computer Society, Washington, DC (2002)
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2014 Springer International Publishing Switzerland
About this paper
Cite this paper
Silveira, F.F., da Cunha, A.M., Lisbôa, M.L. (2014). A State-Based Testing Method for Detecting Aspect Composition Faults. In: Murgante, B., et al. Computational Science and Its Applications – ICCSA 2014. ICCSA 2014. Lecture Notes in Computer Science, vol 8583. Springer, Cham. https://doi.org/10.1007/978-3-319-09156-3_30
Download citation
DOI: https://doi.org/10.1007/978-3-319-09156-3_30
Publisher Name: Springer, Cham
Print ISBN: 978-3-319-09155-6
Online ISBN: 978-3-319-09156-3
eBook Packages: Computer ScienceComputer Science (R0)