aboutsummaryrefslogtreecommitdiff
path: root/doc
diff options
context:
space:
mode:
Diffstat (limited to 'doc')
-rw-r--r--doc/PureUnity.lyx146
1 files changed, 146 insertions, 0 deletions
diff --git a/doc/PureUnity.lyx b/doc/PureUnity.lyx
new file mode 100644
index 0000000..853a3f4
--- /dev/null
+++ b/doc/PureUnity.lyx
@@ -0,0 +1,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