Property-based tests are a welcome addition to the example-based tests we've known and used for many years. They show us how we can combine data generation with a bit of analysis to both remove duplication from tests and find cases we hadn't considered.
Property-based tests are enabled by data generators that are very easy to implement using pure functions. Things will become even easier with lazy evaluation coming in C++ 20 or with the ranges library.
But the core technique in property-based testing is to identify the properties. We've seen two ways to do that—the first by analyzing the examples, and the second by writing the example-based tests, removing duplication to turn them into data-driven tests, and then replacing the rows of data with properties.
Finally, remember that property-based tests are code, and they need to be very clean, easy to...