A PropEr Tutorial on Property-Based Testing
Property-based testing is a novel approach to software testing, where the tester needs only specify the generic structure of valid inputs for the program under test, plus certain properties that the program is expected to satisfy for every valid input. PropEr is an open-source tool for property-based testing in Erlang. One of its salient features is that it provides a tight integration of the language of types and specs of Erlang with property-based testing. Any type can be used as a generator and any function specification can be directly used as a simple property of a function. In addition, PropEr comes with components for testing stateful applications and for targeted property-based testing.
This hands-on tutorial will introduce through examples the support that PropEr provides for property-based testing in Erlang, present representative examples of its use, and will give advice for the proper use of the tool.
Outline/structure of the Session
Introduction to Property-Based Testing and its difference(s) from Unit Testing.
The PropEr tool and its Language.
Stateless Property-Based Testing and writing custom generators.
Integration with the type language of Erlang.
Stateful Property-Based Testing.
Learn you some PropEr for greater good!
Developers and Test Engineers
This is a hands-on workshop. Please bring your laptop with Erlang/OTP (release 20.x) installed on it.
Also, it may be good to have PropEr already installed on it, although we will help you install it if you have not done it previously (but please git clone the PropEr GitHub repository, so as to avoid possible internet problems.