Property Base Your State Machine (Combo Talk)

location_city Melbourne schedule May 15th 12:15 - 12:45 PM AEST place Green Room people 114 Interested

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.


Learning Outcome

  • Gain a basic understanding of property-based state-machine testing
  • Have implemented several state-machine tests using the Haskell `hedgehog` testing library
  • Understand its importance as an extremely powerful testing tool
  • Be excited enough that they want to apply it to their own projects
  • Gain awareness that:
    • Haskell isn't the only language that has this capability
    • Even in Haskell, `hedgehog` isn't the only library that can do this

Target Audience

People wanting a hands-on introduction to using property-based state-machine testing

Prerequisites for Attendees

  • Intermediate Haskell knowledge is required.
  • Knowledge of property-based (but not state-machine) testing would be beneficial
schedule Submitted 3 years ago