论文标题

数据丢失检测器:自动揭示Android应用中的数据丢失错误

Data Loss Detector: Automatically Revealing Data Loss Bugs in Android Apps

论文作者

Riganelli, Oliviero, Mottadelli, Simone Paolo, Rota, Claudio, Micucci, Daniela, Mariani, Leonardo

论文摘要

即使Android应用程序被外部事件中断了其执行,也必须正常工作。例如,即使接到了电话,或者由于智能手机已旋转而重新编辑后,应用程序也必须正常工作。由于这些事件可能需要销毁,因此当执行中断并重新创建执行时,该应用程序的前景活动是防止国家信息丢失的唯一方法是节省和恢复。该行为必须由应用程序开发人员明确实施,他们通常会错过适当地实施的行为,从而释放受数据损失问题影响的应用程序,即,在中断执行时可能会丢失状态信息的应用程序。尽管可以使用几种技术来自动为Android应用程序生成测试用例,但所获得的测试用例很少包括相互作用和锻炼和揭示数据损失故障所需的检查。为了解决这个问题,本文介绍了数据损失检测器(DLD),该技术案例生成技术,该技术集成了探索策略,数据销售措施和两种定制的Oracle策略,以检测数据损失故障。 DLD能够在54个Android App释放的基准中揭示75%的故障,受110个已知数据丢失故障影响。 DLD还揭示了未知的数据丢失问题,表现优于竞争方法。

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 saving and restoring 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 has been able to reveal 75% of the faults in a benchmark of 54 Android app releases affected by 110 known data loss faults. DLD also revealed unknown data loss problems, outperforming competing approaches.

扫码加入交流群

加入微信交流群

微信交流群二维码

扫码加入学术交流群,获取更多资源