skip to main content
10.1145/2491411.2491450acmconferencesArticle/Chapter ViewAbstractPublication PagesfseConference Proceedingsconference-collections
research-article

Dynodroid: an input generation system for Android apps

Published:18 August 2013Publication History

ABSTRACT

We present a system Dynodroid for generating relevant inputs to unmodified Android apps. Dynodroid views an app as an event-driven program that interacts with its environment by means of a sequence of events through the Android framework. By instrumenting the framework once and for all, Dynodroid monitors the reaction of an app upon each event in a lightweight manner, using it to guide the generation of the next event to the app. Dynodroid also allows interleaving events from machines, which are better at generating a large number of simple inputs, with events from humans, who are better at providing intelligent inputs.

We evaluated Dynodroid on 50 open-source Android apps, and compared it with two prevalent approaches: users manually exercising apps, and Monkey, a popular fuzzing tool. Dynodroid, humans, and Monkey covered 55%, 60%, and 53%, respectively, of each app's Java source code on average. Monkey took 20X more events on average than Dynodroid. Dynodroid also found 9 bugs in 7 of the 50 apps, and 6 bugs in 5 of the top 1,000 free apps on Google Play.

References

  1. DroidBox: Android application sandbox. http://code.google.com/p/droidbox/.Google ScholarGoogle Scholar
  2. EMMA: a free Java code coverage tool. http://emma.sourceforge.net/.Google ScholarGoogle Scholar
  3. Free and Open Source App Repository. https://f-droid.org/.Google ScholarGoogle Scholar
  4. GUITAR: A model-based system for automated GUI testing. http://guitar.sourceforge.net/.Google ScholarGoogle Scholar
  5. Hierarchy Viewer. http://developer.android.com/ tools/help/hierarchy-viewer.html.Google ScholarGoogle Scholar
  6. Historical distribution of Android versions in use. http://developer.android.com/about/dashboards/ index.html.Google ScholarGoogle Scholar
  7. UI/Application Exerciser Monkey. http: //developer.android.com/tools/help/monkey.html.Google ScholarGoogle Scholar
  8. D. Amalfitano, A. Fasolino, S. Carmine, A. Memon, and P. Tramontana. Using GUI ripping for automated testing of Android applications. In Proceedings of 27th Intl. Conf. on Automated Software Engineering (ASE), 2012. Google ScholarGoogle ScholarDigital LibraryDigital Library
  9. S. Anand, M. Naik, H. Yang, and M. Harrold. Automated concolic testing of smartphone apps. In Proceedings of ACM Conf. on Foundations of Software Engineering (FSE), 2012. Google ScholarGoogle ScholarDigital LibraryDigital Library
  10. R. Bryce, S. Sampath, and A. Memon. Developing a single model and test prioritization strategies for event-driven software. Trans. on Soft. Engr., 37(1), 2011. Google ScholarGoogle ScholarDigital LibraryDigital Library
  11. C. Cadar, D. Dunbar, and D. Engler. KLEE: Unassisted and automatic generation of high-coverage tests for complex systems programs. In Proceedings of 8th USENIX Symp. on Operating Systems Design and Implementation (OSDI), 2008. Google ScholarGoogle ScholarDigital LibraryDigital Library
  12. W. Enck, P. Gilbert, B.-G. Chun, L. Cox, J. Jung, P. McDaniel, and A. Sheth. Taintdroid: An information-flow tracking system for realtime privacy monitoring on smartphones. In Proceedings of 9th USENIX Symp. on Operating Systems Design and Implementation (OSDI), 2010. Google ScholarGoogle ScholarDigital LibraryDigital Library
  13. P. Gilbert, B.-G. Chun, L. Cox, and J. Jung. Vision: automated security validation of mobile apps at app markets. In Proceedings of 2nd Intl. Workshop on Mobile Cloud Computing and Services (MCS), 2011. Google ScholarGoogle ScholarDigital LibraryDigital Library
  14. P. Godefroid, N. Klarlund, and K. Sen. DART: Directed automated random testing. In Proceedings of ACM Conf. on Programming Language Design and Implementation (PLDI), 2005. Google ScholarGoogle ScholarDigital LibraryDigital Library
  15. F. Gross, G. Fraser, and A. Zeller. Search-based system testing: high coverage, no false alarms. In Proceedings of the 2012 International Symposium on Software Testing and Analysis (ISSTA), 2012. Google ScholarGoogle ScholarDigital LibraryDigital Library
  16. C. Hu and I. Neamtiu. Automating GUI testing for Android applications. In Proceedings of 6th IEEE/ACM Workshop on Automation of Software Test (AST), 2011. Google ScholarGoogle ScholarDigital LibraryDigital Library
  17. J. Jeon, K. Micinski, and J. Foster. Symdroid: Symbolic execution for dalvik bytecode, 2012. http: //www.cs.umd.edu/~jfoster/papers/symdroid.pdf.Google ScholarGoogle Scholar
  18. J. King. Symbolic execution and program testing. CACM, 19(7):385–394, 1976. Google ScholarGoogle ScholarDigital LibraryDigital Library
  19. R. Mahmood, N. Esfahani, T. Kacem, N. Mirzaei, S. Malek, and A. Stavrou. A whitebox approach for automated security testing of Android applications on the cloud. In Proceedings of 7th IEEE/ACM Workshop on Automation of Software Test (AST), 2012.Google ScholarGoogle ScholarDigital LibraryDigital Library
  20. A. Memon, M. Pollack, and M. Soffa. Automated test oracles for GUIs. In Proceedings of ACM Conf. on Foundations of Software Engineering (FSE), 2000. Google ScholarGoogle ScholarDigital LibraryDigital Library
  21. A. Memon and M. Soffa. Regression testing of GUIs. In Proceedings of ACM Conf. on Foundations of Software Engineering (FSE), 2003. Google ScholarGoogle ScholarDigital LibraryDigital Library
  22. N. Mirzaei, S. Malek, C. Pasareanu, N. Esfahani, and R. Mahmood. Testing Android apps through symbolic execution. In Java Pathfinder Workshop (JPF), 2012.Google ScholarGoogle ScholarDigital LibraryDigital Library
  23. T. Takala, M. Katara, and J. Harty. Experiences of system-level model-based GUI testing of an Android app. In Proceedings of 4th Intl. Conf. on Software Testing, Verification and Validation (ICST), 2011. Google ScholarGoogle ScholarDigital LibraryDigital Library
  24. L. White and H. Almezen. Generating test cases for GUI responsibilities using complete interaction sequences. In Proceedings of 11th IEEE Intl. Symp. on Software Reliability Engineering (ISSRE), 2000. Google ScholarGoogle ScholarDigital LibraryDigital Library
  25. L. Yan and H. Yin. DroidScope: Seamlessly reconstructing the OS and Dalvik semantic views for dynamic Android malware analysis. In Proceedings of 21st USENIX Security Symposium, 2012. Google ScholarGoogle ScholarDigital LibraryDigital Library
  26. X. Yuan, M. Cohen, and A. Memon. GUI interaction testing: Incorporating event context. Trans. on Soft. Engr., 37(4), 2011. Google ScholarGoogle ScholarDigital LibraryDigital Library
  27. X. Yuan and A. Memon. Generating event sequence-based test cases using GUI runtime state feedback. Trans. on Soft. Engr., 36(1), 2010. Google ScholarGoogle ScholarDigital LibraryDigital Library

Index Terms

  1. Dynodroid: an input generation system for Android apps

    Recommendations

    Comments

    Login options

    Check if you have access through your login credentials or your institution to get full access on this article.

    Sign in
    • Published in

      cover image ACM Conferences
      ESEC/FSE 2013: Proceedings of the 2013 9th Joint Meeting on Foundations of Software Engineering
      August 2013
      738 pages
      ISBN:9781450322379
      DOI:10.1145/2491411

      Copyright © 2013 ACM

      Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected]

      Publisher

      Association for Computing Machinery

      New York, NY, United States

      Publication History

      • Published: 18 August 2013

      Permissions

      Request permissions about this article.

      Request Permissions

      Check for updates

      Qualifiers

      • research-article

      Acceptance Rates

      Overall Acceptance Rate112of543submissions,21%

    PDF Format

    View or Download as a PDF file.

    PDF

    eReader

    View online with eReader.

    eReader