Mon, 08 Aug 2005
In my thinking about tests as examples, I've been thinking of them
as good examples:
The right system behaves like this. And like this. And
don't forget this.
But what about counterexamples?
A system that did
this would be the wrong system. And so would a system that
There's some evidence that differences are important in
The linguist Ferdinand
de Saussere taught that meaning of the word
"boat" isn't "a
small vessel for travel on water." Rather the meaning of "boat"
is generated by contrast with other words like "ship", "raft",
"yawl", "statue of a boat", etc. (Derrida
would later go on to make perhaps too much of the fact that there's
no limit to the recursion, since all those other words are also
defined by difference.)
the early '70s, Patrick Winston wrote a
program that learned the concept of "arch" from a series of
examples and "near misses". My copy of his book has long
since gone to the place
paperclips, coathangers, and individual socks go, so
I can't check if the near-miss counterexamples merely improved
the program or were essential to its success.
My kids are now of the age (nine and ten) where they ask for
dictionary-like definitions of words. But when they were
younger, they more obviously learned by difference: they'd point at
something, give the wrong name, then accept the correction
without further discussion. ("Duck." "No, that's a goose."
"Dog." "Yes, a nice dog.") Presumably the counterexamples
helped with that amazing burst of vocabulary young kids have.
So what about those times when the programmer proudly calls the
product owner over to show the newest screen and watches her face
fall just before she says, "That's not really what I had in mind"?
Or those times when a small group is talking about a story and a
programmer pops up with an idea or a supposed consequence that's
wrong? That's an opportunity to - briefly! - attend to what's
different about the way two people are thinking.
Does anyone make explicit use of counterexamples? How? What have
## Posted at 20:05 in category /ideas
Link: Crispin on test-first customer tests
Lisa crispin has a nice, short article
on how her team uses business-facing tests to drive development. A
couple of points I particularly like:
- Good examples of questions someone (often the tester)
should ask about even a simple story.
- An emphasis on just-in-time test creation.
- How the need to support tests encouraged business logic to go
in the right place.
## Posted at 11:07 in category /agile