paperbot · PL 论文追踪

全部论文 待读 收藏

P2 Property-Based Fuzzing for Finding Data Manipulation Errors in Android Apps

基于属性的模糊测试用于发现 Android 应用中的数据操纵错误
FSE Proceedings of the 31st ACM Joint European Software Engineering Conference and Symposium on the Foundations of Software Engineering2023匹配度 2/10 · 该论文属于Android应用动态模糊测试与属性测试,目标是发现数据操纵错误,虽涉及程序分析与缺陷检测,但与用户核心关注的静态分析、LLM/Agent交叉、浮点程序分析及贝叶斯程序分析均无直接关系。引用 20 inbox
Jingling Sun, Ting Su, Jiayi Jiang, Jue Wang, Geguang Pu, Zhendong Su
crossref: 2026-09-12dblp: 2026-09-12

AI 速览

一句话:提出基于属性的模糊测试方法并实现 PBFDroid,用于自动发现 Android 应用中的数据操纵错误。

Android 应用广泛包含数据操纵功能(DMF),用于对应用数据执行 CRUD 操作,但相关数据操纵错误(DME)尤其是非崩溃逻辑错误难以发现。本文提出基于属性的模糊测试方法:针对某类数据,随机交错执行相关 DMF 与其他事件以探索多样应用状态;将 DMF 建模为数据模型属性,并利用数据模型与 UI 布局的一致性进行属性检查,属性由人工按应用特性指定。作者实现自动化 GUI 测试工具 PBFDroid,在 20 个真实应用中测试,发现 30 个未知缺陷,其中 29 个为 DME(22 个非崩溃逻辑错误、7 个崩溃),19 个已确认、9 个已修复。现有技术无法发现全部 22 个非崩溃 DME;用户研究显示属性指定成本可接受,且给定准确属性时方法可无误报发现 DME。

问题
Android 应用中数据操纵功能(DMF)的正确性至关重要,但相关数据操纵错误(DME),尤其是非崩溃逻辑错误普遍且难以发现。
方法
提出基于属性的模糊测试:随机交错 DMF 与其他事件探索状态,以数据模型属性刻画 DMF,并借助数据模型与 UI 布局一致性检查属性;实现 PBFDroid。
评估
在 20 个真实 Android 应用上评估,发现 30 个未知缺陷,其中 29 个为 DME(22 个非崩溃逻辑错误、7 个崩溃),19 个确认、9 个修复;现有技术未能发现 22 个非崩溃 DME,用户研究显示属性指定成本可接受。
原文摘要(Abstract)

Like many software applications, data manipulation functionalities( DMFs ) are prevalent in Android apps, which perform the common CRUD operations (create, read, update, delete) to handle app-specific data. Thus, ensuring the correctness of these DMFs is fundamentally important for many core app functionalities. However, the bugs related to DMFs (named as data manipulation errors, DMEs ), especially those non-crashing logic ones, are prevalent but difficult to find. To this end, inspired by property-based testing, we introduce a property-based fuzzing approach to effectively finding DMEs in Android apps. Our key idea is that, given some type of app data of interest, we randomly interleave its relevant DMFs and other possible events to explore diverse app states for thorough validation. Specifically, our approach characterizes DMFs in (data) model-based properties and leverage the consistency between the data model and the UI layouts as the handler to do property checking. The properties of DMFs are specified by human according to specific app features. To support the application of our approach, we implemented an automated GUI testing tool, PBFDroid. We evaluated PBFDroid on 20 real-world Android apps, and successfully found 30 unique and previously unknown bugs in 18 apps. Out of the 30 bugs, 29 of which are DMEs (22 are non-crashing logic bugs, and 7 are crash ones). To date, 19 have been confirmed and 9 have already been fixed. Many of these bugs are non-trivial and lead to different types of app failures. Our further evaluation confirms that none of the 22 non-crashing DMEs can be found by the state-of-the-art techniques. In addition, a user study shows that the manual cost of specifying the DMF properties with the assistance of our tool is acceptable. Overall, given accurate DMF properties, our approach can automatically find DMEs without any false positives. We have made all the artifacts publicly available at:https:// github.com/ property-based-fuzzing/ home.

链接与引用

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

BibTeX
@inproceedings{Sun0JWP023,
  title = {Property-Based Fuzzing for Finding Data Manipulation Errors in Android Apps},
  author = {Jingling Sun and Ting Su and Jiayi Jiang and Jue Wang and Geguang Pu and Zhendong Su},
  booktitle = {FSE},
  year = {2023},
  doi = {10.1145/3611643.3616286}
}