Please note: This master’s thesis presentation will take place online.
Yaxin Cheng, Master’s candidate
David R. Cheriton School of Computer Science
Supervisor: Professor Chengnian Sun
Ape is the state-of-the-art Android GUI testing tool, which implements a dynamic model internally to guide the testing process. At the time of writing, Ape was one of the most effective Android testing tools. Ape’s interactions with Android devices partially rely on private APIs, which made it difficult to support newer Android versions. Aiming to solve this problem, we adopted Appium as the interaction layer. However, the introduction of Appium distorted Ape into a server-client structure, which brought a huge overhead and severely affected the efficiency. Besides, Ape naturally tries to test all widgets. Nevertheless, in scenarios where an application only needs to be partially tested, such strategy limits the effectiveness due to the inability to prioritize activities of interest.
In this study, we introduce Ape+, which boosts the efficiency of Ape but avoids using private Android APIs. We reconstruct Ape as a monolithic on-device testing tool by replacing Appium, the communication layer between Ape and the device, with UiAutomator. We solved technical challenges, such as supporting drag function and fetching current activity names, and experiments show that efficiency improvements among the applications are between 10% to 40%.
We also analyze different static analyses tools to find the one whose static model is informative enough to bring extra knowledge to Ape for activity prioritization. Using instrumentation, we improve the accuracy of widget matching, which is an essential step to bridge the gap between the dynamic model and the static one and combine both synergistically. We also introduce a priority decay strategy to mitigate false information produced by static analysis, and a path finding algorithm to help Ape+ navigate between activities using both models. Our experiments show, for two selected applications with informative models, Ape+ is able to cover every activity 37% and 57% faster. We believe that Ape+ is a decent testbed with maintainability and extensibility for conducting research on automated Android GUI testing in the future.