Makina: A New QuickCheck State Machine Library
summary
Makina is an Elixir library that reimplements QuickCheck-style state machines as macros and claims earlier error detection, less boilerplate and easier reuse. It exposes defstate/defcommand/use macros, uses maps for arguments and symbolic state to catch ordering errors at compile time, and supports an implemented_by redirect to wire calls to the system under test. Two composition mechanisms — model extension and parallel composition — merge states, commands and postconditions. Library is experimental and reports type-generation and composition-semantics issues that still require fixes.
AI-written summary · about
chapters (11)
- 0:00Intro
- 0:25Introduction to Property Based Testing
- 3:07A simple stateful program
- 4:04Property-Based Testing of stateful programs
- 5:33Previous state machines: Callback function style
- 8:50Making a new state machine DSL
- 10:29Makina state machines
- 12:29Model extension and composition
- 13:17Model extension in
- 15:14Parallel composition of models (8)
- 17:26Conclusions and Further Work
