Guiding App Testing with Mined Interaction Models

Test generators for graphical user interfaces must constantly choose which UI element to interact with, and how. We guide this choice by mining associations between UI elements and their interactions from the most common applications. Once mined, the resulting UI interaction model can be easily applied to new apps and new test generators. In our experiments, the mined interaction models lead to code coverage improvements of 19.41% and 43.03% on average on two state-of-the-art tools (Droidmate and Droidbot), when executing the same number of actions.

[1]  Ahmed E. Hassan,et al.  Fresh apps: an empirical study of frequently-updated mobile apps in the Google play store , 2015, Empirical Software Engineering.

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

[3]  Sam Malek,et al.  EvoDroid: segmented evolutionary testing of Android apps , 2014, SIGSOFT FSE.

[4]  Alessandra Gorla,et al.  Detecting Behavior Anomalies in Graphical User Interfaces , 2017, 2017 IEEE/ACM 39th International Conference on Software Engineering Companion (ICSE-C).

[5]  Mario Linares Vásquez,et al.  Continuous, Evolutionary and Large-Scale: A New Perspective for Automated Mobile App Testing , 2017, 2017 IEEE International Conference on Software Maintenance and Evolution (ICSME).

[6]  William K. Robertson,et al.  CuriousDroid: Automated User Interface Interaction for Android Application Analysis Sandboxes , 2016, Financial Cryptography.

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

[8]  Guofei Gu,et al.  SmartDroid: an automatic system for revealing UI-based trigger conditions in android applications , 2012, SPSM '12.

[9]  P. R. Freeman Algorithm AS 145: Exact Distribution of the Largest Multinomial Frequency , 1979 .

[10]  Philipp von Styp-Rekowsky,et al.  Mining Sandboxes , 2016, 2016 IEEE/ACM 38th International Conference on Software Engineering (ICSE).

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

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

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

[14]  W. Buxton Human-Computer Interaction , 1988, Springer Berlin Heidelberg.

[15]  Sotiris B. Kotsiantis,et al.  Machine learning: a review of classification and combining techniques , 2006, Artificial Intelligence Review.

[16]  Yuanchun Li,et al.  DroidBot: A Lightweight UI-Guided Test Input Generator for Android , 2017, 2017 IEEE/ACM 39th International Conference on Software Engineering Companion (ICSE-C).

[17]  Li Yujian,et al.  A Normalized Levenshtein Distance Metric , 2007, IEEE Transactions on Pattern Analysis and Machine Intelligence.

[18]  Tao Xie,et al.  A Grey-Box Approach for Automated GUI-Model Generation of Mobile Applications , 2013, FASE.

[19]  Alex Groce,et al.  Code coverage for suite evaluation by developers , 2014, ICSE.

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

[21]  Tom Yeh,et al.  Collect, Decompile, Extract, Stats, and Diff: Mining Design Pattern Changes in Android Apps , 2015, MobileHCI.

[22]  David Lie,et al.  IntelliDroid: A Targeted Input Generator for the Dynamic Analysis of Android Malware , 2016, NDSS.

[23]  Michael I. Gordon,et al.  Covert Communication in Mobile Applications (T) , 2015, 2015 30th IEEE/ACM International Conference on Automated Software Engineering (ASE).

[24]  Iulian Neamtiu,et al.  Targeted and depth-first exploration for systematic testing of android apps , 2013, OOPSLA.

[25]  Porfirio Tramontana,et al.  MobiGUITAR: Automated Model-Based Testing of Mobile Apps , 2015, IEEE Software.

[26]  Leo Breiman,et al.  Random Forests , 2001, Machine Learning.

[27]  Andreas Zeller,et al.  DroidMate: A Robust and Extensible Test Generator for Android , 2016, 2016 IEEE/ACM International Conference on Mobile Software Engineering and Systems (MOBILESoft).