Simulation Testing
summary
Simulation testing treats testing as a search for failing trajectories through state space, using controlled randomness to generate repeatable scripts and validate global properties after execution. It extends property-based testing to whole systems, records actions and internal state into an immutable store, and runs validations as queries. The demo uses Simulant with Datomic, sampling models (katum) and generators (test.check), builds a distributed runner and recorder, and in one case found bugs QA missed while tuning intensity with a clock multiplier.
AI-written summary · about
chapters (25)
- 0:00Intro
- 0:24classification
- 0:50example-based testing
- 2:15examples of examples
- 3:52weaknesses of examples
- 6:45property-based testing
- 8:29property example
- 10:21simulation testing
- 12:55what is testing?
- 13:38coverage
- 15:31Parts of Every Test
- 19:10model example
- 22:41generator example - actions
- 24:26generator example - agent
- 25:56simulation runner
- 26:54runner example - lifecycle
- 28:19action - example
- 30:24test record
- 31:06validations
- 33:50test reports
- 34:19advantages
- 34:59considerations
- 37:16Simulant provides
- 37:37conclusion
- 38:15Resources
related talks
27mUnderstanding Distributed Systems with Deterministic Simulation
26mSimulant in Anger
36mTesting Stateful and Concurrent Systems Using test.check
32mGenerative Testing: Properties, State and Beyond
43mCan you Test it
26mThe missing piece of testing
23mProperty based testing is a mindset
59m.NET Testing Techniques You Didn’t Know You Needed
