Is Mutation Analysis Effective at Testing Android Apps?

Not only is Android the most widely used mobile operating system, more apps have been released and downloaded for Android than for any other OS. However, quality is an ongoing problem, with many apps being released with faults, sometimes serious faults. Because the structure of mobile app software differs from other types of software, testing is difficult and traditional methods do not work. Thus we need different approaches to test mobile apps. In this paper, we identify challenges in testing Android apps, and categorize common faults according to fault studies. Then, we present a way to apply mutation testing to Android apps. Additionally, this paper presents results from two empirical studies on fault detection effectiveness using open-source Android applications: one for Android mutation testing, and another for four existing Android testing techniques. The studies use naturally occurring faults as well as crowdsourced faults introduced by experienced Android developers. Our results indicate that Android mutation testing is effective at detecting faults.

[1]  Sarfraz Khurshid,et al.  Automated Generation of Oracles for Testing User-Interaction Features of Mobile Apps , 2014, 2014 IEEE Seventh International Conference on Software Testing, Verification and Validation.

[2]  D LaToza Thomas Crowdsourcing in software engineering: models, motivations, and challenges , 2019, ICSE 2019.

[3]  A. Jefferson Offutt,et al.  Introduction to Software Testing , 2008 .

[4]  Mark Harman,et al.  A survey of the use of crowdsourcing in software engineering , 2017, J. Syst. Softw..

[5]  Alessandra Gorla,et al.  Automated Test Input Generation for Android: Are We There Yet? (E) , 2015, 2015 30th IEEE/ACM International Conference on Automated Software Engineering (ASE).

[6]  Iulian Neamtiu,et al.  Targeted and depth-first exploration for systematic testing of android apps , 2013, OOPSLA.

[7]  A. Jefferson Offutt,et al.  MuJava: an automated class mutation system , 2005, Softw. Test. Verification Reliab..

[8]  A. Jefferson Offutt,et al.  Generating test cases for XML-based Web component interactions using mutation analysis , 2001, Proceedings 12th International Symposium on Software Reliability Engineering.

[9]  M. Meeker Internet trends 2015 , 2015 .

[10]  Juan Luo,et al.  Testing Web services by XML perturbation , 2005, 16th IEEE International Symposium on Software Reliability Engineering (ISSRE'05).

[11]  Hossain Shahriar,et al.  Testing of Memory Leak in Android Applications , 2014, 2014 IEEE 15th International Symposium on High-Assurance Systems Engineering.

[12]  A. Jefferson Offutt,et al.  Test Oracle Strategies for Model-Based Testing , 2017, IEEE Transactions on Software Engineering.

[13]  A. Jefferson Offutt,et al.  Mutation operators for testing Android apps , 2017, Inf. Softw. Technol..

[14]  Ming Zhang,et al.  Bootstrapping energy debugging on smartphones: a first look at energy bugs in mobile devices , 2011, HotNets-X.

[15]  Romain Rouvoy,et al.  A Recommender System of Buggy App Checkers for App Store Moderators , 2015, 2015 2nd ACM International Conference on Mobile Software Engineering and Systems.

[16]  Suman Nath,et al.  PUMA: programmable UI-automation for large-scale dynamic analysis of mobile apps , 2014, MobiSys.

[17]  Jun Yan,et al.  Characterizing and detecting resource leaks in Android applications , 2013, 2013 28th IEEE/ACM International Conference on Automated Software Engineering (ASE).

[18]  Michele Lanza,et al.  Software Analytics for Mobile Applications--Insights & Lessons Learned , 2013, 2013 17th European Conference on Software Maintenance and Reengineering.

[19]  Richard J. Lipton,et al.  Hints on Test Data Selection: Help for the Practicing Programmer , 1978, Computer.

[20]  A. Jefferson Offutt,et al.  Towards mutation analysis of Android apps , 2015, 2015 IEEE Eighth International Conference on Software Testing, Verification and Validation Workshops (ICSTW).

[21]  Mayur Naik,et al.  Dynodroid: an input generation system for Android apps , 2013, ESEC/FSE 2013.

[22]  A. Jefferson Offutt,et al.  Assessing the Influence of Multiple Test Case Selection on Mutation Experiments , 2014, 2014 IEEE Seventh International Conference on Software Testing, Verification and Validation Workshops.

[23]  Porfirio Tramontana,et al.  MobiGUITAR - A Tool for Automated Model-Based Testing of Mobile Apps , 2014 .