Automated Java Testing: JUnit versus AspectJ

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.




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.