paperbot · PL 论文追踪

全部论文 待读 收藏

P2 Co-dependence Aware Fuzzing for Dataflow-Based Big Data Analytics

面向基于数据流的大数据分析的协同依赖感知模糊测试
FSE Proceedings of the 31st ACM Joint European Software Engineering Conference and Symposium on the Foundations of Software Engineering2023匹配度 3/10 · 论文属于程序分析与测试领域,关注大数据数据流应用的模糊测试,但并未涉及用户核心研究方向(LLM/Agent 与静态分析/形式化验证的交叉、浮点程序分析、贝叶斯程序分析)。其研究目标与用户画像中的 PL→AI 或 AI→PL 问题无直接关联。引用 4 inbox
Ahmad Humayun, Miryung Kim, Muhammad Ali Gulzar
crossref: 2026-09-12dblp: 2026-09-12

AI 速览

一句话:提出 DepFuzz,通过跟踪多数据集行/列间协同依赖并联合变异,提升数据流大数据应用模糊测试效率。

数据密集型可扩展计算中,Spark/Hadoop 等数据流应用使用 UDF 处理多数据集,测试困难:输入多样、无显式 schema、运行时解析,且 join/groupByKey 等算子还使不同数据集字段间产生隐式协同依赖。DepFuzz 跟踪代码段操作哪些数据集、行与列,并结合数据流算子语义与 UDF 语义,定位协同依赖区域并联合生成/变异测试数据,以覆盖难达代码区域。在真实大数据应用中,它比 Java 字节码商业模糊器 Jazzer 多发现 3.4 倍故障,半数时间内语句覆盖率提高 29%,并优于先前 DISC 测试方法,能暴露更深的语义故障而非简单格式错误。

问题
数据流大数据分析应用需处理多输入数据集,缺乏显式 schema 且运行时解析;join 等算子使多数据集字段间形成隐式协同依赖,导致测试难生成有效输入并覆盖深层逻辑。
方法
DepFuzz 跟踪代码段与数据集、行、列的对应关系,分析 dataflow 算子(join、groupByKey)与 UDF 语义,识别协同依赖区域并联合编排输入变异,以生成可达难达区域的测试数据。
评估
在真实大数据应用中与 Jazzer 和先前 DISC 测试方法对比,报告故障发现数、语句覆盖率与耗时;结果多发现 3.4 倍故障、覆盖率提升 29% 且耗时减半。
原文摘要(Abstract)

Data-intensive scalable computing has become popular due to the increasing demands of analyzing big data. For example, Apache Spark and Hadoop allow developers to write dataflow-based applications with user-defined functions to process data with custom logic. Testing such applications is difficult. (1) These applications often take multiple datasets as input. (2) Unlike in SQL, there is no explicit schema for these datasets and each unstructured (or semi-structured) dataset is segmented and parsed at runtime. (3) Dataflow operators (e.g., join) create implicit co-dependence constraints between the fields of multiple datasets. An efficient and effective testing technique must analyze co-dependence among different regions of multiple datasets at the level of rows and columns and orchestrate input mutations jointly on co-dependent regions. We propose DepFuzz to increase the effectiveness and efficiency of fuzz testing dataflow-based big data applications. The key insight behind DepFuzz is twofold. It keeps track of which code segments operate on which datasets, which rows, and which columns. By analyzing the use of dataflow operators (e.g., join and groupByKey) in tandem with the semantics of UDFs, DepFuzz generates test data that subsequently reach hard-to-reach regions of the application code. In real-world big data applications, DepFuzz finds 3.4× more faults, achieving 29% more statement coverage in half the time as Jazzer’s, a state-of-the-art commercial fuzzer for Java bytecode. It outperforms prior DISC testing by exposing deeper semantic faults beyond simpler input formatting errors, especially when multiple datasets have complex interactions through dataflow operators.

链接与引用

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

BibTeX
@inproceedings{HumayunKG23,
  title = {Co-dependence Aware Fuzzing for Dataflow-Based Big Data Analytics},
  author = {Ahmad Humayun and Miryung Kim and Muhammad Ali Gulzar},
  booktitle = {FSE},
  year = {2023},
  doi = {10.1145/3611643.3616298}
}