Automated Java Testing: JUnit versus AspectJ
Commenced in January 2007
Frequency: Monthly
Edition: International
Paper Count: 32799
Automated Java Testing: JUnit versus AspectJ

Authors: Manish Jain, Dinesh Gopalani

Abstract:

Growing dependency of mankind on software technology increases the need for thorough testing of the software applications and automated testing techniques that support testing activities. We have outlined our testing strategy for performing various types of automated testing of Java applications using AspectJ which has become the de-facto standard for Aspect Oriented Programming (AOP). Likewise JUnit, a unit testing framework is the most popular Java testing tool. In this paper, we have evaluated our proposed AOP approach for automated testing and JUnit on various parameters. First we have provided the similarity between the two approaches and then we have done a detailed comparison of the two testing techniques on factors like lines of testing code, learning curve, testing of private members etc. We established that our AOP testing approach using AspectJ has got several advantages and is thus particularly more effective than JUnit.

Keywords: Aspect oriented programming, AspectJ, Aspects, JUnit, software testing.

Digital Object Identifier (DOI): doi.org/10.5281/zenodo.1314478

Procedia APA BibTeX Chicago EndNote Harvard JSON MLA RIS XML ISO 690 PDF Downloads 1838

References:


[1] A. Hussain, A. Razak, and E. Mkpojiogu, “The perceived usability of automated testing tools for mobile applications,” Journal of Engineering Science and Technology, vol. 12, pp. 89–97, 04 2017.
[2] P. S. Kochhar, F. Thung, N. Nagappan, T. Zimmermann, and D. Lo, “Understanding the test automation culture of app developers,” in 2015 IEEE 8th International Conference on Software Testing, Verification and Validation (ICST), April 2015, pp. 1–10.
[3] M. Jain and D. Gopalani, “Use of aspects for testing software applications,” in 2015 IEEE International Advance Computing Conference, June 2015, pp. 282–285.
[4] M. Jain and D. Gopalani, “Memory leakage testing using aspects,” in 2015 International Conference on Applied and Theoretical Computing and Communication Technology, Oct 2015, pp. 436–440.
[5] M. Jain and D. Gopalani, “Aspect oriented programming and types of software testing,” in 2016 Second International Conference on Computational Intelligence Communication Technology, Feb 2016, pp. 64–69.
[6] M. Jain and D. Gopalani, “Testing application security with aspects,” in 2016 International Conference on Electrical, Electronics, and Optimization Techniques (ICEEOT), March 2016, pp. 3161–3165.
[7] F. V. C. Ficarra, C. de Castro Lozano, M. P. Jiménez, E. Nicol, A. Kratky, and M. Cipolla-Ficarra, Advances in New Technologies, Interactive Interfaces, and Communicability. Springer, 2011.
[8] A. Z. Javed, “Model-driven framework for context-dependent testing of components,” Ph.D. dissertation, School of Information Technology and Electrical Engineering, The University of Queensland, August 2007.
[9] X. Li and X. Xie, “Research of software testing based on AOP,” in IEEE 3rd International Conference on Intelligent Information Technology Application, vol. 1, 2009, pp. 187–189.
[10] E. Duclos, S. L. Digabel, Y. G. Gueheneuc, and B. Adams, “Acre: An automated aspect creator for testing C++ applications,” in IEEE 7th European Conference on Software Maintenance and Reengineering, 2013, pp. 121–130.
[11] A. Sioud, “Gestion de cycle de vie des objets par aspects pour C++,” Master’s thesis, UQaC, 2006.
[12] D. Sokenou and S. Herrmann, “Aspects for testing aspects?” in 1st Workshop on Testing Aspect-Oriented Programs, 2005.
[13] S. Copty and S. Ur, “Multi-threaded testing with AOP is easy, and it finds bugs!” Lecture Notes in Computer Science, vol. 3648, pp. 740–749, 2005.
[14] J. Pesonen, M. Katara, and T. Mikkonen, “Production-testing of embedded systems with aspects,” Lecture Notes in Computer Science, vol. 3875, pp. 90–102, 2006.
[15] S. L. Tsang, S. Clarke, and E. Baniassad, “An evaluation of aspect-oriented programming for Java-based real-time systems development,” in Seventh IEEE International Symposium on Object-Oriented Real-Time Distributed Computing, 2004. Proceedings., May 2004, pp. 291–300.
[16] R. Laddad, AspectJ in Action: Practical Aspect-Oriented Programming. Greenwich, USA: Manning Publications Co., 2003.
[17] D. Gotseva and M. Pavlov, “Aspect-oriented programming with AspectJ,” International Journal of Computer Science Issues, pp. 212–218, 2012.
[18] P. Bouillon, M. Burger, and A. Zeller, “Automated debugging in Eclipse: (at the touch of not even a button),” in Proceedings of the 2003 OOPSLA Workshop on Eclipse Technology eXchange, ser. Eclipse ’03. New York, USA: ACM, 2003, pp. 1–5.
[19] S. Tyagi and P. Tarau, “A most specific method finding algorithm for reflection based dynamic prolog-to-java interfaces,” in PADL. Berlin, Heidelberg: Springer Berlin Heidelberg, 2001, pp. 322–326.
[20] Z. Shams, “Reflection support: Java reflection made easy,” The Open Software Engineering Journal, vol. 7, pp. 38–52, 01 2014.
[21] C. Artho and A. Biere, “Advanced unit testing: How to scale up a unit test framework,” in Proceedings of the 2006 International Workshop on Automation of Software Test, ser. AST ’06. New York, USA: ACM, 2006, pp. 92–98.
[22] D. R. Kuhn and V. Okun, “Pseudo exhaustive testing for software,” in 30th Annual IEEE Software Engineering Workshop, 2006, pp. 153–158.
[23] D. Rafi, K. Moses, K. Petersen, and M. Mantyla, “Testing non-functional requirements with aspects,” in IEEE 7th International Workshop on Automation of Software Test AST, 2012, pp. 36–42.