Ensuring high quality "bug-free" software using handcrafted test inputs and scenarios is a tedious and error-prone process. Even if high code coverage and coverage of all possible corner cases would be achieved, the test code base tends to be huge, making it a very hard and laborous task to maintain under changing requirements and new use cases. Property-based testing might save you!
In a nutshell, property-based testing is an approach that allows you to describe properties of your algorithms and let a framework generate the test cases for you!
Contents of the talk:
* introduction into the general concept of property-based testing
* when and how to use property-based testing (almost always ;-))
* some hello world examples
* introduction into test data generators
* generator real-world examples
* [introduction into shrinkers] (optional)
* advanced topics
* caveats / drawbacks of applying property-based testing
* fixed seeds for reproducibility of failed tests
Depending on the audience we can do the talk in German or English. Code examples will be using the Scala programming language (no previous experience required) but the general technique of property-based testing is applicable for and available as libraries for many programming languages.