Why Bombadil #
Or rather, why property-based testing? Because example-based testing, especially when browser testing, is costly and limited:
- Costly, because maintaining suites of Playwright or Cypress tests takes a lot of work. Even in the age of AI, tests written and updated by coding agents can easily break and require your attention.
- Limited, in that they only test very small parts of the state space; a bunch of happy cases, a set of regression tests, and maybe even some error handling cases that are important. But what about everything else — like all the stuff you or the agent didn’t think about testing?
This is where property-based testing, or fuzzing if you will, comes into play. By randomly and systematically searching the state space, Bombadil behaves in ways you didn’t think about testing for; unexpected sequences of actions, weird timings, strange inputs that you forgot could be entered.