Recent submissions

Comment · 10 days ago
Comment · 10 days ago
Author here. FizzBee is a model checker I’ve been building, with the goal of bringing formal methods to mainstream software engineering.

In this article, I take a requirements specification for a simple CRUD app, and show how writing the spec in a formal language helps catch requuirements conflicts as the product evolves.

Feedback welcome.

Comment · 23 days ago
I'll add a detailed article explaining the difference.
Comment · 23 days ago
Thanks. Just curious, have you tried building the app using the generated spec with any coding agents? This is something I am trying to work on next.
Comment · 23 days ago
The overlapping part of what FizzBee and Kiro is we formalize the requirements first and do formal analysis on them to identify various requirements issues.

However the technique is significantly different. Kiro's post says they use predicate logic. Whereas FizzBee uses Dynamic Logic. So, Kiro's approach cannot find many issues. Let us take the same example from the fizzbee blog. FizzBee found the issue as linked in the blog:

https://blog.fizzbee.ai/formal-analysis-in-requirements-spec...

But Kiro's approach would say, it is both consistent and complete. That is, R2 + R2b => R3 in this case.

-----

Another thing is testability. FizzBee's approach checks for testability without LLM deterministically. And it naturally produces extensive test cases, but with Kiro it doesn't. It needs more LLM use to convert them to test cases.

Comment · 23 days ago
The difference is accuracy, cost, time and more importantly consistency.

In case you noticed, a year ago, LLMs could not reliably count the number of 'R's in strawberry. Now they all do well. Guess how? Instead of training LLMs to do this, it was easier for them to write a small python script and run that. That solved the problem once and for all.

The same thing here, instead of just using LLMs and keep grilling repeatedly, there is a higher chance of getting a workable solution quickly. The best part about formal methods here is, it is self validating. It checks in seconds, what would have taken hours or even days with LLM only flow.

Comment · 1 year ago
Thanks a lot. It does handle concurrency.

https://fizzbee.io/testing/tutorials/quick-start/#parallel-t...

Sequential logic is generally easier to test (also concurrency testing of linearizable systems). FizzBee specification language is created primarily to express concurrent behavior of non-linearizable systems - like eventual consistency, etc.

Comment · 1 year ago
Thanks. Please give it a try, and let me know if you have any issues. I'd be happy to help.
Comment · 1 year ago
Glad you have tried FizzBee before. Do you have any feedback on it?

With TLA+, I mostly see papers and example projects that typically implement model based trace checking solutions in TLA+.

While it works, usually, it will clutter the main code (SUT) with tracing library calls. And in some papers, you'll need to create a separate modified version of spec with the tracing spec.

MongoDB published a paper a while ago comparing model based testing and model based trace checking. I'll soon list more details.

Comment · 1 year ago
Microsoft backed this $1.5 billion AI startup that was just discovered to be 700 engineers pretending to be AI

Live from the official Hacker News API

A modern reader for Hacker News · SvelteKit + Skeleton