Statestep gives you unrivalled power to explore and manage billions of possibilities systematically and efficiently.

It was first developed for use in software engineering, where it exposes problems that otherwise become evident only in unusual, easily overlooked combinations of circumstances, as can arise in complex systems due to unforeseen feature interactions.

Outside of computing, Statestep may be useful wherever procedures or outcomes of some kind must be defined for many combinations of conditions. In this context, it will typically be used to overcome the limitations of a decision table tool. If you're not working in software, you can jump straight to the Tool page to find out more about this simpler mode of use.

In software development, Statestep is principally designed to support a specification methodology. It's a simple technique that has proved dramatically successful in avoiding costly, time-consuming oversights. Statestep enables you to anticipate and specify the correct response in enormous numbers of possible scenarios – providing confidence in system quality while shortening development schedules.

Automatic code generation creates further possibilities. For example, Statestep can also be used in prototyping, for the logic behind a mock-up of a front panel user interface, or in testing, to produce a test oracle to validate the results of automated tests.

Questions, comments?