A Grey-Box Approach for Automated GUI-Model Generation of Mobile Applications

  • Wei Yang
  • Mukul R. Prasad
  • Tao Xie
Part of the Lecture Notes in Computer Science book series (LNCS, volume 7793)


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.


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.


  1. 1.
  2. 2.
    netimperative: Twitter’s mobile ad revenue overtakes desktop PCs (2012), http://www.digitalstrategyconsulting.com/netimperative/news/2012/06/twitters_mobile_ad_revenue_ove.php
  3. 3.
    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/
  4. 4.
    Android Developers Site, http://developer.Android.com/
  5. 5.
    Google Project Hosting: Robotium, http://code.google.com/p/robotium/
  6. 6.
    Pivotal Labs: Robolectric, http://pivotal.github.com/robolectric/
  7. 7.
    Bitbar: Testdroid, http://testdroid.com/
  8. 8.
    Contus: Mobile App Testing, http://mobileappstesting.contussupport.com/
  9. 9.
    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)Google Scholar
  10. 10.
    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)Google Scholar
  11. 11.
    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)Google Scholar
  12. 12.
    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)CrossRefGoogle Scholar
  13. 13.
    Joorabchi, M.E., Mesbah, A.: Reverse engineering iOS mobile applications. In: Proc. 19th Working Conference on Reverse Engineering, WCRE 2012, pp. 177–186 (2012)Google Scholar
  14. 14.
    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)Google Scholar
  15. 15.
    Pezzè, M., Young, M.: Software testing and analysis - process, principles and techniques. Wiley (2007)Google Scholar
  16. 16.
    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)Google Scholar
  17. 17.
    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)CrossRefGoogle Scholar
  18. 18.
    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)Google Scholar
  19. 19.
    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)Google Scholar
  20. 20.
    Shafique, M., Labiche, Y.: A systematic review of model based testing tool support. Technical Report SCE-10-04, Carleton University, Canada (2010)Google Scholar
  21. 21.
  22. 22.
    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)Google Scholar
  23. 23.
    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)Google Scholar
  24. 24.

Copyright information

© Springer-Verlag Berlin Heidelberg 2013

Authors and Affiliations

  • Wei Yang
    • 1
    • 2
  • Mukul R. Prasad
    • 1
  • Tao Xie
    • 2
  1. 1.Fujitsu Labs. of AmericaSoftware Systems Innovation GroupSunnyvaleUSA
  2. 2.Department of Computer ScienceNorth Carolina State UniversityRaleighUSA

Personalised recommendations