Fuzzing Your GUI for Property Perfection with Bombadil (Antithesis live demo)
Table of Contents
1. Logistics
- Event
- Fuzzing your GUI for property perfection with Bombadil, Antithesis live product demo
- When
- Thursday, 2026-11-12, 12:00 ET (9:00 PT), 45 minutes
- Where
- online; recording offered to registrants
- Speakers
- Adrian Hatch (Solutions Engineer, Antithesis); Somtochi Onyekwere (Staff Software Engineer, Fly.io)
- Link
- Event page
2. Abstract
Bombadil is an open-source tool that fuzzes web apps and terminal UIs with random inputs and checks each state against properties: built-in ones (no uncaught exceptions, no leaked resources) and ones you write from the application's business rules. It can also run inside Antithesis's deterministic environment, which adds parallel search.
The page lists three things to take away:
- getting a web app under test in a few minutes;
- turning business logic and requirements into a property spec;
- using Bombadil inside Antithesis to reach a rare win in the tile-sliding game 2048 through random actions.
3. What we already run
- Bombadil 0.7.10 (browser) drives the lab's three shops in bombadil-lab-001: petstr, eventstr and bestiary, with page laws over the dataLayer and server invariants relayed through an oracle. Experiment 020 added request ids and the store seq through the page and planted four faults in that tracing; each was caught by its predicted law in every hourly run on 2026-11-11 and 2026-11-12. See Harness first.
- The same release ships
bombadil terminal(marked experimental): it runs a program in a PTY, exposes the screen grid, cursor and exit status toextract, and acts withTypeText,ClickandResize. On 2026-11-12, 2048-cli 0.9.1 (fromjwalsh/2048-cli-debug) ran under it with the default specification: 2,280 states in 20 s (113.6 samples/s), no violations. The default actions are random text, mostly\rand\t, so the game reached a score of 68; reaching a win needs a specification that weights the arrow keys and parses the board.
4. Questions to bring
- How the 2048 win was reached: the action weights, how the board was extracted from the screen, and how long Antithesis's search took compared with a single local run.
- Whether terminal mode is headed for the same API as the browser (
reach-style antecedents,eventually(...).within), and what "experimental" covers. - Determinism: in Antithesis the run is reproducible; locally
--reproduceis best-effort. What diverges?
5. Notes
- Adrian Hatch mentioned Antithesis's earlier webinar with Hillel Wayne, now on demand: Property-Based Testing for Web Applications.