Hands on: Property Based Testing


Details
On the next meetup we are happy to welcome our guest Jan Stępień who is going to show us property-based testing and how to test stateful systems. In doing so we are learning techniques of property based testing and deepen knowledge about it in some practical exercises. Therefore, it is quite useful if you bring your own laptop with Clojure / Leiningen installed. We also advise you to install a suitable editor to directly get it started. There are also several plugins available for many popular editors. So pick the one you like and join our meetup!
The discussion-language of this meetup is dependent on the participants, so we can vary between English or German.
And now a short description about the upcoming evening:
Property-based testing changes the way you look at your test suites. Instead of specifying test cases one after another, this advanced testing technique enables you to use logic to automatically generate a stream of inputs. The ecosystem of Clojure libraries offers us excellent tools to introduce property-based testing into our projects. Let's try to uncover their strengths together in this hands-on session.
We will discuss how property-based testing compares to traditional testing methods and understand its principles based on simple examples. In order to bust the myth of the inapplicability of property-based testing in a real-world setting we'll bring up some use cases from industry. We'll formulate properties allowing us to test more complex, stateful systems. Finally, we'll wander into the world of concurrency and the automation of race condition detection.
Bio of Jan:
Jan is a senior consultant at INNOQ, where he works with people and with computers. He's based in Berlin but you can run into him in other parts of the country too. Jan enjoys community events, where he often discusses functional programming, architecture, and testing. He used to organise the Munich Clojure Meetup; swing by if you're in town, we're a really friendly bunch.

Hands on: Property Based Testing