Generation and Refinement of Testing Models
summary
Faktory is an Elixir library that generates executable Makina state-machine models from Corsa-annotated APIs, mapping each public function to a command and deriving argument generators from type specs. It captures contract postcondition failures, stores valid return values in an instances map, and uses random/opaque options to mix type-derived and previously returned values. That reduces precondition failures from ~90% to about 30% in examples (sorted lists, queues, ETS) and lets generated models be refined with Minina extensions; contracts currently can’t express inter-command relations.
AI-written summary · about
chapters (8)
- 0:00Testing models introduction
- 3:58Minina library improvements
- 9:23Model generation factory
- 14:22State reuse for data
- 20:29Opaque option for hard types
- 22:59Refining models with Minina
- 24:03Summary and future work
- 25:49Q&A
related talks
33mLets Generate Tests
16mSupercharge your Tests with Factories
14mVerify, but test: extracting property-based tests from F* specifications
47mManaging Testing Data
26mThe missing piece of testing
27mWrite Fewer Tests! From Automation to Autogeneration
23mProperty based testing is a mindset
38mLiving with Spec
