Property testing has risen to popularity in the past years due to its ability to find edge cases and other hard to reproduce bugs. But for programmers new to property testing it can be difficult to see how to use property tests to exercise entire systems.
In this paper we'll look at a real world use case for property tests and examine the tools and techniques used by the authors to find and reliably reproduce race conditions in a concurrent, distributed system.
Chris is a software engineer building services and applications for Le Tote. Although he started out writing C for embedded systems, these days he spends his time in Elixir, Haskell, Elm, and Rust. When not writing code for work, Chris can be found writing code for fun, talking about the joys of functional programming, playing pinball, roasting coffee, or building lego with his kids.
Link to Paper (http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.724.3518&rep=rep1&type=pdf)