Applying Spec-based generative testing to a transformation pipeline - tips and lessons learned

I have written about our lessons-learned from Spec-based generative testing and would very much appreciate feedback (and perhaps other tips for such testing):

Having the computer generate tests for you, trying tens of devious inputs you would never have thought of, is awesome. There is however far less experience with and knowledge of generative (a.k.a property-based) testing so I would like to share what we have learned and what worked for us when testing an important data transformation pipeline. We mostly leveraged our existing Clojure Spec data specifications to generate the tests, while regularly reaching down to clojure.test.check to create custom generators and for low-level control.
(read the rest…)

3 Likes

Hello!

Thanks for the writeup.

Quick question: Are you using defn-spec by @danielcompton in your first example?

Teodor

This is a really interesting write-up. I definitely learned something from it, in particular your ideas on tooling. Thanks!

1 Like