一句话:提出 ArchiDroid,用图卷积网络预测活动间缺失迁移,自动增强 Android 应用的 Activity 转换图。
Android 应用事件驱动,Activity Transition Graph (ATG) 是 GUI 建模的重要抽象;现有静态与动态分析构建的 ATG 覆盖率低、不完整。本文提出 ArchiDroid,联合建模 Activity 语义与 Activity 转换图结构,基于静态分析得到的种子 ATG,用图卷积网络预测活动间迁移以增强 ATG。评估显示,ArchiDroid 预测迁移达到 86% 精确率和 94% 召回率;在两项下游任务中,集成 ArchiDroid 的自动化 GUI 测试工具活动覆盖提高 43%,检测到多 208% 的缺陷,在真实应用辅助功能设计中缺失迁移预测准确率达 85%,访谈案例研究进一步证明其有效性。
Mobile apps are indispensable for people's daily life. With the increase of GUI functions, apps have become more complex and diverse. As the Android app is event-driven, Activity Transition Graph (ATG) becomes an important way of app abstract and graphical user interface (GUI) modeling. Although existing works provide static and dynamic analysis to build ATG for applications, the completeness of ATG obtained is poor due to the low coverage of these techniques. To tackle this challenge, we propose a novel approach, ArchiDroid, to automatically augment the ATG via graph convolution network. It models both the semantics of activities and the graph structure of activity transitions to predict the transition between activities based on the seed ATG extracted by static analysis. The evaluation demonstrates that ArchiDroid can achieve 86% precision and 94% recall in predicting the transition between activities for augmenting ATG. We further apply the augmented ATG in two downstream tasks, i.e., guidance in automated GUI testing and assistance in app function design. Results show that the automated GUI testing tool integrated with ArchiDroid achieves 43% more activity coverage and detects 208% more bugs. Besides, ArchiDroid can predict the missing transition with 85% accuracy in real-world apps for assisting the app function design, and an interview case study further demonstrates its usefulness.
@inproceedings{LiuCWSHHW23,
title = {Ex pede Herculem: Augmenting Activity Transition Graph for Apps via Graph Convolution Network},
author = {Zhe Liu and Chunyang Chen and Junjie Wang and Yuhui Su and Yuekai Huang and Jun Hu and Qing Wang},
booktitle = {ICSE},
year = {2023},
doi = {10.1109/icse48619.2023.00168}
}