DroidMate: A Robust and Extensible Test Generator for Android

DroidMate is a fully automated GUI execution generator for Android apps. DroidMate explores an app, i.e. (a) repeatedly reads at runtime the device GUI and monitored calls to Android APIs methods and (b) makes a decision what next GUI action (click, long-click, text entry, etc.) to execute, based on that data and provided exploration strategy. The process continues until some termination criterion is met.DroidMate is:- fully automatic: after it has been set up, the exploration itself does not require human presence. - extensible: without recompiling DroidMate, anybody can run it with their own exploration strategy, termination criterion or set of monitored methods.- robust: tested on 126 apps being in top 5 in all Google Play categories except Games, it ran successfully on 123 of them. - easy to setup: it works on Android devices and emulators out-of-the-box, without root or OS modifications. - easy to modify: documented sources, built and tested with continuous integration server, are publicly available.

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

[2]  Suman Nath,et al.  Brahmastra: Driving Apps to Test the Security of Third-Party Components , 2014, USENIX Security Symposium.

[3]  Michael Backes,et al.  AppGuard - Fine-Grained Policy Enforcement for Untrusted Android Applications , 2013, DPM/SETOP.

[4]  Yung Ryn Choe,et al.  Andlantis: Large-scale Android Dynamic Analysis , 2014, ArXiv.

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

[6]  Suman Nath,et al.  PUMA: programmable UI-automation for large-scale dynamic analysis of mobile apps , 2014, MobiSys.

[7]  Sam Malek,et al.  A whitebox approach for automated security testing of Android applications on the cloud , 2012, 2012 7th International Workshop on Automation of Software Test (AST).

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