aboutsummaryrefslogtreecommitdiff
path: root/doc/PureUnity.lyx
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