PyModel-0.9: Model-based testing in Python

Jon Jacky jon.p.jacky at gmail.com
Tue Jul 12 17:15:10 CEST 2011


PyModel-0.9, an open-source model-based testing framework in Python,
has been released.  Code, documents, and downloads are available:

 http://staff.washington.edu/jon/pymodel/www/

 http://pypi.python.org/pypi/PyModel

 https://github.com/jon-jacky/PyModel

Version 0.9 adds new functionality, new samples, and some changes to
internals to be more consistent with recommended Python style and
programming practices.  For details see see
pymodel/notes/release-0.9.txt at the above site.  Version 0.85 was
announced here in March 2010.

There will be talk on PyModel at SciPy 2011 on Wednesday, July
13 in Austin, Texas:

 http://conference.scipy.org/scipy2011/

-------

In unit testing, the programmer codes the test cases, and also codes
assertions that check whether each test case passed.  In model-based
testing, the programmer codes a "model" that generates as many test
cases as desired and also acts as the oracle that checks the cases.

PyModel supports on-the-fly testing, which can generate indefinitely
long nonrepeating tests as the test run executes.  PyModel can focus
test cases on scenarios of interest by composition, a versatile
technique that combines models by synchronizing shared actions and
interleaving unshared actions.  PyModel can guide test coverage
according to programmable strategies coded by the programmer.

PyModel provides three programs:

 - pma, pymodel analyzer: generates a finite state machine (FSM) and
   computes properties by exploring a model program, FSM, test suite,
   or a product of these.

 - pmg, pymodel graphics: generates a file of graphic commands from an
FSM.

 - pmt, pymodel tester: displays traces, generates tests offline,
   executes offline tests, or generates and executes tests on-the-fly.

Use pma and pmg to visualize and preview the behavior of pmt.  Every
path through the graph created by pma (and drawn by pmg) is a trace
(test run) that may be generated by pmt, when pma and pmt are invoked
with the same arguments.







More information about the Python-announce-list mailing list