Nothing Special   »   [go: up one dir, main page]

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 2013 Publication 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/.
[2]
EMMA: a free Java code coverage tool. http://emma.sourceforge.net/.
[3]
Free and Open Source App Repository. https://f-droid.org/.
[4]
GUITAR: A model-based system for automated GUI testing. http://guitar.sourceforge.net/.
[5]
Hierarchy Viewer. http://developer.android.com/ tools/help/hierarchy-viewer.html.
[6]
Historical distribution of Android versions in use. http://developer.android.com/about/dashboards/ index.html.
[7]
UI/Application Exerciser Monkey. http: //developer.android.com/tools/help/monkey.html.
[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.
[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.
[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.
[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.
[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.
[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.
[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.
[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.
[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.
[17]
J. Jeon, K. Micinski, and J. Foster. Symdroid: Symbolic execution for dalvik bytecode, 2012. http: //www.cs.umd.edu/~jfoster/papers/symdroid.pdf.
[18]
J. King. Symbolic execution and program testing. CACM, 19(7):385–394, 1976.
[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.
[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.
[21]
A. Memon and M. Soffa. Regression testing of GUIs. In Proceedings of ACM Conf. on Foundations of Software Engineering (FSE), 2003.
[22]
N. Mirzaei, S. Malek, C. Pasareanu, N. Esfahani, and R. Mahmood. Testing Android apps through symbolic execution. In Java Pathfinder Workshop (JPF), 2012.
[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.
[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.
[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.
[26]
X. Yuan, M. Cohen, and A. Memon. GUI interaction testing: Incorporating event context. Trans. on Soft. Engr., 37(4), 2011.
[27]
X. Yuan and A. Memon. Generating event sequence-based test cases using GUI runtime state feedback. Trans. on Soft. Engr., 36(1), 2010.

Cited By

View all
  • (2024)Enhancement of GUI Display Error Detection Using Improved Faster R-CNN and Multi-Scale Attention MechanismApplied Sciences10.3390/app1403114414:3(1144)Online publication date: 30-Jan-2024
  • (2024)Navigating Mobile Testing Evaluation: A Comprehensive Statistical Analysis of Android GUI Testing MetricsProceedings of the 39th IEEE/ACM International Conference on Automated Software Engineering10.1145/3691620.3695476(944-956)Online publication date: 27-Oct-2024
  • (2024)Effective, Platform-Independent GUI Testing via Image Embedding and Reinforcement LearningACM Transactions on Software Engineering and Methodology10.1145/367472833:7(1-27)Online publication date: 21-Jun-2024
  • Show More Cited By

Recommendations

Comments

Please enable JavaScript to view thecomments powered by Disqus.

Information & Contributors

Information

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
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]

Sponsors

Publisher

Association for Computing Machinery

New York, NY, United States

Publication History

Published: 18 August 2013

Permissions

Request permissions for this article.

Check for updates

Author Tags

  1. Android
  2. GUI testing
  3. testing event-driven programs

Qualifiers

  • Research-article

Conference

ESEC/FSE'13
Sponsor:

Acceptance Rates

Overall Acceptance Rate 112 of 543 submissions, 21%

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)138
  • Downloads (Last 6 weeks)11
Reflects downloads up to 18 Nov 2024

Other Metrics

Citations

Cited By

View all
  • (2024)Enhancement of GUI Display Error Detection Using Improved Faster R-CNN and Multi-Scale Attention MechanismApplied Sciences10.3390/app1403114414:3(1144)Online publication date: 30-Jan-2024
  • (2024)Navigating Mobile Testing Evaluation: A Comprehensive Statistical Analysis of Android GUI Testing MetricsProceedings of the 39th IEEE/ACM International Conference on Automated Software Engineering10.1145/3691620.3695476(944-956)Online publication date: 27-Oct-2024
  • (2024)Effective, Platform-Independent GUI Testing via Image Embedding and Reinforcement LearningACM Transactions on Software Engineering and Methodology10.1145/367472833:7(1-27)Online publication date: 21-Jun-2024
  • (2024)Enhancing GUI Exploration Coverage of Android Apps with Deep Link-Integrated MonkeyACM Transactions on Software Engineering and Methodology10.1145/366481033:6(1-31)Online publication date: 27-Jun-2024
  • (2024)Neat: Mobile App Layout Similarity Comparison Based on Graph Convolutional NetworksCompanion Proceedings of the 32nd ACM International Conference on the Foundations of Software Engineering10.1145/3663529.3663832(104-114)Online publication date: 10-Jul-2024
  • (2024)AndroLog: Android Instrumentation and Code Coverage AnalysisCompanion Proceedings of the 32nd ACM International Conference on the Foundations of Software Engineering10.1145/3663529.3663806(597-601)Online publication date: 10-Jul-2024
  • (2024)DinoDroid: Testing Android Apps Using Deep Q-NetworksACM Transactions on Software Engineering and Methodology10.1145/365215033:5(1-24)Online publication date: 4-Jun-2024
  • (2024)Synthesis-Based Enhancement for GUI Test Case MigrationProceedings of the 33rd ACM SIGSOFT International Symposium on Software Testing and Analysis10.1145/3650212.3680327(869-881)Online publication date: 11-Sep-2024
  • (2024)Towards Benchmarking the Coverage of Automated Testing Tools in Android against Manual TestingProceedings of the IEEE/ACM 11th International Conference on Mobile Software Engineering and Systems10.1145/3647632.3651394(74-77)Online publication date: 14-Apr-2024
  • (2024)GuiEvo: Automated Evolution of Mobile App UIsProceedings of the 21st International Conference on Mining Software Repositories10.1145/3643991.3644936(335-347)Online publication date: 15-Apr-2024
  • Show More Cited By

View Options

Login options

View options

PDF

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader

Media

Figures

Other

Tables

Share

Share

Share this Publication link

Share on social media