JETracer - A Framework for Java GUI Event Tracing

Arthur-Jozsef Molnar

Abstract

The present paper introduces the open-source Java Event Tracer (JETracer) framework for real-time tracing of GUI events within applications based on the AWT, Swing or SWT graphical toolkits. Our framework provides a common event model for supported toolkits, the possibility of receiving GUI events in real-time, good performance in the case of complex target applications and the possibility of deployment over a network. The present paper provides the rationale for JETracer, presents related research and details its technical implementation. An empirical evaluation where JETracer is used to trace GUI events within five popular, open-source applications is also presented.

References

  1. Aho, P., Suarez, M., Kanstren, T., and Memon, A. (2013). Industrial adoption of automatically extracted GUI models for testing. In Proceedings of the 3rd International Workshop on Experiences and Empirical Studies in Software Modelling. Springer Inc.
  2. Aho, P., Suarez, M., Kanstren, T., and Memon, A. (2014). Murphy tools: Utilizing extracted gui models for industrial software testing. In The Proceedings of the Testing: Academic & Industrial Conference (TAICPART). IEEE Computer Society.
  3. Amalfitano, D., Fasolino, A. R., Tramontana, P., Ta, B. D., and Memon, A. M. (2014). Mobiguitar - a tool for automated model-based testing of mobile apps. IEEE Software.
  4. Arlt, S., Banerjee, I., Bertolini, C., Memon, A. M., and Schaf, M. (2012). Grey-box gui testing: Efficient generation of event sequences. Computing Research Repository, abs/1205.4928.
  5. Chiba, S. (2004). Javassist: Java bytecode engineering made simple. Java Developer Journal.
  6. Cooper, G. (2012). Dtrace: Dynamic tracing in Oracle Solaris, Mac OS X, and Free BSD. SIGSOFT Softw. Eng. Notes, 37(1):34-34.
  7. Froglogic, G. (2015). http://doc.froglogic.com/squish/.
  8. Hou, D. and Wang, Y. (2009). An empirical analysis of the evolution of user-visible features in an integrated development environment. In Proceedings of the 2009 Conference of the Center for Advanced Studies on Collaborative Research, CASCON 7809, pages 122- 135, New York, NY, USA. ACM.
  9. JETracer (2015). https://bitbucket.org/arthur486/jetracer.
  10. Ko, A. J. and Myers, B. A. (2010). Extracting and answering why and why not questions about java program output. ACM Trans. Softw. Eng. Methodol., 20(2):4:1- 4:36.
  11. Krutz, D. E., Malachowsky, S. A., and Reichlmayr, T. (2014). Using a real world project in a software testing course. In Proceedings of the 45th ACM Technical Symposium on Computer Science Education, SIGCSE 7814, pages 49-54, New York, NY, USA. ACM.
  12. Maalej, W., Tiarks, R., Roehm, T., and Koschke, R. (2014). On the comprehension of program comprehension. ACM Trans. Softw. Eng. Methodol., 23(4):31:1-31:37.
  13. McMaster, S. and Memon, A. M. (2009). An extensible heuristic-based framework for gui test case maintenance. In Proceedings of the IEEE International Conference on Software Testing, Verification, and Validation Workshops, pages 251-254, Washington, DC, USA. IEEE Computer Society.
  14. Memon, A., Banerjee, I., Nguyen, B., and Robbins, B. (2013). The first decade of gui ripping: Extensions, applications, and broader impacts. In Proceedings of the 20th Working Conference on Reverse Engineering (WCRE). IEEE Press.
  15. Memon, A. M. (2001). A comprehensive framework for testing graphical user interfaces. PhD thesis.
  16. Memon, A. M. and Cohen, M. B. (2013). Automated testing of gui applications: models, tools, and controlling flakiness. In Proceedings of the 2013 International Conference on Software Engineering, ICSE 7813, pages 1479-1480, Piscataway, NJ, USA. IEEE Press.
  17. Molnar, A. (2012). jSET - Java Software Evolution Tracker. In KEPT-2011 Selected Papers. Presa Universitara Clujeana, ISSN 2067-1180.
  18. Nedyalkova, S. and Bernardino, J. (2013). Open source capture and replay tools comparison. In Proceedings of the International C* Conference on Computer Science and Software Engineering, C3S2E 7813, pages 117- 119, New York, NY, USA. ACM.
  19. Nethercote, N. and Seward, J. (2007). Valgrind: A framework for heavyweight dynamic binary instrumentation. In Proceedings of the 2007 ACM SIGPLAN Conference on Programming Language Design and Implementation, PLDI 7807, pages 89-100, New York, NY, USA. ACM.
  20. Newsome, J. (2005). Dynamic taint analysis for automatic detection, analysis, and signature generation of exploits on commodity software. In Internet Society.
  21. Nguyen, B. N., Robbins, B., Banerjee, I., and Memon, A. (2013). Guitar: an innovative tool for automated testing of gui-driven software. Automated Software Engineering, pages 1-41.
  22. Northover, S. and Wilson, M. (2004). SWT: The Standard Widget Toolkit, Volume 1. Addison-Wesley Professional, first edition.
  23. Oracle, C. (2013). Advanced Java Diagnostics and Monitoring Without Performance Overhead. Technical report.
  24. Perkins, J. H. and Ernst, M. D. (2004). Efficient incremental algorithms for dynamic detection of likely invariants. SIGSOFT Softw. Eng. Notes, 29(6):23-32.
  25. Reiss, S. P. and Renieris, M. (2005). Jove: Java as it happens. In Proceedings of the 2005 ACM Symposium on Software Visualization, SoftVis 7805, pages 115-124, New York, NY, USA. ACM.
  26. Ruiz, A. and Price, Y. W. (2007). Test-driven gui development with testng and abbot. IEEE Softw., 24(3):51-57.
  27. Silva, J. a. C., Silva, C., Gonc¸alo, R. D., Saraiva, J. a., and Campos, J. C. (2010). The GUISurfer Tool: Towards a Language Independent Approach to Reverse Engineering GUI Code. In Proceedings of EICS 2010, pages 181-186, New York, NY, USA. ACM.
  28. van der Merwe, H., van der Merwe, B., and Visser, W. (2014). Execution and property specifications for jpfandroid. SIGSOFT Softw. Eng. Notes, 39(1):1-5.
  29. Yuan, X., Cohen, M. B., and Memon, A. M. (2011). Gui interaction testing: Incorporating event context. IEEE Transactions on Software Engineering, 37(4):559- 574.
  30. Yuan, X. and Memon, A. M. (2010). Generating event sequence-based test cases using gui run-time state feedback. IEEE Transactions on Software Engineering, 36(1).
Download


Paper Citation


in Harvard Style

Molnar A. (2015). JETracer - A Framework for Java GUI Event Tracing . In Proceedings of the 10th International Conference on Evaluation of Novel Approaches to Software Engineering - Volume 1: ENASE, ISBN 978-989-758-100-7, pages 207-214. DOI: 10.5220/0005372902070214


in Bibtex Style

@conference{enase15,
author={Arthur-Jozsef Molnar},
title={JETracer - A Framework for Java GUI Event Tracing},
booktitle={Proceedings of the 10th International Conference on Evaluation of Novel Approaches to Software Engineering - Volume 1: ENASE,},
year={2015},
pages={207-214},
publisher={SciTePress},
organization={INSTICC},
doi={10.5220/0005372902070214},
isbn={978-989-758-100-7},
}


in EndNote Style

TY - CONF
JO - Proceedings of the 10th International Conference on Evaluation of Novel Approaches to Software Engineering - Volume 1: ENASE,
TI - JETracer - A Framework for Java GUI Event Tracing
SN - 978-989-758-100-7
AU - Molnar A.
PY - 2015
SP - 207
EP - 214
DO - 10.5220/0005372902070214