PyModel Graphics

PyModel is an open-source model-based testing framework in Python.


Usage:

  pmg [options] fsm

The single argument fsm is one finite state machine (FSM) module name (without the .py suffix). The FSM is typically produced by the PyModel Analyzer, pma. From the FSM, pmg generates a file of commands in the dot graph-drawing language. This .dot file can then be processed by the dot program in the Graphviz package from www.graphviz.org. Use the PyModel commands dotps, dotpdf, or dotsvg to run dot and produce PostScript, PDF, or SVG, respectively. SVG files can be viewed in a web browser.

Alternatively, pma, pmg, and a dot program can all be invoked by the pmv program, so analysis and display can be accomplished by a single command.

Control clutter in the graph with the -l --transitionLabels option: -l action shows the action name, arguments, and return value, -l name shows only the action name, and -l none shows no labels.

In the generated graphics, the initial state is gray. Accepting states have a double border. Unexplored or incompletely explored states are orange (these may have outgoing transitions that are not shown). Terminal states (with no outgoing transitions) that are accepting states are green. Terminal states that are not accepting states are yellow; runs that end in these states are considered failures.

In the browser, hover the pointer over a state to display a tooltip that shows the state variables and their values. Place the point of the pointer over any pixel on a transition vector to display a tooltip that shows the transition.

Options:

  -h, --help            show this help message and exit
  -o OUTPUT, --output=OUTPUT
                        Output file name (not including .dot), default is <fsm argument>
  -l TRANSITIONLABELS, --transitionLabels=TRANSITIONLABELS
                        Transition labels: action, name, or none, default is action       
  -x, --noStateTooltip  Omit tooltips from state bubbles (to work around dot svg problem)

Revised July 2011