Abstract
This paper presents a tool (iMPAcT) that automates testing of mobile applications based on the presence of recurring behaviour, UI Patterns. It combines reverse engineering, pattern matching and testing. The reverse engineering process is responsible for crawling the application, i.e. analysing the state of the application and interacting with it by firing events. The pattern matching tries to identify the presence of UI patterns based on a catalogue of patterns. When a UI Pattern from the catalogue is detected, a test strategy is applied (testing). These test strategies are called UI Test Patterns. These three phases work in an iterative way: the patterns are identified and tested between firing of events, i.e. the process alternates between exploring the application and testing the UI Patterns. The process is dynamic and fully automatic not requiring any previous knowledge about the application under test. This paper presents the results of an experiment studying the reliability of the results obtained by iMPAcT. The experiment involved 25 applications found on Google Play Store and concludes that iMPAcT is successful in identifying failures in the tested patterns and that the degree of certainty of an identified failure being an actual failure is high.







Similar content being viewed by others
Notes
FL-Frame Layout, LV-Linear View, OC-only child, V-View, LL-Linear Layout
References
Alexander, C.W., Ishikawa, S., Silverstein, M., & Jacobson, M. (1977). A Pattern Language: Towns, Buildings, Construction (Center for Environmental Structure), 1st edn. Oxford: Oxford University Press.
Amalfitano, D., Fasolino, A.R., Tramontana, P., Ta, B., & Memon, A. (2015). MobiGUITAR: Automated Model-Based Testing of Mobile Apps. IEEE Software, 32 (5), 53–59. https://doi.org/10.1109/MS.2014.55 . http://ieeexplore.ieee.org/lpdocs/epic03/wrapper.htm?arnumber=6786194.
Android, G. (2015a). Android navigation drawer. http://goo.gl/nnJOoj.
Android, G. (2015b). Up and running with material design.
Avancini, A., & Ceccato, M. (2013). Security testing of the communication among android applications. In Automation of Software Test (AST), 2013 8th International Workshop on, IEEE Press, San Francisco, California, pp 57–63. https://doi.org/10.1109/IWAST.2013.6595792.
Batyuk, L., Herpich, M., Camtepe, S.A., Raddatz, K., Schmidt, A.D., & Albayrak, S. (2011). Using static analysis for automatic assessment and mitigation of unwanted and malicious activities within Android applications. In Malicious and Unwanted Software (MALWARE), 2011 6th International Conference on, IEEE, Fajardo, Puerto Rico, pp 66–72. https://doi.org/10.1109/MALWARE.2011.6112328.
Coimbra Morgado, I., & Paiva, A.C.R. (2015a). Test patterns for android mobile applications. In 20th European Conference on Pattern Languages of Programs (Europlop 2015), Irsee, Germany. http://dl.acm.org/citation.cfm?id=2855354.
Coimbra Morgado, I., & Paiva, A.C.R. (2015b). Testing approach for mobile applications through reverse engineering of UI patterns. In Sixth International Workshop on Testing Techniques for Event BasED Software.
Coimbra Morgado, I., & Paiva, A.C.R. (2015c). The iMPAcT Tool: testing UI patterns on mobile applications. In 30th IEEE/ACM International Conference on Automated Software Engineering (ASE 2015), Lincoln, NE, USA. http://ieeexplore.ieee.org/xpls/abs_all.jsp?arnumber=7372083.
Coimbra Morgado, I., & Paiva, A.C.R. (2016). Impact of execution modes on finding android failures. Procedia Computer Science, 83, 284–291. https://doi.org/10.1016/j.procs.2016.04.127. http://www.sciencedirect.com/science/article/pii/S1877050916301508.
Dar, M.A., & Parvez, J. (2014). Enhancing security of android & IOS by implementing need-based security (NBS). In 2014 International Conference on Control, Instrumentation, Communication and Computational Technologies (ICCICCT), IEEE, Kanyakumari, India, pp 728–733. https://doi.org/10.1109/ICCICCT.2014.6993055.
Fowler, M. (1997). Analysis Patterns - Reusable Object Models. Boston: Addison-Wesley.
Franke, D., Kowalewski, S., Weise, C., & Prakobkosol, N. (2012). Testing conformance of life cycle dependent properties of mobile applications. In 2012 IEEE Fifth International Conference on Software Testing, Verification and Validation, IEEE, Montreal, QC, Canada, pp 241–250. https://doi.org/10.1109/ICST.2012.104. http://ieeexplore.ieee.org/articleDetails.jsp?arnumber=6200126.
Gorla, A., Tavecchia, I., Gross, F., & Zeller, A. (2014). Checking app behavior against app descriptions. In Proceedings of the 36th International Conference on Software Engineering (ICSE 2014), ACM Press, Hyderabad, India, pp 1025–1035.
Ingraham, N. (2013). Apple announces 1 million apps in the App Store, more than 1 billion songs played on iTunes radio. https://goo.gl/MYwnYo.
ISO/IEC (2011). ISO/IEC 25010:2011 - Systems and software engineering — Systems and software Quality Requirements and Evaluation (SQuaRE) — system and software quality models. Tech. rep. https://www.iso.org/standard/35733.html.
Moran, K., Linares-Vasquez, M., Bernal-Cardenas, C., Vendome, C., & Poshyvanyk, D. (2016). Automatically discovering, reporting and reproducing android application crashes. In 2016 IEEE International Conference on Software Testing, Verification and Validation (ICST), IEEE, Chicago, IL, USA, pp 33–44. https://doi.org/10.1109/ICST.2016.34. http://ieeexplore.ieee.org/lpdocs/epic03/wrapper.htm?arnumber=7515457.
Moreira, R.M.L.M., Paiva, A.C.R., Nabuco, M., & Memon, A. (2017). Pattern-based GUI testing: bridging the gap between design and quality assurance. Softw Test, Verif Reliab; 27(3). https://doi.org/10.1002/stvr.1629.
Morgado, I.C. (2017). Automated pattern-based testing of mobile applications. Porto: PhD thesis. Faculty of Engineering of the University of Porto.
Muccini, H., di Francesco, A., & Esposito, P. (2012). Software testing of mobile applications: challenges and future research directions. In Automation of Software Test (AST), 2012 7th International Workshop on, IEEE, Zurich, Switzerland, pp 29–35. https://doi.org/10.1109/IWAST.2012.6228987.
Nguyen, C.D., Marchetto, A., & Tonella, P. (2012). Combining model-based and combinatorial testing for effective test case generation. In Proceedings of the 2012 International Symposium on Software Testing and Analysis (ISSTA 2012), ACM Press, Minneapolis, MN, USA, pp 100–110. https://doi.org/10.1145/2338965.2336765.
Ravitch, T., Creswick, E.R., Tomb, A., Foltzer, A., Elliott, T., & Casburn, L. (2014). Multi-App Security Analysis with FUSE: Statically Detecting Android App Collusion. In Proceedings of the 4th Program Protection and Reverse Engineering Workshop (PPREW-4), ACM, New Orleans, LA, USA, pp 4:1–4:10. https://doi.org/10.1145/2689702.2689705.
Zhu, H., Ye, X., Zhang, X., & Shen, K. (2015). A context-aware approach for dynamic GUI testing of android applications. In 2015 IEEE 39th annual computer software and applications conference (COMPSAC), IEEE, TaiChung, Taiwan, vol 2, pp 248–253. https://doi.org/10.1109/COMPSAC.2015.77.
Author information
Authors and Affiliations
Corresponding author
Rights and permissions
About this article
Cite this article
Morgado, I., Paiva, A.C.R. Mobile GUI testing. Software Qual J 26, 1553–1570 (2018). https://doi.org/10.1007/s11219-017-9387-1
Published:
Issue Date:
DOI: https://doi.org/10.1007/s11219-017-9387-1