Explore the intricacies of property-based testing in this comprehensive conference talk from Philly ETE 2017. Delve into the fundamentals of property-based testing, its implementation, and its inner workings using ScalaCheck as a primary example. Learn how to identify and test code properties and invariants to create more effective and engaging tests. Gain insights into the anatomy of generators, the importance of determinism, and the role of random-number generators in property-based testing. Discover advanced concepts such as maps, flatMaps, and lazy evaluation in the context of test generation. Examine real-world case studies, including examples from archery and Jawnspire, to understand the practical applications of property-based testing. By the end of this talk, acquire the knowledge necessary to start developing your own property-based testing framework and apply these concepts across various programming languages.
Functions and Determinism in Property-based Testing - Lecture 9