blob: f5e605680b64896bfb0492b7b7d10d1436a1ff6a (
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
|
PureUnity
Mathieu Bouchard <matju@artengine.ca>
January 13th, 2006
Abstract
This paper covers the theory behind PureUnity,
PureData's test framework.
Table of Contents
1 What is testing?
1.1 a test tests something that gets tested
1.2 a triad of testing
2 Methodologies of Testing
2.1 test-by-Proof
2.2 test-by-Use
2.3 test-by-Rule
2.4 test-by-Example
3 Quelques cossins
3.1 Protocol
3.2 Preconditions
3.3 Postconditions
3.4 Wrapconditions
3.5 Inheritance
3.6 Aspect-programming and stuff
3.7 Meta-abstractions
3.8 Float-Signal Polymorphism
3.9 Unit-Tests
3.10 Algebraic Properties
3.11 Temporal Logic
3.12 TODO
1 What is testing?
1.1 a test tests something that gets tested
(write ontological nonsense here)
1.2 a triad of testing
I've thought of a triad:
A. "the real thing"
B. what it's documented as
C. a way to verify that (1) and (2) agree
and another one:
changing A to match B+C: programming
changing B to match A+C: the scientific method (aka
reverse engineering)
changing C to match A+B: unit-tests and contracts and
scientific experiments
2 Methodologies of Testing
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.
2.1 test-by-Proof
2.2 test-by-Use
2.3 test-by-Rule
2.4 test-by-Example
3 Quelques cossins
3.1 Protocol
3.2 Preconditions
3.3 Postconditions
3.4 Wrapconditions
3.5 Inheritance
3.6 Aspect-programming and stuff
3.7 Meta-abstractions
3.8 Float-Signal Polymorphism
3.9 Unit-Tests
3.10 Algebraic Properties
3.11 Temporal Logic
3.12 TODO
|