Reverse Engineering Mobile Apps for Model Generation Using a Hybrid Approach


  • Ibrahim Anka Salihu Faculty of Computer Science and Information Technology, Universiti Tun Hussein Onn Malaysia (UTHM), 86400 Parit Raja, Batu Pahat, Johor, Malaysia
  • Rosziati Ibrahim Faculty of Computer Science and Information Technology, Universiti Tun Hussein Onn Malaysia (UTHM), 86400 Parit Raja, Batu Pahat, Johor, Malaysia


GUI Model Generation, Mobile Apps, Model-based Testing, Reverse Engineering


The popularity of mobile devices is ever increasing which led to rapid increase in the development of mobile applications. Model-Based testing can improve the quality of mobile application but the models are not always available or are of inadequate quality. Reverse engineering approaches are used to automatically generate model from the GUI of mobile applications for model-based testing. This paper proposes a hybrid approach for reverse engineering mobile applications which exploit the capabilities of both static and dynamic approaches while trying to maximize the quality of the generated models. The insight of this approach is to use static analysis on app’s source to identify supported events. The generated events can be used to dynamically explore an app at run-time to generate a state model of the app’s GUI. The preliminary results from our approach indicated that the technique can generate high quality models from android apps.


Yang, S., et al. Static control-flow analysis of user-driven callbacks in Android applications. in International Conference on Software Engineering (ICSE). 2015.

Gartner, I., "Worldwide Smartphone Sales", June, 2015.

Nayebi, F., J.-M. Desharnais, and A. Abran. The state of the art of mobile application usability evaluation. in CCECE. 2012.

Gartner, I., Mobile Apps Will Be a Vehicle for Cognizant Computing, June 2015.

Minelli, R. and M. Lanza. Software Analytics for Mobile ApplicationsInsights & Lessons Learned. in Software Maintenance and Reengineering (CSMR), 2013 17th European Conference on Software Maintenance and Reengineering. 2013.

Islam, R., R. Islam, and T. Mazumder, Mobile application and its global impact. International Journal of Engineering & Technology (IJEST), 2010.

Wasserman, A.I. Software engineering issues for mobile application development. in Proceedings of the FSE/SDP workshop on Future of software engineering research. 2010. ACM.

Muccini, H., A. Di Francesco, and P. Esposito. Software testing of mobile applications: Challenges and future research directions. in 7th International Workshop on Automation of Software Test (AST),. 2012.


Payet, É. and F. Spoto, Static analysis of Android programs. Information and Software Technology, 2012. 54(11): p. 1192-1201.

Hu, C. and I. Neamtiu. Automating GUI testing for Android applications. in Proceedings of the 6th International Workshop on Automation of Software Test. 2011. ACM.

Bhattacharya, P., et al. An empirical analysis of bug reports and bug fixing in open source android apps. in Software Maintenance and Reengineering (CSMR), 2013 17th European Conference on. 2013.


Enck, W., et al., TaintDroid: an information-flow tracking system for realtime privacy monitoring on smartphones. ACM Transactions on Computer Systems (TOCS), 2014. 32(2): p. 5.

Rountev, A. and D. Yan, Static Reference Analysis for GUI Objects in Android Software, in Proceedings of Annual IEEE/ACM International Symposium on Code Generation and Optimization. 2014, ACM: Orlando, FL, USA. p. 143-153.

Azim, T. and I. Neamtiu. Targeted and depth-first exploration for systematic testing of android apps. in Proceedings of the 2013 ACM SIGPLAN international conference on Object oriented programming systems languages & applications. 2013. ACM.

Yang, W., M.R. Prasad, and T. Xie, A grey-box approach for automated GUI-model generation of mobile applications, in Fundamental Approaches to Software Engineering. 2013, Springer. p. 250-265.

Dehlinger, J. and J. Dixon. Mobile application software engineering: Challenges and research directions. in Workshop on Mobile Software Engineering. 2011.

Janicki, M., M. Katara, and T. Pääkkönen, Obstacles and opportunities in deploying model‐based GUI testing of mobile software: a survey. Software Testing, Verification and Reliability, 2012. 22(5): p. 313-341.

Young, M., Software testing and analysis: process, principles, and techniques. 2008: John Wiley & Sons.

Kull, A. Automatic GUI Model Generation: State of the Art. in Software Reliability Engineering Workshops (ISSREW), 2012 IEEE 23rd International Symposium on. 2012.

Amalfitano, D., et al., Using GUI ripping for automated testing of Android applications, in Proceedings of the 27th IEEE/ACM International Conference on Automated Software Engineering. 2012,

ACM: Essen, Germany. p. 258-261.

Aho, P., et al. Automated Java GUI Modeling for Model-Based Testing Purposes. in Information Technology: New Generations (ITNG), 2011 Eighth International Conference on. 2011.

Cipresso, T. and M. Stamp, Software Reverse Engineering, in Handbook of Information and Communication Security. 2010, Springer. p. 659-696.

Grilo, A.P., A.R. Paiva, and J.P. Faria. Reverse engineering of GUI models for testing. in Information Systems and Technologies (CISTI), 2010 5th Iberian Conference on. 2010.

Memon, A., I. Banerjee, and A. Nagarajan. GUI ripping: Reverse engineering of graphical user interfaces for testing. in 10th Working Conference on Reverse Engineering (WCRE 2003). 2003. IEEE

Computer Society.

Nguyen, B., et al., GUITAR: an innovative tool for automated testing of GUI-driven software. Automated Software Engineering, 2014. 21(1): p.65-105.

Memon, A., AndroidGUITAR. mediawiki/

guitar/index.php?title=Android_GUITAR, 2011.

Joorabchi, M.E. and A. Mesbah. Reverse engineering iOS mobile applications. in Reverse Engineering (WCRE), 2012 19th Working Conference on. 2012. IEEE.

Mesbah, A., A. van Deursen, and S. Lenselink, Crawling Ajax-Based Web Applications through Dynamic Analysis of User Interface State Changes. ACM Trans. Web, 2012. 6(1): p. 1-30.

Amalfitano, D., A.R. Fasolino, and P. Tramontana. A gui crawlingbased technique for ndroid mobile application testing. in Software Testing, Verification and Validation Workshops (ICSTW), 2011 IEEE Fourth International Conference on. 2011. IEEE.

Silva, C.E. and J.C. Campos, Combining static and dynamic analysis for the reverse engineering of web applications, in Proceedings of the 5th ACM SIGCHI symposium on Engineering interactive computing systems. 2013, ACM: London, United Kingdom. p. 107-112.

Coimbra Morgado, I., A.C. Paiva, and J. Pascoal Faria, Dynamic Reverse Engineering of Graphical User Interfaces. International Journal On Advances in Software, 2012. 5(3 and 4): p. 224-236.

Aho, P., T. Raty, and N. Menz. Dynamic reverse engineering of GUI models for testing. in Control, Decision and Information Technologies (CoDIT), 2013 International Conference on. 2013.

GATOR: Program Analysis Toolkit For Android.

GoogleCode, Robotium.

Salva, S. and S.R. Zafimiharisoa, Model Reverse-engineering of Mobile Applications with Exploration Strategies. In Proceedings of the 9th International Conference on Software Engineering Advances (ICSEA),

October 12-16, 2014, Nice, France., 2014.

Salihu, I.A. and R. Ibrahim, Comparative Analysis of GUI Reverse Engineering Techniques, in Advanced Computer and Communication Engineering Technology. 2016, Springer. p. 295-305




How to Cite

Anka Salihu, I., & Ibrahim, R. (2016). Reverse Engineering Mobile Apps for Model Generation Using a Hybrid Approach. Journal of Telecommunication, Electronic and Computer Engineering (JTEC), 8(4), 1–5. Retrieved from

Most read articles by the same author(s)