The Library will be performing maintenance on UWSpace on September 4th, 2024. UWSpace will be offline for all UW community members during this time.
 

Ape+: A Faster Ape with Static Model Guided Exploration

Loading...
Thumbnail Image

Date

2022-08-17

Authors

Cheng, Yaxin

Journal Title

Journal ISSN

Volume Title

Publisher

University of Waterloo

Abstract

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. Neverthe- less, 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 re- placing Appium, the communication layer between Ape and the device, with UiAutomator. We solved technical challenges, such as supporting drag function and fetching current ac- tivity names, and experiments show that efficiency improvements among the applications are between 10% to 40% compare to Ape with Appium. 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 in- strumentation, 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 synergis- tically. 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.

Description

Keywords

android gui testing, automated testing, model-based testing, static analysis

LC Keywords

Citation