
JasperFx released Bobcat 1.0 yesterday, our new MIT license tool for:
- “Executable Specifications”, but this time we’re focused strictly on being able to “project” human readable specifications for easy review with domain experts or us developers from the testing tools we already use, including xUnit.net, TUnit, MSTest, and NUnit. No Gherkin, markdown, or wiki text that gets magically mapped to code. Just C# or F#.
- Okay, a little bit of markdown tables within the tests to for declarative table-centric testing that I’ve always found very valuable — but at least this time the source generators in Bobcat can verify the syntax at compile time!
- Improved test automation with the kind of infrastructure heavy integration tests that are rife with flakiness and long testing times through its Supervisor library. See Introducing the Bobcat Supervisor for Reliable .NET Integration Suites for more about this.
- Spec Driven Development within the Critter Stack’s overarching Event Modeling strategy, and some of the Critter Stack’s new application scaffolding from Event Models landed in Bobcat just because that’s what deals with specifications
For the dozen of you out there who remember my previous Storyteller tool, Bobcat is the spiritual successor that tries to incorporate the elements of Storyteller that were very effective (especially for data intensive testing where Gherkin isn’t a great fit in my opinion), but ditch the elements of Storyteller that made it clumsy to use and to ultimately fail.
And of course, this is the era of AI assisted development so there absolutely has to be an AI hook! One of the lessons that Bobcat took from Storyteller was the ability to embed and report on application telemetry and instrumentation as part of reporting test failures for easier test failure debugging — and folks, there will be test failures and bigger tests involving asynchronous behavior can be nasty to debug. As an example, the Bobcat integration package for Wolverine message handlers “knows” how to write telemetry about all the messaging behavior including failures, retries, dead letter queues, scheduled messages, outgoing messages, and exceptions that happened during the execution to console output in a way that’s optimized for AI agent consumption. The hope here is that this makes it easy for AI agents to quickly cycle between test failures and fixes by giving the AI agents exactly the information they need to complete their tasks.
We have also updated the JasperFx AI Skills pack for Bobcat usage, including skills to help trouble shoot specifications, to run specifications in “watch” mode for faster cycles, and to utilize the supervisor functionality for more robust and optimized CI builds.
Lastly, and this is a little weird for me to consider, but Bobcat is going to be the very last OSS project that I ever started before the advent of AI assisted development. There wasn’t much there, but Bobcat at its core does use some of the earliest code I wrote when I was just piddling around with this in odd moments and the original vision for Bobcat comes from over a decade of me thinking and talking to others about what a Storyteller replacement could look like.
Anyway, check it out and let us know about any feedback you have on the Critter Stack Discord server. There’s already a bobcat room open.
Why is it called Bobcat?
Because I think that bobcats are cool? I picked the codename years ago before we’d adopted the current “Critter Stack” Mustilidae naming scheme, but it took awhile to get around to making it real.
