A GUI TESTING STRATEGY AND TOOL FOR ANDROID APPS
Keywords:Mobile apps, GUI testing, Android app GUI testing, Model-based testing, Automated testing tools, Event-based coverage criteria, Robotium test framework
The increasing popularity of Android and the GUI-driven nature of its apps have motivated the need for applicable automated GUI testing techniques. This paper presents a proposed strategy and a supporting tool for GUI testing of Android apps. The strategy employs a model-based approach to capture the event-driven nature of Android apps. It includes two phases: Modeling Phase and Test Evaluation Phase. In the modeling phase, an event sequence diagram (ESD) is created for each activity in the app under test (AUT), which depicts its events and possible transitions between them, and used to generate event sequences (test cases). In the test evaluation phase, certain event-based coverage criteria are employed to measure the adequacy of the generated test cases. The proposed tool analyses the AUT, creates an ESD for each activity, and generates event sequences. It handles the event sequences explosion problem and ensures the event sequences feasibility. For each event sequence, the tool generates a test script and a corresponding Robotium test class, adds it to the AUT and executes it. The paper also presents a case study that illustrates the use of the proposed strategy and tool for testing a simple Android app.
UI/Application Exerciser Monkey — Android Developers. [Online]. Available at: http://developer.android.com/tools/help/monkey.html.
C. Hu and I. Neamtiu, “Automating GUI testing for android applications,” Proceedings of the 6th International Workshop on Automation of Software Test, AST’11, Waikiki, Honolulu, HI, USA, May 23-24, 2011, pp. 77–83.
A. Machiry, R. Tahiliani, and M. Naik, “Dynodroid: an input generation system for android apps,” Proceedings of the 9th Joint Meeting on Foundations of Software Engineering, Saint Petersburg, Russia, August 18–26, 2013, pp. 224-234.
D. Amalfitano, A.R. Fasolino, and P. Tramontana, “A GUI crawling-based technique for Android mobile application testing,” Proceedings of the IEEE Fourth International Conference on Software Testing, Verification and Validation Workshops (ICSTW’11), Berlin, Germany, 21-25 March, 2011, pp. 252–261.
D. Amalfitano, A.R. Fasolino, P. Tramontana, S. De Carmine, and A.M. Memon, “Using GUI ripping for automated testing of Android applications,” Proceedings of the IEEE/ACM International Conference on Automated Software Engineering, ASE’12, Essen, Germany, September 3-7, 2012, pp. 258–261.
W. Yang, M. R. Prasad, and T. Xie, “A grey-box approach for automated GUI-model generation of mobile applications,” Proceedings of the 16th International Conference on Fundamental Approaches to Software Engineering, FASE’13, Rome, Italy, March 16-24, 2013, pp. 250–265.
T. Azim and I. Neamtiu, “Targeted and depth-first exploration for systematic testing of android apps,” Proceedings of the ACM SIGPLAN International Conference on Object Oriented Programming Systems Languages & Applications, OOPSLA’13, Indianapolis, IN, USA, October 26-31, 2013, pp. 641–660.
W. Choi, G. C. Necula, and K. Sen, “Guided GUI testing of Android apps with minimal restart and approximate learning,” Proceedings of the 2013 ACM SIGPLAN International Conference on Object Oriented Programming Systems Languages & Applications, OOPSLA’13, Indianapolis, IN, USA, October 26-31, 2013, pp. 623–640.
D. Amalfitano, A. R. Fasolino, P. Tramontana, B. D. Ta, and A. M. Memon, “MobiGUITAR: automated model-based testing of mobile apps,” IEEE Software, vol. 32, issue 5, pp. 53–59, 2015.
T. Su, G. Meng, Y. Chen, K. Wu, W. Yang, Y. Yao, G. Pu, Y. Liu, and Z. Su, “Guided, stochastic model-based GUI testing of Android apps,” Proceedings of the Symposium on the Foundations of Software Engineering ESEC/FSE’17, Paderborn, Germany, September 4–8, 2017, pp. 245-256.
N. Mirzaei, S. Malek, C.S. Păsăreanu, N. Esfahani, and R. Mahmood, “Testing Android apps through symbolic execution,” ACM SIGSOFT Software Engineering Notes, vol. 37, issue 6, pp. 1-5, 2012.
S. Anand, M. Naik, M. J. Harrold, and H. Yang, “Automated concolic testing of smartphone apps,” Proceedings of the 20th ACM SIGSOFT Symposium on the Foundations of Software Engineering, SIGSOFT/FSE’12, Cary, NC, USA, November 11-16, 2012, pp. 59-69.
C. S. Jensen, M. R. Prasad, and A. Møller, “Automated testing with targeted event sequence generation,” Proceedings of the International Symposium on Software Testing and Analysis, ISSTA’13, Lugano, Switzerland, July 15-20, 2013, pp. 67–77.
N. Mirzaei, H. Bagheri, R. Mahmood, and S. Malek, “SIG-Droid: Automated system input generation for android applications,” Proceedings of the 26th IEEE International Symposium on Software Reliability Engineering, ISSRE’15, Gaithersbury, Maryland, USA, November 2-5, 2015, pp. 461-471.
N. Mirzaei, J. Garcia, H. Bagheri, A. Sadeghi, and S. Malek, “Reducing combinatorics in GUI testing of android applications,” Proceedings of the 38th International Conference on Software Engineering, ICSE’16, Austin, TX, USA, May 14-22, 2016, pp. 559–570.
R. Mahmood, N. Mirzaei, and S. Malek, “EvoDroid: segmented evolutionary testing of android apps,” Proceedings of the 22nd ACM SIGSOFT International Symposium on Foundations of Software Engineering, ESEC/FSE’14, Hong Kong, China, November 16-22, 2014, pp. 599–609.
K. Mao, M. Harman, and Y. Jia, “Sapienz: multi-objective automated testing for android applications,” Proceedings of the 25th International Symposium on Software Testing and Analysis, ISSTA’16, Saarbrucken, Germany, July 18-20, 2016, pp. 94–105.
A. Darvish and C. K. Chang, “Black-box test data generation for GUI testing,” Proceedings of the 14th International Conference on Quality Software, 2-3 October 2014, Dallas, TX, USA, pp. 133-138.
M. Linares-Vásquez, M. White, C. Bernal-Cárdenas, K. Moran, D. Poshyvanyk, “Mining Android app usages for generating actionable GUI-based execution scenarios,” Proceedings of the 12th IEEE/ACMWorking Conference on Mining Software Repositories, MSR’2015, Florence, Italy, May 16-17, 2015, pp. 111–122.
W. Song, X. Qian, and J. Huang, “EHBDroid: Beyond GUI testing for Android applications,” Proceedings of the 32nd IEEE/ACM International Conference on Automated Software Engineering (ASE), 30 October-3 November 2017, Urbana, IL, USA, pp. 27-37.
Android – Application Components. [Online]. Available at: https://www.tutorialspoint.com/android/android_application_components.htm.
Android user interface testing with Robotium – Tutorial. [Online]. Available at: http://www.vogella.com/tutorials/Robotium/article.html.
P. Li, T. Huynh, M. Reformat, and J. Miller, “A practical approach to testing GUI systems,” Empirical Software Engineering, vol. 12, issue 4, pp. 331–357, 2007.
A. M. Memon, A Comprehensive Framework for Testing Graphical User Interfaces, PhD Thesis, Department of Computer Science, University of Pittsburgh, July 2001.
How to Cite
LicenseInternational Journal of Computing is an open access journal. Authors who publish with this journal agree to the following terms:
• Authors retain copyright and grant the journal right of first publication with the work simultaneously licensed under a Creative Commons Attribution License that allows others to share the work with an acknowledgement of the work's authorship and initial publication in this journal.
• Authors are able to enter into separate, additional contractual arrangements for the non-exclusive distribution of the journal's published version of the work (e.g., post it to an institutional repository or publish it in a book), with an acknowledgement of its initial publication in this journal.
• Authors are permitted and encouraged to post their work online (e.g., in institutional repositories or on their website) prior to and during the submission process, as it can lead to productive exchanges, as well as earlier and greater citation of published work.