🤖 AI Summary
Traditional fuzzing struggles to effectively uncover semantic drift and optimization-related bugs in Data-Intensive Scalable Computing (DISC) systems. This work proposes DiscPBT, the first property-based testing framework tailored for Apache Spark, which systematically validates semantic correctness by defining eight reusable meta-properties and integrating workload skeleton generation, context-aware data synthesis, and compatibility-aware instantiation mechanisms for operators, expressions, and UDFs. Evaluated on PySpark, DiscPBT achieves a 1.2× improvement in branch coverage and a 1153× increase in execution plan diversity, successfully detecting cross-version semantic drift as well as boundary-case semantic defects involving NaN values and null inputs.
📝 Abstract
While fuzzing effectively catches crashes, its shallow oracles often miss semantic drifts and optimization-related errors in data-intensive scalable computing (DISC) frameworks. Property-based testing (PBT) addresses this limitation by checking general semantic invariants across diverse workloads and inputs, rather than relying on specific expected outputs. However, systematically operationalizing PBT for DISC systems remains difficult because it requires both reusable property definitions and effective instantiation into valid workloads and data.
We present DiscPBT, a property-based testing engine for Apache Spark. DiscPBT introduces eight reusable meta-properties for DISC semantic testing, spanning equivalence rewriting, data decomposition, computation decomposition, and operator-local semantic relations. To operationalize these meta-properties, DiscPBT provides reusable generators for synthesizing valid workload skeletons and input data, together with an instantiation framework that realizes each meta-property in schema-compatible contexts through compatible operators, expressions, and UDFs.
Our evaluation on PySpark shows that DiscPBT achieves 1.2$\times$ higher branch coverage and 1153$\times$ greater plan diversity than CometFuzz. Across 66 concrete properties, DiscPBT reveals cross-version semantic drift as well as subtle corner-case pitfalls involving NaN and empty inputs, that are not captured by crash-based fuzzing alone. These results demonstrate the value of systematic PBT for uncovering semantic issues in DISC frameworks.