blob: 20cc6f2fae93b26dae27dead5f50eaea2a51f3a6 (
plain)
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
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
|
#LyX 1.3 created this file. For more info see http://www.lyx.org/
\lyxformat 221
\textclass article
\language english
\inputencoding auto
\fontscheme default
\graphics default
\paperfontsize default
\papersize Default
\paperpackage a4
\use_geometry 0
\use_amsmath 0
\use_natbib 0
\use_numerical_citations 0
\paperorientation portrait
\secnumdepth 3
\tocdepth 3
\paragraph_separation indent
\defskip medskip
\quotes_language english
\quotes_times 2
\papercolumns 1
\papersides 1
\paperpagestyle default
\layout Title
PureUnity
\layout Author
Mathieu Bouchard <matju@artengine.ca>
\layout Date
January 13th, 2006
\layout Abstract
This paper covers the theory behind PureUnity, PureData's test framework.
\layout Standard
\begin_inset LatexCommand \tableofcontents{}
\end_inset
\layout Section
What is testing?
\layout Subsection
a test tests something that gets tested
\layout Standard
(write ontological nonsense here)
\layout Standard
fsdfsdf
\layout Standard
sfsdfsdf
\layout Subsection
a triad of testing
\layout Standard
I've thought of a triad:
\layout Itemize
A.
"the real thing"
\layout Itemize
B.
what it's documented as
\layout Itemize
C.
a way to verify that (1) and (2) agree
\layout Standard
and another one:
\layout Itemize
changing A to match B+C: programming
\layout Itemize
changing B to match A+C: the scientific method (aka reverse engineering)
\layout Itemize
changing C to match A+B: unit-tests and contracts and scientific experiments
\layout Section
Methodologies of Testing
\layout Standard
I once called unit-tests "test-by-example" and contracts "test-by-rule".
I think that those names are preferable to the more common names.
I also hadlisted "test-by-use" which is to use the software in practice:
this may include testing a component A using the unit tests for B because
B uses A.The last I had listed was "test-by-proof", which is rarer and is
the only one that requires analysing the implementation.
\layout Subsection
test-by-Proof
\layout Subsection
test-by-Use
\layout Subsection
test-by-Rule
\layout Subsection
test-by-Example
\layout Section
Quelques cossins
\layout Subsection
Protocol
\layout Standard
(steal text from the GF paper from Graz)
\layout Subsection
Preconditions
\layout Subsection
Postconditions
\layout Subsection
Wrapconditions
\layout Subsection
Inheritance
\layout Subsection
Aspect-programming and stuff
\layout Subsection
Meta-abstractions
\layout Subsection
Float-Signal Polymorphism
\layout Subsection
Unit-Tests
\layout Subsection
Algebraic Properties
\layout Subsection
Temporal Logic
\layout Subsection
TODO
\layout Bibliography
\bibitem {co99}
a constructive deconstruction of type theory by Alistair Cockburn
\layout Bibliography
\bibitem {key-7}
Programming Ruby by David Thomas & Andrew Hunt
\layout Bibliography
\bibitem {key-6}
Abstract Algebra, Dummit & Foote
\layout Bibliography
\bibitem {key-5}
Wikipedia
\layout Bibliography
\bibitem {key-3}
my brain
\layout Section*
Colophon
\layout Standard
made with LyX and some coffee
\the_end
|