Wrapping Up

You now have all the tools you need to make the fanciest of all generators. You’re ready to make some that have a wide-spectrum approach to fuzz your systems, down to accurate ones to exercise specific invariants your code should respect. All of these methods can be mixed together. Nothing keeps you from using symbolic calls created through complex recursive generators that filter with ?SUCHTHAT and transform with ?LET, with some terms created probabilistically with a dynamic size.

Going overboard is not the best idea though. It’s not because you have a fancy set of hammers that you have to crush all the nails with them. We have strategies to come up with properties and to build generators, but you still need to find strategies to ...

Get Property-Based Testing with PropEr, Erlang, and Elixir now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.