forked from jon-jacky/PyModel
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathindex.html
More file actions
128 lines (102 loc) · 4.16 KB
/
index.html
File metadata and controls
128 lines (102 loc) · 4.16 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>PyModel: Model-based testing in Python</title>
</head>
<body>
<h2>PyModel: Model-based testing in Python</h2>
<hr>
<p>
<b>PyModel</b> is an open-source model-based testing framework in Python.
<p>
In model-based testing, you code a <em>model</em> that can generate as
many test cases as needed. The model also checks the test outcomes.
Model-based testing is helpful where so many test cases are needed
that it is not feasible to code them all by hand.
<p>
In the samples included with PyModel, there are models and test
scripts for network sockets, a communication protocol, embedded
controllers, some data structures, a multithreaded application, and a web
application.
<p>
PyModel includes an analyzer for validating models, visualizing their
behavior, and checking their safety properties.
<p>
PyModel can generate <em>offline tests</em> which are similar to unit
tests, but the typical way to use PyModel is <em>on-the-fly
testing</em>, where the test runner uses the model to compute the test
run as it executes, so test runs can be as long as needed. On-the-fly
testing can cope with nondeterminism and asynchrony in the system
under test.
<p>
PyModel can combine models using <em>composition</em>, guide tests through
programmed <em>scenarios</em>, and focus test coverage according to
programmed <em>strategies</em>.
<p>
PyModel provides three main programs:
<ul>
<li><a href="pma.html">pma</a> PyModel analyzer: generates a finite state machine (FSM) and computes properties by exploring a model program, FSM, test suite, or a product of these.
<li><a href="pmg.html">pmg</a> PyModel graphics: generates a file of graphic commands from an FSM.
<li><a href="pmt.html">pmt</a> PyModel tester: displays traces, generates tests offline, executes offline tests, or generates and executes tests on-the-fly.
</ul>
<p>
There is also a fourth program:
<ul>
<li><a href="pmv.html">pmv</a>, PyModel viewer: invokes pma, pmg, and
the <a href="http://www.graphviz.org/">Graphiz dot</a> command (to
display the graphics generated by pmg). The pmv program provides
brevity and convenience, so analysis and display can be accomplished
by a single command.
</ul>
</p>
<p>
Use pma and pmg (or pmv) 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. The pma program is also useful on
its own for visualization and safety analysis.
<p>
For more information,
read the <a href="concepts.html">overview</a> and
the more detailed <a href="notes.html">notes</a>, browse
the <a href="../pymodel">code</a>,
peruse the <a href="../talks">talks</a>,
view the <a href="../samples/Stack/svg">graphs</a>
(<a href="../samples/WebApplication/svg">etc.</a>)
or try the <a href="samples.html">samples</a>.
There are README files in most of the directories.
<p>
Here are the <a href="../talks/pymodel-nwpd10.pdf">slides</a> for
talks on PyModel given at <a href="http://www.seapig.org/NWPD10">NWPD10</a>
and <a href="http://conference.scipy.org/scipy2011/schedule.php">SciPy 2011</a>.
Here is the <a href="../talks/pymodel-scipy2011.pdf">paper</a> from the
SciPy 2011 Proceedings.
<p>
You may download <a href="PyModel-1.0.tar.gz">PyModel-1.0.tar.gz</a> or
<a href="PyModel-1.0.zip">PyModel-1.0.zip</a>.
<p>
Then you can <a href="../INSTALL.txt">INSTALL</a> PyModel.
</p>
<p>
PyModel is also available at
<a href="http://pypi.python.org/pypi/PyModel">PyPI</a>
and <a href="https://github.com/jon-jacky/PyModel">GitHub</a>.
<p>
PyModel requires Python 2.6 or later (because it uses <code>itertools.product</code>).
<p>
PyModel is influenced by <a
href="http://www.codeplex.com/NModel">NModel</a>, but is not a
translation or re-implementation.
<p>
PyModel is covered by the
<a href="http://www.opensource.org/licenses/BSD-3-Clause">
BSD License</a>.
Code and documents are copyright (C) 2009-2013 by Jonathan Jacky.
<hr>
<p>
<a href="http://staff.washington.edu/jon/">Jonathan Jacky</a>
<p>
Revised May 2013
</body>
</html>