Start here. This is the direct spoken answer to practice first.
Overview
Uses generated examples to test stable invariants while preserving readable examples and reproducible failures.
Property-based testing is useful when a behavior has a clear invariant across many inputs, such as round-trip serialization, ordering, normalization, or parser robustness. With Hypothesis I describe the input space and assert the property rather than hand-picking every example. When it finds a failure, it shrinks the input toward a simpler counterexample. I still keep named examples for important business cases.