Testing properties of weakly consistent programs with Repliss

Repliss is a tool for the verification of programs which are built on top of weakly consistent databases. As one part of Repliss, we have built an automated, property based testing engine. It explores executions of a given application with randomized invocations and scheduling while checking for invariant violations. When an invariant is broken, Repliss minimizes the execution and displays a visualization of the minimized failing execution. Our contributions are 1. heuristics used to quickly find invariant violations, 2. a strategy to shrink executions, and 3. integrating a testing approach with the overall Repliss tool.