An Empirical Study on the Effectiveness of Monkey Testing for Android Applications

Android application development has attracted the attention of many software developers as a mainstream software platform. Despite its interesting characteristics, there are a number of issues that result in developing applications with poor performance. Hence, it is very crucial to evaluate quality of Android applications, specially their robustness and responsiveness. Monkey testing is a traditional technique used for testing these aspects in applications. In this paper, two experimental studies are conducted to investigate how effective monkey testing is in revealing robustness and responsiveness faults in Android applications. The results demonstrate that monkey testing of Android applications for finding robustness and responsiveness errors is very effective and highly recommended. Further, the Android applications published in Iranian app stores have turned out to be more vulnerable to these types of errors, compared to the applications published in international app stores. This means that robustness and responsiveness testing needs to be taken into consideration more seriously by the Iranian developers. The experimental results also demonstrate that the default monkey tool available in Android Studio IDE has a very low focus, i.e., 5.5%, and is much less sensitive to the responsiveness faults that cause delays less than 5 s.

[1]  Yan Wang,et al.  Profiling the Responsiveness of Android Applications via Automated Resource Amplification , 2016, 2016 IEEE/ACM International Conference on Mobile Software Engineering and Systems (MOBILESoft).

[2]  Porfirio Tramontana,et al.  Automated functional testing of mobile applications: a systematic mapping study , 2018, Software Quality Journal.

[3]  Rudolf Ramler,et al.  Hybrid monkey testing: enhancing automated GUI tests with random test generation , 2017, A-TEST@ESEC/SIGSOFT FSE.

[4]  Xia Zeng,et al.  Automated test input generation for Android: are we really there yet in an industrial case? , 2016, SIGSOFT FSE.

[5]  Deepa Thiagarajan EFFICIENT DETECTION OF HANG BUGS IN MOBILE APPLICATIONS , 2016 .

[6]  Shingo Takada,et al.  Responsiveness analysis tool for Android application , 2014, DeMobile@SIGSOFT FSE.

[7]  A. Jefferson Offutt,et al.  Is Mutation Analysis Effective at Testing Android Apps? , 2017, 2017 IEEE International Conference on Software Quality, Reliability and Security (QRS).

[8]  Yepang Liu,et al.  Characterizing and detecting performance bugs for smartphone applications , 2014, ICSE.

[9]  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).

[10]  Porfirio Tramontana,et al.  Using GUI ripping for automated testing of Android applications , 2012, 2012 Proceedings of the 27th IEEE/ACM International Conference on Automated Software Engineering.

[11]  Gerardo Canfora,et al.  Exploring Mobile User Experience Through Code Quality Metrics , 2016, PROFES.

[12]  Romain Rouvoy,et al.  Mining Test Repositories for Automatic Detection of UI Performance Regressions in Android Apps , 2016, 2016 IEEE/ACM 13th Working Conference on Mining Software Repositories (MSR).

[13]  Mario Linares Vásquez,et al.  How do Developers Test Android Applications? , 2017, 2017 IEEE International Conference on Software Maintenance and Evolution (ICSME).

[14]  L. V. Haoyin,et al.  Automatic android application GUI testing—A random walk approach , 2017, 2017 International Conference on Wireless Communications, Signal Processing and Networking (WiSPNET).

[15]  Miryung Kim,et al.  An Empirical Study of API Stability and Adoption in the Android Ecosystem , 2013, 2013 IEEE International Conference on Software Maintenance.

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

[17]  Iulian Neamtiu,et al.  On the Effectiveness of Random Testing for Android: Or How I Learned to Stop Worrying and Love the Monkey , 2018, 2018 IEEE/ACM 13th International Workshop on Automation of Software Test (AST).

[18]  Bo Jiang,et al.  Facilitating Monkey Test by Detecting Operable Regions in Rendered GUI of Mobile Game Apps , 2016, 2016 IEEE International Conference on Software Quality, Reliability and Security (QRS).

[19]  Atanas Rountev,et al.  Testing for poor responsiveness in android applications , 2013, 2013 1st International Workshop on the Engineering of Mobile-Enabled Systems (MOBS).

[20]  Jacques Klein,et al.  Automated Testing of Android Apps: A Systematic Literature Review , 2019, IEEE Transactions on Reliability.

[21]  David Lo,et al.  Understanding the Test Automation Culture of App Developers , 2015, 2015 IEEE 8th International Conference on Software Testing, Verification and Validation (ICST).

[22]  Luca Ardito,et al.  Espresso vs. EyeAutomate: An Experiment for the Comparison of Two Generations of Android GUI Testing , 2019, EASE.

[23]  Michael R. Lyu,et al.  Experience Report: Detecting Poor-Responsive UI in Android Applications , 2016, 2016 IEEE 27th International Symposium on Software Reliability Engineering (ISSRE).

[24]  Doo-Hwan Bae,et al.  Automated model-based Android GUI testing using multi-level GUI comparison criteria , 2016, 2016 31st IEEE/ACM International Conference on Automated Software Engineering (ASE).

[25]  Michalis Faloutsos,et al.  ProfileDroid: multi-layer profiling of android applications , 2012, Mobicom '12.

[26]  Rudolf Ramler,et al.  A Framework for Monkey GUI Testing , 2016, 2016 IEEE International Conference on Software Testing, Verification and Validation (ICST).

[27]  Ting Su,et al.  FSMdroid: Guided GUI Testing of Android Apps , 2016, 2016 IEEE/ACM 38th International Conference on Software Engineering Companion (ICSE-C).

[28]  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.

[29]  Jeff Huang,et al.  EHBDroid: Beyond GUI testing for Android applications , 2017, 2017 32nd IEEE/ACM International Conference on Automated Software Engineering (ASE).

[30]  Yue Jia,et al.  Sapienz: multi-objective automated testing for Android applications , 2016, ISSTA.

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