Testing Android Mobile Applications: Challenges, Strategies, and Approaches

Abstract Recently, the rise in popularity of mobile applications for mobile devices and the growth estimates for this market make mobile application development a strategic business sector. As a variety of new scenarios for mobile devices and applications emerges, users and developers will require improved reliability, usability, performance, and security. In such a context, open platforms for mobile application development, such as the Android operating system, are assuming a preponderant role. To satisfy this growing request for high quality applications, developers must devote greater effort and attention to software development processes. In particular, testing and its automation play a strategic part for assuring the quality of applications. This chapter analyzes the main challenges and open issues in the field of mobile application testing for the Android platform, with an emphasis on advances in the field. We present suitable and effective principles, guidelines, models, techniques, and technologies for Android application testing and conclude with an outline of future perspectives.

[1]  Saurabh Bagchi,et al.  Characterizing Failures in Mobile OSes: A Case Study with Android and Symbian , 2010, 2010 IEEE 21st International Symposium on Software Reliability Engineering.

[2]  Jerome DiMarzio ANDROID A PROGRAMMERS GUIDE , 2008 .

[3]  Ichiro Satoh,et al.  A Testing Framework for Mobile Computing Software , 2003, IEEE Trans. Software Eng..

[4]  Daniel P. Siewiorek,et al.  A method to automate user interface testing using variable finite state machines , 1997, Proceedings of IEEE 27th International Symposium on Fault Tolerant Computing.

[5]  Atif M. Memon,et al.  Generating Event Sequence-Based Test Cases Using GUI Runtime State Feedback , 2010, IEEE Transactions on Software Engineering.

[6]  Gillian Dobbie,et al.  Automated Usability Testing Framework , 2008, AUIC.

[7]  Bart Broekman,et al.  Testing Embedded Software , 2002 .

[8]  Janet Wesson,et al.  Implementing mobile services: does the platform really make a difference? , 2005 .

[9]  Robert V. Binder,et al.  Testing Object-Oriented Systems: Models, Patterns, and Tools , 1999 .

[10]  Ichiro Satoh Software testing for wireless mobile computing , 2004, IEEE Wireless Communications.

[11]  Porfirio Tramontana,et al.  A GUI Crawling-Based Technique for Android Mobile Application Testing , 2011, 2011 IEEE Fourth International Conference on Software Testing, Verification and Validation Workshops.

[12]  Paul C. van Oorschot,et al.  A methodology for empirical analysis of permission-based security models and its application to android , 2010, CCS '10.

[13]  S. Srirama,et al.  Effective Testing Principles for the Mobile Data Services Applications , 2006, 2006 1st International Conference on Communication Systems Software & Middleware.

[14]  Max Landman Managing smart phone security risks , 2010, InfoSecCD.

[15]  Fevzi Belli,et al.  Event‐based modelling, analysis and testing of user interactions: approach and case study , 2006, Softw. Test. Verification Reliab..

[16]  Julian Harty Finding usability bugs with automated tests , 2011, CACM.

[17]  Patrick D. McDaniel,et al.  Porscha: policy oriented secure content handling in Android , 2010, ACSAC '10.

[18]  Auri Marcelo Rizzo Vincenzi,et al.  A strategy to perform coverage testing of mobile applications , 2006, AST '06.

[19]  Atif M. Memon,et al.  Developing a Single Model and Test Prioritization Strategies for Event-Driven Software , 2011, IEEE Transactions on Software Engineering.

[20]  Porfirio Tramontana,et al.  Techniques and tools for Rich Internet Applications testing , 2010, 2010 12th IEEE International Symposium on Web Systems Evolution (WSE).

[21]  Xiang Long,et al.  Adaptive random testing of mobile application , 2010, 2010 2nd International Conference on Computer Engineering and Technology.

[22]  Damianos Gavalas,et al.  Development Platforms for Mobile Applications: Status and Trends , 2011, IEEE Software.

[23]  Tsong Yueh Chen,et al.  Adaptive Random Testing: The ART of test case diversity , 2010, J. Syst. Softw..

[24]  Mika Katara,et al.  Experiences of System-Level Model-Based GUI Testing of an Android Application , 2011, 2011 Fourth IEEE International Conference on Software Testing, Verification and Validation.

[25]  Lee J. White,et al.  Generating test cases for GUI responsibilities using complete interaction sequences , 2000, Proceedings 11th International Symposium on Software Reliability Engineering. ISSRE 2000.

[26]  Atif M. Memon,et al.  Designing and comparing automated test oracles for GUI-based software applications , 2007, TSEM.

[27]  Nayan B. Ruparelia,et al.  Software development lifecycle models , 2010, SOEN.

[28]  Xinwen Zhang,et al.  Apex: extending Android permission model and enforcement with user-defined runtime constraints , 2010, ASIACCS '10.

[29]  Porfirio Tramontana,et al.  Rich Internet Application Testing Using Execution Trace Data , 2010, 2010 Third International Conference on Software Testing, Verification, and Validation Workshops.

[30]  Atif M. Memon,et al.  Studying the fault-detection effectiveness of GUI test cases for rapidly evolving software , 2005, IEEE Transactions on Software Engineering.

[31]  Atif M. Memon,et al.  Using transient/persistent errors to develop automated test oracles for event-driven software , 2004 .

[32]  Porfirio Tramontana,et al.  Reverse Engineering Finite State Machines from Rich Internet Applications , 2008, 2008 15th Working Conference on Reverse Engineering.

[33]  Iulian Neamtiu,et al.  Automating GUI testing for Android applications , 2011, AST '11.

[34]  Ian Warren,et al.  Hermes: A Tool for Testing Mobile Device Applications , 2009, 2009 Australian Software Engineering Conference.

[35]  Arie van Deursen,et al.  Invariant-based automatic testing of AJAX user interfaces , 2009, 2009 IEEE 31st International Conference on Software Engineering.

[36]  Paolo Tonella,et al.  State-Based Testing of Ajax Web Applications , 2008, 2008 1st International Conference on Software Testing, Verification, and Validation.

[37]  Atif M. Memon,et al.  GUI ripping: reverse engineering of graphical user interfaces for testing , 2003, 10th Working Conference on Reverse Engineering, 2003. WCRE 2003. Proceedings..