A GUI TESTING STRATEGY AND TOOL FOR ANDROID APPS

Authors

  • Moheb R. Girgis
  • Bahgat A. Abdel Latef
  • Tahany Akl

DOI:

https://doi.org/10.47839/ijc.19.3.1885

Keywords:

Mobile apps, GUI testing, Android app GUI testing, Model-based testing, Automated testing tools, Event-based coverage criteria, Robotium test framework

Abstract

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.

References

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.

Downloads

Published

2020-09-27

How to Cite

Girgis, M. R., Abdel Latef, B. A., & Akl, T. (2020). A GUI TESTING STRATEGY AND TOOL FOR ANDROID APPS. International Journal of Computing, 19(3), 355 - 364. https://doi.org/10.47839/ijc.19.3.1885

Issue

Section

Articles