Android application testing has always been a serious problem for mobile developers. To support developers, this paper presents GATS, a GUI-based automated test system for Android apps. This tool uses finite-state machine to learn a model of the app during testing, then uses the learned model to generate user inputs or system event to visit the rest states of the app, and then uses the result of the input to refine the model. The goal of the tool is to trigger crashes. When a crash is happened, GATS will generate a crash report containing screenshot, logcat info with stack trace crash, reproduction steps, and so on. We evaluate GATS on ten Android applications from the top list of several app markets with Monkey, a fuzzing tool from Android platform, and Dynodroid, a previous research. Our result shows that our system has less running time and more bugs found.
[1]
Mayur Naik,et al.
Dynodroid: an input generation system for Android apps
,
2013,
ESEC/FSE 2013.
[2]
George C. Necula,et al.
Guided GUI testing of android apps with minimal restart and approximate learning
,
2013,
OOPSLA.
[3]
John Regehr,et al.
Intent fuzzer: crafting intents of death
,
2014,
WODA+PERTEA 2014.
[4]
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.
[5]
Suman Nath,et al.
PUMA: programmable UI-automation for large-scale dynamic analysis of mobile apps
,
2014,
MobiSys.