|
Automatic Generation of |
|
We've developed a number of tools, so we need at least some documentation for them. The documentation isn't extensive since the tools change relatively often.
Here is a simple diagram showing how the different tools fit together.
Test generation begins with a formal specification (upper, lefthand
part). Currently Promela (Spin) descriptions, UML state charts, and
Matlab Stateflow diagrams can turned into
SMV files, in a limited fashion.
The original SMV file must be prepared (by "reflect"), yielding
reflected.smv.
Mugent produces test cases (case.ceu).
There are three main uses shown: (1) generate tests by
matcegen/ce2tcases and to abstract tests, (2) generate tests by
step5/ce2tg and tda/tao, or
(3) coverage analysis, the right and left branches joining at the
bottom at repcov.
Here are some directions on using the tools. After each step
is an actual command that would do that step for an example
hal. Each command has options, which you can see with -h,
for instance, mugent -h.
reflect original.smv > hal.smv
mugent hal.smv
After you have a set of tests, if the original specification came from Matlab's Stateflow, use matcegen to create abstract tests. (Some day the output from matcegen will be feed through tao to create compilable source code.)
Alternately, you can create actual test code using a script called "step5", which invokes ce2tg, and then Bill Majurski's tao. Those are on the far right of the diagram.
You can access a web-based demonstration that will create and run tests for cruise control.
alltests hal
repcov q.mutants.smvo tstj*.smvo
We have scripts to minimize the test set given the mutation coverage. They are not shown on the diagram.
Created Fri Feb 19 13:12:12 1999
by Paul E. Black (paul.black@nist.gov) Updated Wed Aug 27 11:56:56 2003 by Paul E. Black (paul.black@nist.gov)