一句话:提出 GoalExplorer,通过静态屏幕转移图指导动态探索,自动生成直接触发 Android 应用目标功能的可执行测试脚本。
在安全审计等场景中,用户需要动态触发应用中的特定功能,例如检查敏感信息是否仅发往已识别的第三方服务器。由于审计者可能需检查成百上千个应用,手动探索不可行;现有自动化探索与测试技术侧重系统性地探索路径以发现故障,而非快速到达目标功能,因而帮助有限。本文提出 GoalExplorer:先静态建模应用的 UI 屏幕及其转移,构建屏幕转移图(STG),再以 STG 指导动态探索,自动生成可直接触发目标(Android activity、API 调用或程序语句)的可执行测试脚本。在 93 个基准应用和 95 个最流行的 GooglePlay 应用上的评估表明,STG 的准确性显著优于其他 Android UI 模型,且 GoalExplorer 触发目标功能的速度远快于现有探索技术。
This paper proposes a solution for automated goal-driven exploration of Android applications - a scenario in which a user, e.g., a security auditor, needs to dynamically trigger the functionality of interest in an application, e.g., to check whether user-sensitive info is only sent to recognized third-party servers. As the auditor might need to check hundreds or even thousands of apps, manually exploring each app to trigger the desired behavior is too time-consuming to be feasible. Existing automated application exploration and testing techniques are of limited help in this scenario as well, as their goal is mostly to identify faults by systematically exploring different app paths, rather than swiftly navigating to the target functionality. The goal-driven application exploration approach proposed in this paper, called GoalExplorer, automatically generates an executable test script that directly triggers the functionality of interest. The core idea behind GoalExplorer is to first statically model the application's UI screens and transitions between these screens, producing a Screen Transition Graph (STG). Then, GoalExplorer uses the STG to guide the dynamic exploration of the application to the particular target of interest: an Android activity, API call, or a program statement. The results of our empirical evaluation on 93 benchmark applications and the 95 most popular GooglePlay applications show that the STG is substantially more accurate than other Android UI models and that GoalExplorer is able to trigger a target functionality much faster than existing application exploration techniques.