Generative Testing Component Systems with clojure.spec


Clojure.spec provides tooling around clojure/test.check, which provides function inputs for use in generative/property-based tests. In the simplest case, we generate inputs and specify properties of outputs relative those inputs. But what happens when we want to test a function of a component that depends on other components, each of which may each behave in any number of ways?

In this talk, we’ll provide one answer to that question, along with discussion of other generative testing topics.


David Chelimsky (Cognitect)
David has been designing and developing software systems for 20 years, the last 5 with Cognitect. He cut his teeth on Clojure in the financial sector, and has since threaded through e-commerce, supply chain, health care, taxes, and libraries supporting transit, transducers (ruby), and AWS APIs.
When he’s not busy thinking about better ways to write software, David can be found playing choro and samba on his cavaquinho.