Systematic Exploration of Android Apps' Events for Automated Testing

The popularity of mobile devices is ever increasing which led to rapid increase in the development of mobile applications. GUI testing has been an effective means of validating Android apps. However, it still suffers a strong challenge about how to explore event sequence in the GUIs. This paper proposes a hybrid approach for systematic exploration of mobile apps which exploit the capabilities of both static and dynamic approaches while trying to improve app's state exploration. Our approach is based static analysis on app's bytecode to extract events supported by an app. The generated events are used to dynamically explore an app at run-time. The experimental results show that our approach can explore significant number of app's state for the generation of high quality test case.

[1]  Atif M. Memon,et al.  GUITAR: an innovative tool for automated testing of GUI-driven software , 2014, Automated Software Engineering.

[2]  João Pascoal Faria,et al.  Dynamic Reverse Engineering of Graphical User Interfaces , 2012 .

[3]  Porfirio Tramontana,et al.  A GUI Crawling-Based Technique for Android Mobile Application Testing , 2011, 2011 IEEE Fourth International Conference on Software Testing, Verification and Validation Workshops.

[4]  Michele Lanza,et al.  Software Analytics for Mobile Applications--Insights & Lessons Learned , 2013, 2013 17th European Conference on Software Maintenance and Reengineering.

[5]  Byung-Gon Chun,et al.  TaintDroid: an information flow tracking system for real-time privacy monitoring on smartphones , 2014, Commun. ACM.

[6]  Andres Kull Automatic GUI Model Generation: State of the Art , 2012, 2012 IEEE 23rd International Symposium on Software Reliability Engineering Workshops.

[7]  Alain Abran,et al.  The state of the art of mobile application usability evaluation , 2012, 2012 25th IEEE Canadian Conference on Electrical and Computer Engineering (CCECE).

[8]  Atanas Rountev,et al.  Static Reference Analysis for GUI Objects in Android Software , 2014, CGO '14.

[9]  Liudmila Ulanova,et al.  An Empirical Analysis of Bug Reports and Bug Fixing in Open Source Android Apps , 2013, 2013 17th European Conference on Software Maintenance and Reengineering.

[10]  Yan Wang,et al.  Static Window Transition Graphs for Android (T) , 2015, 2015 30th IEEE/ACM International Conference on Automated Software Engineering (ASE).

[11]  Sébastien Salva,et al.  Model reverse-engineering of Mobile applications with exploration strategies. , 2014, ICSEA 2014.

[12]  Yan Wang,et al.  Static Control-Flow Analysis of User-Driven Callbacks in Android Applications , 2015, 2015 IEEE/ACM 37th IEEE International Conference on Software Engineering.

[13]  Porfirio Tramontana,et al.  Using GUI ripping for automated testing of Android applications , 2012, 2012 Proceedings of the 27th IEEE/ACM International Conference on Automated Software Engineering.

[14]  J. Foster,et al.  SCanDroid: Automated Security Certification of Android , 2009 .

[15]  José Creissac Campos,et al.  Combining static and dynamic analysis for the reverse engineering of web applications , 2013, EICS.

[16]  Mario Linares Vásquez Enabling Testing of Android Apps , 2015, ICSE.

[17]  Carlos E. Silva,et al.  Combining static and dynamic analysis for the reverse engineering of web applications , 2013, EICS '13.

[18]  Avik Chaudhuri,et al.  SCanDroid: Automated Security Certification of Android , 2009 .

[19]  Iulian Neamtiu,et al.  Targeted and depth-first exploration for systematic testing of android apps , 2013, OOPSLA.

[20]  Tao Xie,et al.  A Grey-Box Approach for Automated GUI-Model Generation of Mobile Applications , 2013, FASE.

[21]  Yan Wang,et al.  Static window transition graphs for Android , 2018, Automated Software Engineering.

[22]  Byung-Gon Chun,et al.  TaintDroid: An Information-Flow Tracking System for Realtime Privacy Monitoring on Smartphones , 2010, OSDI.

[23]  Iulian Neamtiu,et al.  Automating GUI testing for Android applications , 2011, AST '11.