blob: 853a3f4dad080e231b8de8b7b1e19e053a5f7439 (
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
|
#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 Subsection
a triad of testing
\layout Standard
I've thought of a triad:
\layout Standard
A.
"the real thing"
\layout Standard
B.
what it's documented as
\layout Standard
C.
a way to verify that (1) and (2) agree
\layout Standard
and another one:
\layout Standard
changing A to match B+C: programming
\layout Standard
changing B to match A+C: the scientific method (aka reverse engineering)
\layout Standard
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 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
TODO
\layout Standard
\the_end
|