Subscribe to our Erlang Factory newsletter to receive the latest updates and news

Kirill Bogdanov
Researcher, 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.

Kirill Bogdanov is Giving the Following Talks
Tutorial: Automated inference of state machines with Statechum

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.