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.
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.
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.