Ape+: A Faster Ape with Static Model Guided Exploration

dc.contributor.advisorChengnian, Sun
dc.contributor.authorCheng, Yaxin
dc.date.accessioned2022-08-17T14:08:28Z
dc.date.available2022-08-17T14:08:28Z
dc.date.issued2022-08-17
dc.date.submitted2022-08-06
dc.description.abstractApe 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.en
dc.identifier.urihttp://hdl.handle.net/10012/18556
dc.language.isoenen
dc.pendingfalse
dc.publisherUniversity of Waterlooen
dc.subjectandroid gui testingen
dc.subjectautomated testingen
dc.subjectmodel-based testingen
dc.subjectstatic analysisen
dc.titleApe+: A Faster Ape with Static Model Guided Explorationen
dc.typeMaster Thesisen
uws-etd.degreeMaster of Mathematicsen
uws-etd.degree.departmentDavid R. Cheriton School of Computer Scienceen
uws-etd.degree.disciplineComputer Scienceen
uws-etd.degree.grantorUniversity of Waterlooen
uws-etd.embargo.terms0en
uws.contributor.advisorChengnian, Sun
uws.contributor.affiliation1Faculty of Mathematicsen
uws.peerReviewStatusUnrevieweden
uws.published.cityWaterlooen
uws.published.countryCanadaen
uws.published.provinceOntarioen
uws.scholarLevelGraduateen
uws.typeOfResourceTexten

Files

Original bundle

Now showing 1 - 1 of 1
Loading...
Thumbnail Image
Name:
Cheng_Yaxin.pdf
Size:
998.51 KB
Format:
Adobe Portable Document Format
Description:

License bundle

Now showing 1 - 1 of 1
No Thumbnail Available
Name:
license.txt
Size:
6.4 KB
Format:
Item-specific license agreed upon to submission
Description: