This page contains working versions of the software used to produce this paper:
Ramsay Taylor, Kirill Bogdanov, and John Derrick "Automatic Inference of Erlang Module Behaviour"
In proceedings of IFM 2013, Turku, Finland, June 10-14, 2013
You may also require mu2, which depends on Wrangler
Once unpacked, StateChum can be run with a command similar to "java -cp <StateChum libs folder>/* statechum.apps.ErlangQSMOracle <Trace File>"
The active learner requires an initial trace file, that must include adequate information to allow SC to find and run the Erlang module being learnt. The trace file should begin with some settings such as:
config erlangSourceFile /home/ramsay/Dropbox/VendServer/vend_server.erl
config labelKind LABEL_ERLANG
config erlangModuleName vend_server
config useErlangOutputs false
config generateDotOutput true
mu2 can be used to create suitable initial trace files by instrumenting code and tests. the mu2 bin folder contains scripts to apply instrumentation to code, and to parse the resulting files into a StateChum compatible form. The examples used in the paper used mu2 to instrument the exported functions of a module, and to instrument all the functions of the eunit tests. When boths were output into the same file this created a set of module function calls, broken up by the test functions that started them. mu2 can parse these log files for a particular module and return the contigious blocks as separate traces.