As the mobile platform continues to pervade all aspects of human activities, and mobile apps on such platform tend to be faulty just like other types of software, there is a growing need for automated testing techniques for mobile applications. Among various testing approaches, model-based testing remains a popular and important one, operating on a model of an application's behavior. However, such model is often not available or of insufficient quality for model-based testing. To address this issue, we present a novel grey-box approach for automatically extracting a model of a given mobile application. In our approach, static analysis extracts the set of events supported by the Graphical User Inter- face (GUI) of the application. Then dynamic crawling reverse-engineers a model of the application, by systematically exercising these events on the running application. We also present a tool implementation of this approach for the Android platform. Our empirical evaluation of this tool on several Android applications demonstrates that it can efficiently extract compact yet reasonably comprehensive models of high quality for such applications.
To appear at. 16th International Conference on Fundamental Approaches to Software Engineering .
(FASE 2013), Rome, Italy, March 2013. (acceptance rate: 23.2%, 26 out of 112)