一句话:提出 DLD,一种集成探索策略、数据丢失触发动作与定制预言机的 Android 测试用例生成技术,自动暴露状态丢失缺陷。
Android 应用在执行被外部事件中断时,前台 Activity 可能被销毁并在恢复时重建,开发者必须显式保存和恢复状态,否则会造成数据丢失缺陷。现有自动测试生成技术很少包含触发和检查此类故障所需的交互与断言。本文提出 Data Loss Detector(DLD),将探索策略、数据丢失揭示动作以及两种定制 oracle 策略整合到测试用例生成中,以自动检测数据丢失失败。作者在包含 54 个受 110 个已知数据丢失故障影响的 Android 应用版本基准上评估 DLD,结果显示其揭示了 75% 的已知故障,并能发现未知的数据丢失问题,且优于对比方法。
Android apps must work correctly even if their execution is interrupted by external events. For instance, an app must work properly even if a phone call is received, or after its layout is redrawn because the smartphone has been rotated. Since these events may require destroying, when the execution is interrupted, and recreating, when the execution is resumed, the foreground activity of the app, the only way to prevent the loss of state information is to save and restore it. This behavior must be explicitly implemented by app developers, who often miss to implement it properly, releasing apps affected by data loss problems, that is, apps that may lose state information when their execution is interrupted. Although several techniques can be used to automatically generate test cases for Android apps, the obtained test cases seldom include the interactions and the checks necessary to exercise and reveal data loss faults. To address this problem, this paper presents Data Loss Detector (DLD), a test case generation technique that integrates an exploration strategy, data-loss-revealing actions, and two customized oracle strategies for the detection of data loss failures. DLD revealed 75% of the faults in a benchmark of 54 Android app releases affected by 110 known data loss faults, and also revealed unknown data loss problems, outperforming competing approaches.
@inproceedings{paperbot6074,
title = {Data loss detector: automatically revealing data loss bugs in Android apps},
author = {Oliviero Riganelli and Simone Paolo Mottadelli and Claudio Rota and Daniela Micucci and Leonardo Mariani},
booktitle = {ISSTA},
year = {2020},
doi = {10.1145/3395363.3397379}
}