Reverse Engineering Mobile Apps for Model Generation Using a Hybrid Approach
Keywords:GUI Model Generation, Mobile Apps, Model-based Testing, Reverse Engineering
AbstractThe 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.http://www.gartner.com/newsroom/id/3061917.
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. http://www.gartner.com/newsroom/id/2654115.
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
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. http://sourceforge.net/apps/ mediawiki/
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. http://code.google.com/p/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
TRANSFER OF COPYRIGHT AGREEMENT
The manuscript is herewith submitted for publication in the Journal of Telecommunication, Electronic and Computer Engineering (JTEC). It has not been published before, and it is not under consideration for publication in any other journals. It contains no material that is scandalous, obscene, libelous or otherwise contrary to law. When the manuscript is accepted for publication, I, as the author, hereby agree to transfer to JTEC, all rights including those pertaining to electronic forms and transmissions, under existing copyright laws, except for the following, which the author(s) specifically retain(s):
- All proprietary right other than copyright, such as patent rights
- The right to make further copies of all or part of the published article for my use in classroom teaching
- The right to reuse all or part of this manuscript in a compilation of my own works or in a textbook of which I am the author; and
- The right to make copies of the published work for internal distribution within the institution that employs me
I agree that copies made under these circumstances will continue to carry the copyright notice that appears in the original published work. I agree to inform my co-authors, if any, of the above terms. I certify that I have obtained written permission for the use of text, tables, and/or illustrations from any copyrighted source(s), and I agree to supply such written permission(s) to JTEC upon request.