Discussion
Search code, repositories, users, issues, pull requests...
owickstrom: Author here, happy to answer questions about Bombadil! :)
owickstrom: btw, some background on the project: https://wickstrom.tech/2026-01-28-there-and-back-again-from-...
warpspin: I especially like that it's a single executable according to the docs.Recently evaluated other testing tools/frameworks and if you're not already running the npm-dependencyhell-shitshow for your projects, most tools will pull in at least 100 dependencies.I might be old fashioned but that's just too much for my taste. I love single-use tools with limited scope like e.g. esbuild or now this.Will give this a try, soon.
orliesaurus: Bombadillo CrocodilloOk I will see myself out(Yes I know it's actually from the Tolkien book)
thibran: I'm doing propety-based test since years for frontend stuff. The hardest part is, that there is so much between the test inputs and the application under test, that I find 50% of the time problems with the frontend test frameworks/libs and not in our code.
sequoia: Struggling to understand what this is or how it works.
NoraCodes: My kingdom for a way to stop this godforsaken industry from stripping Tolkien's fiction for parts.
eclectician: We can go strip Shakespeare instead.
IanCal: I'm a huge fan of property based testing, I've built some runners before, and I think it can be great for UI things too so very happy to see this coming around more.Something I couldn't see was how those examples actually work, there are no actions specified. Do they watch a user, default to randomly hitting the keyboard, neither and you need to specify some actions to take?What about rerunning things?Is there shrinking?edit - a suggestion for examples, have a basic UI hosted on a static page which is broken in a way the test can find. Like a thing with a button that triggers a notification and doesn't actually have a limit of 5 notifications.
danbruc: How effective is property based testing in practice? I would assume it has no trouble uncovering things like missing null checks or an inverted condition because you can cover edge cases like null, -1, 0, 1, 2^n - 1 with relatively few test cases and exhaustively test booleans. But beyond that, if I have a handful of integers, dates, or strings, then the state space is just enormous and it seems all but impossible to me that blindly trying random inputs will ever find any interesting input. If I have a condition like (state == "disallowed") or (limit == 4096) when it should have been 4095, what are the odds that a random input will ever pass this condition and test the code behind it?Microsoft had a remotely similar tool named Pex [1] but instead of randomly generating inputs, it instrumented the code to also enable executing the code symbolically and then used their Z3 theorem proofer to systematically find inputs to make all encountered conditions either true or false and with that incrementally explore all possible execution paths. If I remember correctly, it then generated a unit test for each discovered input with the corresponding output and you could then judge if the output is what you expected.[1] https://www.microsoft.com/en-us/research/publication/pex-whi...
skybrian: One thing you can find pretty quickly with just basic fuzzing on strings is Unicode-related bugs.
terpimost: Are you talking about user flows and multiple interactions that are happening and data exchange that PBT before that wasn't able to address?
jkestner: Let's start naming things after Iain Banks ships.
patapong: I am in support. In general he was really good with names I thought, they always had an otherwordly flair while being clear to pronounce. Skaffen-Amtiskaw, Anaplian, Elethiomel...
owickstrom: Interesting. What kind of properties are you checking?
thibran: I use quicktheories (Java) and generate a determistic random test scenario, then I generate input values and run the tests. This way I can create tests that should fail or succeed, but differ in the steps executed and in the order with "random input".
pythonaut_16: Makes me want to name a project or company Sauron in response.
chrisweekly: Yes!"Just Another Victim Of The Ambient Morality" is one of my favorites.
paulnpace: Bad actors use Tolkien. Good actors use Orwell.
micromacrofoot: Tom BombadilTom Bombadillolets stop with the Tolkien namesat least just a litto
picardo: For most static UI surfaces, I probably wouldn't use it, but I can see a use case in this for testing generative UI workloads.
owickstrom: Sure, server-side or client-side generated UIs tend to have a lot more interesting complexity to test. But I do want to bring up that with the specification language being TypeScript, you can validate some basic properties even for statically generated sites. I wrote a spell checker for Bombadil that uses https://github.com/wooorm/nspell and a custom dictionary and found a bunch of old typos on my own blog.