paperbot · PL 论文追踪

全部论文 待读 收藏

P2 Data loss detector: automatically revealing data loss bugs in Android apps

数据丢失检测器:自动揭示 Android 应用中的数据丢失缺陷
ISSTA Proceedings of the 29th ACM SIGSOFT International Symposium on Software Testing and Analysis2020匹配度 1/10 · 该论文研究 Android 应用数据丢失缺陷的动态测试用例生成,属于移动应用测试领域;用户关注静态分析、形式化验证、浮点/贝叶斯程序分析及其与 LLM/Agent 的交叉,二者方向不同,无直接关联。引用 29 inbox
Oliviero Riganelli, Simone Paolo Mottadelli, Claudio Rota, Daniela Micucci, Leonardo Mariani
crossref: 2026-09-12

AI 速览

一句话:提出 DLD,一种集成探索策略、数据丢失触发动作与定制预言机的 Android 测试用例生成技术,自动暴露状态丢失缺陷。

Android 应用在执行被外部事件中断时,前台 Activity 可能被销毁并在恢复时重建,开发者必须显式保存和恢复状态,否则会造成数据丢失缺陷。现有自动测试生成技术很少包含触发和检查此类故障所需的交互与断言。本文提出 Data Loss Detector(DLD),将探索策略、数据丢失揭示动作以及两种定制 oracle 策略整合到测试用例生成中,以自动检测数据丢失失败。作者在包含 54 个受 110 个已知数据丢失故障影响的 Android 应用版本基准上评估 DLD,结果显示其揭示了 75% 的已知故障,并能发现未知的数据丢失问题,且优于对比方法。

问题
Android 应用在外部事件导致 Activity 销毁重建时可能丢失状态信息,而现有测试生成技术难以触发并检测这类数据丢失故障。
方法
DLD 将探索策略、数据丢失揭示动作和两种定制 oracle 策略集成到 Android 测试用例生成中,以自动生成能够暴露数据丢失失败的测试。
评估
在 54 个受 110 个已知数据丢失故障影响的 Android 应用版本基准上评估,DLD 检出 75% 的已知故障,发现未知数据丢失问题,并优于竞争方法。
原文摘要(Abstract)

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.

链接与引用

DOI 原文 · PDF(开放获取) ·

BibTeX
@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}
}