Statechum is a general-purpose tool for state
machine inference and test generation. It comes with Erlang front-end to
make it possible to “learn” state-transition diagrams from Erlang
software, using both exported functions and OTP calls.
Given a series of traces (such as those obtained from logs), Statechum
attempts to infer a state machine compatible with those traces. This
amounts to finding out where loops are but is heuristical in nature
because there is usually not enough traces to provide a solid foundation
for such decisions. This is where testing is helpful: every time a
learner makes a hypothesis, it generates a series of tests to confirm
it. Where a hypothesis proves to be wrong, the learner takes this into
account and generates a new one. The generated tests complement the
original traces. At the end of the learning process, one ends up with a
state machine and a series of tests.
In the tutorial I’ll present the tool using an example and will show
both its learning capability and the support for comparison of state
machines where a “diff” between two models is computed.
Kirill BogdanovResearcher, Tester and Lecturer
University of Sheffield
Kirill Bogdanov is presently a lecturer in the Department of Computer Science, The University of Sheffield UK. His PhD in Computer Science was awarded by the University of Sheffield and BSc was from the Moscow Institute of Physics and Technology. Prior to becoming a lecturer, K.Bogdanov worked as a Research Associate on the "Method for Object Testing, Integration and Verification (MOTIVE)" project. His research interests are in state-based software testing and reverse-engineering of software. Tests can be derived from models and models can be built by inference from traces of a system being tested. During the inference process, one may justify decisions made during model construction by running tests generated from the inferred model.