MobiGUITAR - A Tool for Automated Model-Based Testing of Mobile Apps

As mobile devices become increasingly smarter and more powerful, so too must the engineering of their software. User-interface driven system testing of these devices is gaining popularity, with each vendor releasing some automation tool(s). We feel that these tools are inappropriate for amateur program- mers, an increasing fraction of the app developer population. We present MobiGUITAR for automated GUI-driven testing of Android apps. MobiGUITAR is based on observation, extraction, and abstraction of the run-time state of GUI widgets. The abstraction is a scalable state-machine model that, together with test coverage criteria, provides a way to automatically generate test cases. We apply MobiGUITAR to 4 open-source Android apps, automatically generate and execute 7,711 test cases, and report 10 new bugs. A number of bugs are "Android-specific," stemming from the event- and activity-driven nature of Android.

[1]  Andreas Zeller,et al.  Search-based system testing: high coverage, no false alarms , 2012, ISSTA 2012.

[2]  Mika Katara,et al.  Experiences of System-Level Model-Based GUI Testing of an Android Application , 2011, 2011 Fourth IEEE International Conference on Software Testing, Verification and Validation.

[3]  Porfirio Tramontana,et al.  Reverse Engineering Finite State Machines from Rich Internet Applications , 2008, 2008 15th Working Conference on Reverse Engineering.

[4]  George C. Necula,et al.  Guided GUI testing of android apps with minimal restart and approximate learning , 2013, OOPSLA.

[5]  Iulian Neamtiu,et al.  Automating GUI testing for Android applications , 2011, AST '11.

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

[7]  Atif M. Memon,et al.  GUI ripping: reverse engineering of graphical user interfaces for testing , 2003, 10th Working Conference on Reverse Engineering, 2003. WCRE 2003. Proceedings..

[8]  Arie van Deursen,et al.  Crawling Ajax-Based Web Applications through Dynamic Analysis of User Interface State Changes , 2012, TWEB.

[9]  David S. Rosenblum,et al.  Context-Aware Adaptive Applications: Fault Patterns and Their Automated Identification , 2010, IEEE Transactions on Software Engineering.

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

[11]  Hongseok Yang,et al.  Automated concolic testing of smartphone apps , 2012, SIGSOFT FSE.

[12]  Mary Lou Soffa,et al.  Coverage criteria for GUI testing , 2001, ESEC/FSE-9.