Title
BloomUnit: declarative testing for distributed programs
Abstract
We present BloomUnit, a testing framework for distributed programs written in the Bloom language. BloomUnit allows developers to write declarative test specifications that describe the input/output behavior of a software module. Test specifications are expressed as Bloom queries over (distributed) execution traces of the program under test. To allow execution traces to be produced automatically, BloomUnit synthesizes program inputs that satisfy user-provided constraints. For a given input, BloomUnit systematically explores the space of possible network message reorderings. BloomUnit searches this space efficiently by exploiting program semantics to ignore "uninteresting" message schedules. We illustrate the utility of BloomUnit by demonstrating an incremental process by which a programmer might provide and refine a set of queries and constraints until they define a rich set of correctness tests for a distributed system.
Year
DOI
Venue
2012
10.1145/2304510.2304512
DBTest
Keywords
Field
DocType
test specification,program semantics,bloomunit systematically,bloom language,execution trace,declarative testing,correctness test,bloomunit synthesizes program input,message schedule,bloom query,declarative test specification,satisfiability,distributed systems,unit testing,bloom,distributed system,input output
Software modules,Programmer,Programming language,Computer science,Unit testing,Correctness,Schedule,Semantics
Conference
Citations 
PageRank 
References 
9
0.57
12
Authors
5
Name
Order
Citations
PageRank
Peter Alvaro146328.96
Andrew Hutchinson290.91
Neil Conway345821.46
William R. Marczak427412.55
Joseph M. Hellerstein5140931651.14