Join Newsletter

Property Base Your State Machine (Combo Talk)

YOW! Lambda Jam 2019

Types are great, but in most languages we use, they can't cover everything.
Testing tries to fill that gap. Property-based testing generates bizarre
examples and finds minimal reproductions that break your tests - a significant
improvement over writing test cases by hand. But what if you have a thorny
stateful system to test?

State Machine Testing extends property-based testing to randomly test stateful
systems. The actions performed against the system are modeled as commands, and
the usual property-based test machinery, generates test cases, and shrinks
failing tests to their minimal counter-examples.

In this talk we will provide a quick refresher (or crash-course) of
property-based testing, and then give an overview of 'property-based state
machine testing' and how it works. We'll then start a workshop where we begin
building up a state-machine test suite for a small imperative system.

Sean Chalmers

Functional Programming Engineer

Data61 / CSIRO


Likes riding motorcycles, crossfit, software that works, and writing documentation. Hates not having errors as values, not being able to use lenses, and writing bios. Also a closet game developer working, currently working on integrating WebGL and SVG with Functional Reactive Programming.

Jack Kelly

Functional Programming Software Engineer

Queensland FP Lab, Data61


Jack is a Haskell enthusiast, lapsed tall-ship sailor and recent addition to the Queensland FP Lab. He has tutored functional programming at universities and for industrial programmers, and loves seeing the lightbulb go on above people's heads. He became frustrated with how difficult it is to reason about imperative code in dynamic languages, decided that Haskell looked like a good tool to solve business problems and followed a path through Data61 to the QFPL's door.