Discovering edge cases with property-based testing.

Presented by Svetlana Filimonova
Tuesday 1:20 p.m.–2:05 p.m.
Target audience: Developer


Property-based testing is a popular concept in the world of functional programming. QuickCheck in Haskell is an iconic framework supporting this testing approach. Today we can find testing libraries supporting PBT in any main-stream languages, inlcuding Scala, JavaScript, Ruby, Python, Java etc.

Generated input is obviously constrained by the type of parameters accepted as an input for the code. However the range of this input covers large amount of edge cares, the cases you didn't even know existed in your application. Discovering these cases on early stages of your development process brings quite a big support for 'building quality in' instead of ensuring the quality after an application has been created. As any other automated tests, PBT tests are a part of your continuous integration pipeline, which gives quite a big coverage for regression testing as well. It provides essential feeling of confidence in changing the product as much as required.

In this talk I will present pbt concept and my experience of adopting it on a couple of projects I've been engaged too. I will give an introduction into this practice and some pros and cons, so hopefully it will give you a good idea on when and why would you want to use it.

Target Audience: testers/developers, people ensuring quality.

Presented by

Svetlana Filimonova

Svetlana is a Senior Software developer at ThoughtWorks. She has been enjoying writing code in many languages for over 10 years. Her favourite thing do it is to learn new or old mind-bending techs and talk about them with anyone who is willing to listen. She started to explore functional programming with Haskell and Scala a few years ago. It inspired her to promote the usage of functional programming in a traditional non-fp languages such as JavaScript, Java and Ruby. Svetlana has been involved in a number of community events in Sydney, running the workshops or mentoring, including Women Who Code, Rails Girls, ClojureBridge and Girls Programming Network.

©2016 Linux Australia and 2017. Linux is a registered trademark of Linus Torvalds. Site design by Takeflight. Image credits can be found on our Colophon.