3 ms·
Hello HN, This is a specification and testing tool for software systems. It's based on the the Behavioral Programming modeling paradigm (think of it as the nex
by michbarsinai 2y ago
Hello HN,
This is a specification and testing tool for software systems. It's based on the the Behavioral Programming modeling paradigm (think of it as the next-next generation of UML's State Charts, the next generation of the lesser-known Live Sequence Charts, or a sibling of TLA+). You can use it to model desired system behavior[1], visualize[2] and verify[3] it, and then generate optimized test suites to validate that the implemented application does what it was supposed to do. Test suites can be executed directly (using Selenium, REST apis, CLI integrations...), or exported as code/manual test books.
The model-based approach to specification and testing is very different from current specification and testing approaches, which are quite separate, are prone to ambiguities, and require a lot of manual work (especially test suite generation and test scenario maintenance). Using this approach, test scenarios and suites are derived from the model, so the work on test suite maintenance and composition is drastically reduced, model visualizations help even non-technical people understand what the planned behavior is, and verification ensures that the said behavior does not contain contradictions or violations.
Granted, this has been the promise of model-based software engineering for a long time, but this tool uses a different modeling paradigm and is created by software engineers, not mathematicians (insert evil emoji here).
The tool started as my PhD thesis project, but became useful-ish so we[4] decided to make it into an actually useful tool.
Looking forward to hearing what the HN community thinks of this!
----
[1] Technically, a large state machine/transition system defining desired interactions of the system-to-be with its environment.
[2] Yes, it's Graphviz, but with a lot of styling. Yes, there's a D3js version on the way.
[3] Actual formal verification of the model defined in [1].
[4] My PhD advisor, another professor from the lab, and yours truly
- hwayne 2y agoI see it takes `.bpmn` files; can it check properties of BPMN models?
- michbarsinai 2y agoYes. The tool does not support all of the BPMN standard yet, but within the supported range it can detect issues such as "process A happens before process B" or the like.