Published November 12, 2013
| Version v1
Conference paper
Open
SEDGE: Symbolic Example Data Generation for Dataflow Programs
Authors/Creators
- 1. University of Massachusetts, Amherst
- 2. JOHANN WOLFGANG GOETHE UNIVERSITAET FRANKFURT AM MAIN
- 3. NATIONAL AND KAPODISTRIAN UNIVERSITY OF ATHENS
- 4. THE UNIVERSITY OF TEXAS SYSTEM
Description
Exhaustive, automatic testing of dataflow (esp. map-
reduce) programs has emerged as an important challenge. Past
work demonstrated effective ways to generate small example data
sets that exercise operators in the Pig platform, used to generate
Hadoop map-reduce programs. Although such prior techniques
attempt to cover all cases of operator use, in practice they often
fail. Our SEDGE system addresses these completeness problems:
for every dataflow operator, we produce data aiming to cover all
cases that arise in the dataflow program (e.g., both passing and
failing a filter). SEDGE relies on transforming the program into
symbolic constraints, and solving the constraints using a symbolic
reasoning engine (a powerful SMT solver), while using input data
as concrete aids in the solution process. The approach resembles
dynamic-symbolic (a.k.a. “concolic”) execution in a conventional
programming language, adapted to the unique features of the
dataflow domain.
In third-party benchmarks, SEDGE achieves higher coverage
than past techniques for 5 out of 20 PigMix benchmarks and 7
out of 11 SDSS benchmarks and (with equal coverage for the
rest of the benchmarks). We also show that our targeting of the
high-level dataflow language pays off: for complex programs,
state-of-the-art dynamic-symbolic execution at the level of the
generated map-reduce code (instead of the original dataflow
program) requires many more test cases or achieves much lower
coverage than our approach.
Files
sedge-ase13.pdf
Files
(369.7 kB)
| Name | Size | Download all |
|---|---|---|
|
md5:409ad6245c8db2f380d2a358407cb45b
|
369.7 kB | Preview Download |