My presentation from EuroSTAR 2015:
Your testing is a joke. Or, rather, some parts of some of the testing done by some people reading this will be somewhat analogous to some subset of what some people would accept as jokes. Sometimes. Language can be tricky like that. And that’s one of the things that makes it such a productive tool for jokes, and such a flawed tool for specification.
Edward de Bono, in his Lateral Thinking books, makes a strong connection between humour and creativity. Creativity is a key to testing, but jokes? Well, the punchline for a joke could be a violation of some expectation, the exposure of some ambiguity, an observation that no one else has made, or just making a surprising connection. Jokes can make you think and then laugh. But they don’t always work. Does that sound familiar?
At Linguamatics we have a weekly caption competition. I wondered what my process for creating entries was and as I spent more time thinking about it, I started to notice parallels with the way that I think about how I test. For instance, I might take each of the key entities in the picture and “factor” them – generate a list of features, related concepts, synonyms and so on. In testing I might then look for overlapping factors for potentially interesting test ideas, in the quest for a caption I might try to use the same approach to find an ambiguity and hence a joke.
In this talk I’ll take a genuine joke-making process and de-construct it to make comparisons between aspects of joking and concepts from testing such as the difference between a fault and a failure, oracles, heuristics, factoring, modelling testing as the exploration of a space of possibilities, stopping strategies, bug advocacy and the possibility that a bug, today, in this context might not be one tomorrow or in another.
Yes, there will be some jokes in the session. And I’ll try explain why the groans you’ll hear are a good sign too.
1. Your Testing is a Joke
James Thomas, Linguamatics
@qahiccupps
2.
3. Your Testing is a Joke
• Testing and Joking
• Jokes
• Experiment
• Step Back
• Summary
4. Jokes…
–Expose an ambiguity
–Point out the thing that’s
been ignored in plain sight
–Violate some expectation
–Make a surprising connection
5. Making Cornections
Corny: trite, banal
Sweet: highly
satisfying or
gratifying
Husky: low-
pitched and
slightly hoarse
Get a cob on: be
or get annoyed
Context
6. Jokes…
–Expose an ambiguity
–Point out the thing that’s
been ignored in plain sight
–Violate some expectation
–Make a surprising connection
and Testing?
8. A Joke
• Two components (Brownell and Gardner):
– surprise: say, by a violated expectation
– coherence: how well the joke fits to the context
• But, the non-sequitur:
Q: Why was the programmer debugging at midnight?
A: Fish.
• Definition of a joke is heuristic
– Useful rule
– Fallible
9. An Experiment
• 2 January 2015, a joke on Twitter:
Q: Why was the web developer sent home early on new years?
A: His application needed a little REST.
• Two missions:
– "test" the joke
– "design" a joke using the same set up (Q)
10. Mission #1: Test the Joke
• Sufficiency, necessity – New Year
Q: Why was the web developer sent home early?
A: His application needed a little REST.
• Consistency – Dev sent home but application needs REST?
Q: Why was the web developer sent home early?
A: He needed REST.
• Balance surprise and coherence – "need" vs "want"
Q: Why was the web developer sent home early?
A: He wanted REST.
11. Relative Rule
For any abstract X:
X is X to some person, at some time (Michael Bolton)
• A joke is a joke to some person at some time
• An issue is an issue to some person at some time
• Have you ever had to spell an issue out?
– Sometimes they just don’t get it
– Groaning is good!
– Try thinking about surprise and coherence
12. Mission #2: Design
Q: Why was the web developer sent home early on new years?
• Expansion:
– Web - HTTP, SOAP, browser, internet, JavaScript, AJAX
– developer - code, script, IDE, bugs
– new year - 31st, 1st, annual, fireworks, resolution
– home - home page, house, street, homing pigeon
– work - job, position, meetings, requirements, responsibilities
14. Mission #2: Design
Q: Why was the web developer sent home early on new years?
A: Was he sent home or did he desert his POST?
A: Hopefully he was PUT in his place.
A: He's now considering his OPTIONS.
• Fault vs Failure
– These "failures" stem from the same underlying "fault"
• Stopping strategies
– Time, deadline, other work, risk, value, statistical test, …
• Plunge in and Quit
– But I can always come back!
15. Mission #2: Design
• Expansion
– JavaScript: common libraries such as node.js, jQuery, D3
– node: sounds like "knowed", "no-ed"
– Ajax: sounds like "Hey Jacks", "Age Axe", "A Jacks"
• Lateral Thinking
– Be open to, and provoke, off-track thoughts
– Example: decomposition
• Expansion
– jQuery: sounds like "Jake weary"
• Now work back from result to context
eleph-ant - the biggest insect in the world
unpleas-ant - the worst insect to be around
deodor-ant - the nicest smelling insect
16. Mission #2: Design
• Iteration, rote generation
– Jake said he was weary
– The boss saw that Jake was weary
– The boss saw Jake weary
• Oracles
Q: Why was the web developer sent home early on new years?
A: The boss hated to see Jake weary
• Negate the premise
– What if we had not X or no X?
17. Really?
• Lateral thinking is closely related to insight, creativity and
humour … (de Bono)
• … of variable reliability [the models] need to be subjected to
frequent "reality checks" (Hurley, Dennett, Adams)
• we … keep finding deep parallels between humour and scientific
investigation. (Hurley, Dennett, Adams)
18. But, Really?
• Hurley, Dennett, Adams:
– Humour comes from the realisation that a committed
belief in someone’s mental model is incorrect.
• Joking
– Injects a committed belief
• Investigating
– Proposes an uncommitted belief
19. So?
• Investigation
– Ambiguity spotting
– Idea generation, Lateral Thinking
– Functional fixedness
• "Humour allows us to explore alternatives" (Weinberg et al)
• Category switching (Miller)
• Reporting
– Telling the testing story
– Bug advocacy
20. But, So?
• Social
– Getting along
– Gallows humour
• Keeping Loose
– When I think of a corny joke …
– … I force myself to find two more …
– … with some aspects in common …
– … and then tweet them.
• Training, Coaching
– Describe and illustrate techniques
21. Summary
• Parallels between testing and making jokes:
– Surprise: identifying some aspect of a situation which is
incongruous.
– Coherence: placing these observations in a context which
makes their effect clear.
– Delivery: making sure that the story is put together
convincingly and told well.
22. And the Punch Line?
• I was asked to organise a parachute jump. People
kept dropping out.
• My dad was an unusual barber. He worked
exclusively on root vegetable farmers from a shop
called Pa Snips.
• I went looking for religious ladies. Found nun.
• The best thing about my partner at Origami Club?
We're on the same page.
• I'm just never sure what that pig means.
Hambiguity.
23. Your Testing is a Joke
James Thomas, Linguamatics
@qahiccupps
24. Selected References
• Lateral Thinking, E. de Bono, Penguin (2009)
• The Gift of Time, F. Charles, Dorset House (2008)
• Laughing Matters, J. Durant and J. Miller, Longman (1988)
• Inside Jokes, M. Hurley, D. Dennett, R. Adams Jr., MIT Press (2013)
• How I Escaped My Certain Fate, S. Lee, Faber & Faber (2010)
• What Did You Say? C. Seashore, E. Seashore and G. Weinberg, Weinberg &
Weinberg (2013)