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