2017 · 51 citations · 43 references
ComputingInformation TechnologyMobile ComputingMobile SystemsSoftware EngineeringMobile Application DevelopmentSoftware TestingActivitiesCoverageMobile App Testing
Activities are the fundamental components of Android applications (apps). However, existing approaches to automated testing for Android apps cannot effectively manage the transitions between activities, e.g., too rarely or too often. Besides, some techniques need to repeatedly restart from scratch and revisit every intermediate activity to reach a specific one, which leads to unnecessarily long transitions and wasted time. To address these problems, we propose AimDroid, a practical model-based approach to automated testing for Android apps that aims to manage the exploration of activities and meantime minimize unnecessary transitions between them. Specifically, AimDroid applies an activity-insulated multi-level strategy during testing and replaying. It systematically discovers unexplored activities and then intensively exploits every discovered individual with a reinforcement learning guided random algorithm. We conduct comprehensive experiments on 50 popular closed-source commercial apps that in total have billions of daily usages in China. The results demonstrate that AimDroid outperforms both Sapienz and Monkey in activity, method and instruction coverage, respectively. In addition, AimDroid also reports more crashes than the other two.
43
On-line Q-learning Using Connectionist Systems
G. A. Rummery · 1994 · 1.5K citations
Computing, Educational Technology, Artificial Intelligence +7
Dynodroid: an input generation system for Android apps
Aravind Machiry, Rohan Tahiliani, Mayur Naik · 2013 · 704 citations · Full text
Sapienz: multi-objective automated testing for Android applications
Ke Mao, Mark Harman, Yue Jia · 2016 · 531 citations · Full text
Using GUI ripping for automated testing of Android applications
Domenico Amalfitano, Anna Rita Fasolino, Porfirio Tramontana et al. · 2012 · 515 citations