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.