一句话:提出深度状态差分分析,将“偏差行为即缺陷”预言机泛化到 Android 应用,自动检测非崩溃功能缺陷。
Android 应用的非崩溃功能缺陷会严重影响用户体验,常埋藏于稀有程序路径中,难以检测且后果严重。现有自动功能缺陷预言机很少,且多局限于有限缺陷类型。本文提出 deep-state differential analysis,将经典“bugs as deviant behaviors”思想作为通用自动测试预言机。方法基于两个观察:大量执行轨迹会到达 GUI 布局相似的内部状态,其中仅少数到达错误状态;在相似 GUI 布局上执行相同动作序列时,结果有限。为此,对终止于相似 GUI 布局的每组测试输入,追加相同事件以显现可比应用行为,聚类并识别少数类为可能异常;同时通过输入校准平衡测试输入分布,以应对稀有缺陷。
Non-crashing functional bugs of Android apps can seriously affect user experience. Often buried in rare program paths, such bugs are difficult to detect but lead to severe consequences. Unfortunately, very few automatic functional bug oracles for Android apps exist, and they are all specific to limited types of bugs. In this paper, we introduce a novel technique named deep-state differential analysis, which brings the classical "bugs as deviant behaviors" oracle to Android apps as a generic automatic test oracle. Our oracle utilizes the observations on the execution of automatically generated test inputs that (1) there can be a large number of traces reaching internal app states with similar GUI layouts, and only a small portion of them would reach an erroneous app state, and (2) when performing the same sequence of actions on similar GUI layouts, the outcomes will be limited. Therefore, for each set of test inputs terminating at similar GUI layouts, we manifest comparable app behaviors by appending the same events to these inputs, cluster the manifested behaviors, and identify minorities as possible anomalies. We also calibrate the distribution of these test inputs by a novel input calibration procedure, to ensure the distribution of these test inputs is balanced with rare bug occurrences.
DOI 原文 ·
@inproceedings{paperbot6966,
title = {Detecting non-crashing functional bugs in Android apps via deep-state differential analysis},
author = {Jue Wang and Yanyan Jiang and Ting Su and Shaohua Li and Chang Xu and Jian Lu and Zhendong Su},
booktitle = {FSE},
year = {2022},
doi = {10.1145/3540250.3549170}
}