Efficient Fuzz Testing for Apache Spark Using Framework Abstraction

by   Qian Zhang, et al.

The emerging data-intensive applications are increasingly dependent on data-intensive scalable computing (DISC) systems, such as Apache Spark, to process large data. Despite their popularity, DISC applications are hard to test. In recent years, fuzz testing has been remarkably successful; however, it is nontrivial to apply such traditional fuzzing to big data analytics directly because: (1) the long latency of DISC systems prohibits the applicability of fuzzing, and (2) conventional branch coverage is unlikely to identify application logic from the DISC framework implementation. We devise a novel fuzz testing tool called BigFuzz that automatically generates concrete data for an input Apache Spark program. The key essence of our approach is that we abstract the dataflow behavior of the DISC framework with executable specifications and we design schema-aware mutations based on common error types in DISC applications. Our experiments show that compared to random fuzzing, BigFuzz is able to speed up the fuzzing time by 1477X, improves application code coverage by 271 errors. The demonstration video of BigFuzz is available at https://www.youtube.com/watch?v=YvYQISILQHs feature=youtu.be.


On Testing of Data-Intensive Software Systems

Today's software systems like cyber-physical production systems or big d...

On Testing Data-Intensive Software Systems

Today's software systems like cyber-physical production systems or big d...

Toward Efficient In-memory Data Analytics on NUMA Systems

Data analytics systems commonly utilize in-memory query processing techn...

MaRe: Container-Based Parallel Computing with Data Locality

Application containers are emerging as key components in scientific proc...

FuzzingDriver: the Missing Dictionary to Increase Code Coverage in Fuzzers

We propose a tool, called FuzzingDriver, to generate dictionary tokens f...

FP4: Line-rate Greybox Fuzz Testing for P4 Switches

Compared to fixed-function switches, the flexibility of programmable swi...

COBRA: Compression via Abstraction of Provenance for Hypothetical Reasoning

Data analytics often involves hypothetical reasoning: repeatedly modifyi...