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

skip to main content
research-article

Testing android apps through symbolic execution

Published: 27 November 2012 Publication History

Abstract

There is a growing need for automated testing techniques aimed at Android apps. A critical challenge is the systematic generation of test cases. One method of systematically generating test cases for Java programs is symbolic execution. But applying symbolic execution tools, such as Symbolic Pathfinder (SPF), to generate test cases for Android apps is challenged by the fact that Android apps run on the Dalvik Virtual Machine (DVM) instead of JVM. In addition, Android apps are event driven and susceptible to path-divergence due to their reliance on an application development framework. This paper provides an overview of a two-pronged approach to alleviate these issues. First, we have developed a model of Android libraries in Java Pathfinder (JPF) to enable execution of Android apps in a way that addresses the issues of incompatibility with JVM and path-divergence. Second, we have leveraged program analysis techniques to correlate events with their handlers for automatically generating Android-specific drivers that simulate all valid events.

References

[1]
Amalfitano, D. et al. 2011. A GUI Crawling-Based Technique for Android Mobile Application Testing. Software Testing, Verification and Validation Workshops (ICSTW), 2011 IEEE Fourth International Conference on (2011).
[2]
Anand, S. et al. 2012. Automated Concolic Testing of Smartphone Apps. ACM Symposium on Foundations of Software Engineering (FSE'12), (2012).
[3]
Android Developers Guide: http://developer.android.com/guide/topics/fundamentals.html
[4]
Android Testing Framework: http://developer.android.com/guide/topics/testing/index.html.
[5]
Cadar, C. et al. 2011. Symbolic execution for software testing in practice: preliminary assessment. International Conference on Software Engineering (ICSE), (2011).
[6]
Dalvik - Code and documentation from Android's VM team: http://code.google.com/p/dalvik/.
[7]
EMMA: http://emma.sourceforge.net/.
[8]
Godefroid, P. et al. 2008. Automated whitebox fuzz testing. Network and Distributed System Security Sym. (2008).
[9]
Godefroid, P. et al. 2008. Grammar-based whitebox fuzzing. ACM SIGPLAN Notices (2008), 206--215.
[10]
Inkumsah, K. and Xie, T. 2008. Improving structural testing of object-oriented programs via integrating evolutionary testing and symbolic execution. 23rd IEEE/ACM Int'l Conf. on Automated Software Engineering (ASE '08) (2008).
[11]
Java PathFinder: http://babelfish.arc.nasa.gov/trac/jpf/.
[12]
King, J. 1975. A new approach to program testing. Programming Methodology. (1975), 278--290.
[13]
Mahmood, R. et al. 2012. A whitebox approach for automated security testing of Android applications on the cloud. Int'l Wrkshp. on Automation of Soft. Test. (Jun. 2012).
[14]
Malek, S. et al. 2005. A Style-Aware Architectural Middleware for Resource-Constrained, Distributed Systems. IEEE Trans. Softw. Eng. 31, 3 (Mar. 2005), 256--272.
[15]
Mehlitz, P. et al. 2011. Jpf-awt: Model checking gui applications. Automated Software Engineering (ASE), 2011 26th IEEE/ACM International Conference on (2011).
[16]
Memon, A. et al. 2003. GUI ripping: Reverse engineering of graphical user interfaces for testing. proceedings of the 10th working conf. on reverse engineering (WCRE'03) (2003).
[17]
Memon, A.M. et al. 2000. Automated test oracles for GUIs. ACM SIGSOFT Software Engineering Notes (2000), 30--39.
[18]
Memon, A.M. and Xie, Q. 2005. Studying the fault-detection effectiveness of GUI test cases for rapidly evolving software. Software Engineering, IEEE Transactions on. 31, 10 (2005).
[19]
MoDisco: http://www.eclipse.org/MoDisco/.
[20]
Robolectric: http://pivotal.github.com/robolectric/.
[21]
Sen, K. et al. 2005. CUTE: A concolic unit testing engine for C. ACM.
[22]
Symbolic PathFinder: http://babelfish.arc.nasa.gov/trac/jpf/wiki/projects/jpf-symbc.
[23]
Visser, W. et al. 2004. Test input generation with Java PathFinder. ACM SIGSOFT Soft. Eng. Notes. 29, 4 (2004).
[24]
White, L. and Almezen, H. 2000. Generating test cases for GUI responsibilities using complete interaction sequences. 11th Intl. Sym. on Software Reliability Engineering (2000).

Cited By

View all
  • (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)Who Should We Blame for Android App Crashes? An In-Depth Study at Scale and Practical ResolutionsACM Transactions on Sensor Networks10.1145/364989520:3(1-24)Online publication date: 13-Apr-2024
  • (2024)Recommending and release planning of user-driven functionality deletion for mobile appsRequirements Engineering10.1007/s00766-024-00430-529:4(459-480)Online publication date: 10-Sep-2024
  • Show More Cited By

Recommendations

Comments

Please enable JavaScript to view thecomments powered by Disqus.

Information & Contributors

Information

Published In

cover image ACM SIGSOFT Software Engineering Notes
ACM SIGSOFT Software Engineering Notes  Volume 37, Issue 6
November 2012
191 pages
ISSN:0163-5948
DOI:10.1145/2382756
Issue’s Table of Contents
Permission to make digital or hard copies of part or all 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 third-party components of this work must be honored. For all other uses, contact the Owner/Author.

Publisher

Association for Computing Machinery

New York, NY, United States

Publication History

Published: 27 November 2012
Published in SIGSOFT Volume 37, Issue 6

Check for updates

Author Tags

  1. Java Pathfinder
  2. android
  3. symbolic pathfinder
  4. testing

Qualifiers

  • Research-article

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)32
  • Downloads (Last 6 weeks)2
Reflects downloads up to 30 Nov 2024

Other Metrics

Citations

Cited By

View all
  • (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)Who Should We Blame for Android App Crashes? An In-Depth Study at Scale and Practical ResolutionsACM Transactions on Sensor Networks10.1145/364989520:3(1-24)Online publication date: 13-Apr-2024
  • (2024)Recommending and release planning of user-driven functionality deletion for mobile appsRequirements Engineering10.1007/s00766-024-00430-529:4(459-480)Online publication date: 10-Sep-2024
  • (2023)Route: Roads Not Taken in UI TestingACM Transactions on Software Engineering and Methodology10.1145/357185132:3(1-25)Online publication date: 26-Apr-2023
  • (2023)User Driven Functionality Deletion for Mobile Apps2023 IEEE 31st International Requirements Engineering Conference (RE)10.1109/RE57278.2023.00011(6-16)Online publication date: Sep-2023
  • (2023)Columbus: Android App Testing through Systematic Callback ExplorationProceedings of the 45th International Conference on Software Engineering10.1109/ICSE48619.2023.00121(1381-1392)Online publication date: 14-May-2023
  • (2023)GUI Testing for Android Applications: A Survey2023 7th International Conference on Computer, Software and Modeling (ICCSM)10.1109/ICCSM60247.2023.00010(6-10)Online publication date: 21-Jul-2023
  • (2023)Automated test generation for Scratch programsEmpirical Software Engineering10.1007/s10664-022-10255-x28:3Online publication date: 13-May-2023
  • (2023)Security Analysis on Android Application Through Penetration TestingProceedings of Fourth Doctoral Symposium on Computational Intelligence10.1007/978-981-99-3716-5_20(221-234)Online publication date: 17-Sep-2023
  • (2022)ProMalProceedings of the 44th International Conference on Software Engineering10.1145/3510003.3510037(1755-1767)Online publication date: 21-May-2022
  • 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