Abstract
As the mobile platform continues to pervade all aspects of human activity, and mobile applications, or mobile apps for short, on this platform tend to be faulty just like other types of software, there is a growing need for automated testing techniques for mobile apps. Modelbased testing is a popular and important testing approach that operates on a model of an app’s behavior. However, such a model is often not available or of insufficient quality. To address this issue, we present a novel grey-box approach for automatically extracting a model of a given mobile app. In our approach, static analysis extracts the set of events supported by the Graphical User Interface (GUI) of the app. Then dynamic crawling reverse-engineers a model of the app, by systematically exercising these events on the running app. We also present a tool implementing this approach for the Android platform. Our empirical evaluation of this tool on several Android apps demonstrates that it can efficiently extract compact yet reasonably comprehensive models of high quality for such apps.
Keywords
- Graphical User Interface
- Mobile Platform
- Symbolic Execution
- Call Graph
- Android Application
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.
Chapter PDF
References
comScore Inc.: State of the Internet: Q1 (2012), http://www.comscore.com/Insights/Presentations_and_Whitepapers/2012/State_of_US_Internet_in_Q1_2012
netimperative: Twitter’s mobile ad revenue overtakes desktop PCs (2012), http://www.digitalstrategyconsulting.com/netimperative/news/2012/06/twitters_mobile_ad_revenue_ove.php
engadget.com: Google Play hits 600,000 apps, 20 billion total installs (2012), http://www.engadget.com/2012/06/27/google-play-hits-600000-apps/
Android Developers Site, http://developer.Android.com/
Google Project Hosting: Robotium, http://code.google.com/p/robotium/
Pivotal Labs: Robolectric, http://pivotal.github.com/robolectric/
Bitbar: Testdroid, http://testdroid.com/
Contus: Mobile App Testing, http://mobileappstesting.contussupport.com/
Anand, S., Naik, M., Harrold, M.J., Yang, H.: Automated concolic testing of smartphone apps. In: Proc. 20th ACM SIGSOFT International Symposium on the Foundations of Software Engineering, FSE 2012, pp. 59:1–59:11 (2012)
Nguyen, C.D., Marchetto, A., Tonella, P.: Combining model-based and combinatorial testing for effective test case generation. In: Proc. International Symposium on Software Testing and Analysis, ISSTA 2010, pp. 100–110 (2012)
Amalfitano, D., Fasolino, A.R., Tramontana, P., De Carmine, S., Memon, A.M.: Using GUI ripping for automated testing of Android applications. In: Proc. 27th IEEE/ACM International Conference on Automated Software Engineering, ASE 2012, pp. 258–261 (2012)
Mirzaei, N., Malek, S., Păsăreanu, C.S., Esfahani, N., Mahmood, R.: Testing Android apps through symbolic execution. SIGSOFT Softw. Eng. Notes 37, 1–5 (2012)
Joorabchi, M.E., Mesbah, A.: Reverse engineering iOS mobile applications. In: Proc. 19th Working Conference on Reverse Engineering, WCRE 2012, pp. 177–186 (2012)
Syer, M.D., Adams, B., Zou, Y., Hassan, A.E.: Exploring the development of micro-apps: A case study on the Blackberry and Android platforms. In: Proc. IEEE 11th International Working Conference on Source Code Analysis and Manipulation, SCAM 2011, pp. 55–64 (2011)
Pezzè, M., Young, M.: Software testing and analysis - process, principles and techniques. Wiley (2007)
Memon, A., Banerjee, I., Nagarajan, A.: GUI ripping: Reverse engineering of graphical user interfaces for testing. In: Proc. 10th Working Conference on Reverse Engineering, WCRE 2003, pp. 260–269 (2003)
Mesbah, A., van Deursen, A., Lenselink, S.: Crawling AJAX-based Web applications through dynamic analysis of user interface state changes. ACM Trans. Web 6(1), 3:1–3:30 (2012)
Takala, T., Katara, M., Harty, J.: Experiences of system-level model-based GUI testing of an Android application. In: Proc. 4th IEEE International Conference on Software Testing, Verification and Validation, ICST 2011, pp. 377–386 (2011)
Dias Neto, A.C., Subramanyan, R., Vieira, M., Travassos, G.H.: A survey on model-based testing approaches: a systematic review. In: Proc. 1st ACM International Workshop on Empirical Assessment of Software Engineering Languages and Technologies, WEASELTech 2007, pp. 31–36 (2007)
Shafique, M., Labiche, Y.: A systematic review of model based testing tool support. Technical Report SCE-10-04, Carleton University, Canada (2010)
Sourceforge: Android GUITAR, http://sourceforge.net/apps/mediawiki/guitar/index.php?title=Android_GUITAR
Dallmeier, V., Burger, M., Orth, T., Zeller, A.: WebMate: a tool for testing Web 2.0 applications. In: Proc. Workshop on JavaScript Tools, JSTools 2012, pp. 11–15 (2012)
Hu, C., Neamtiu, I.: Automating GUI testing for Android applications. In: Proc. 6th International Workshop on Automation of Software Test, AST 2011, pp. 77–83 (2011)
Sourceforge: WALA, http://wala.sourceforge.net/wiki/index.php
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2013 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Yang, W., Prasad, M.R., Xie, T. (2013). A Grey-Box Approach for Automated GUI-Model Generation of Mobile Applications. In: Cortellessa, V., Varró, D. (eds) Fundamental Approaches to Software Engineering. FASE 2013. Lecture Notes in Computer Science, vol 7793. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-642-37057-1_19
Download citation
DOI: https://doi.org/10.1007/978-3-642-37057-1_19
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-642-37056-4
Online ISBN: 978-3-642-37057-1
eBook Packages: Computer ScienceComputer Science (R0)