Traditional unit or example-based tests are a useful tool for developing confidence in correctness. Trouble is, they require linear effort to increase this confidence -- it takes twice as long to write eight tests as it does four. Furthermore, example-based tests are limited by their authors imagination.
Property-based testing takes a different approach: tests are written as properties that should hold true for an entire domain of randomly-generated input. The number of test-cases generated are limited only by your compute-resources and patience. In this talk, we'll take a look at the principles of property-based testing, as well as some pragmatic examples.