If we follow along with the theory that all testing is heuristic, then when we are teaching testing we need to teach about heuristics when teaching about testing. I often start with giving the ‘book’ definition:

A fallible means of solving a problem or making a decision, conducive to learning; presumed to usually work but that it might fail)

That usually draws a lot of blanks looks and furrowed brows. So the next tack I try is to call it a rule of thumb and give a couple examples.

  • Never chase after a bus, there is always another one coming. Well, except when there isn’t or the next one is a really long time
  • Father always knows best. I really like this one, but it typically fails in large degrees when my wife is around. I don’t know what got me thinking about it on the walk into the office, but it occurred to me that we all carry around with us a vast array of heuristics we apply to everything we do in life. The trick is to be able to recognize which we are applying in what situation. So that is what I did. Here are my (current) heuristics of getting from Place A to Place B.

  • Always go towards the goal, never backwards
  • Arrive no earlier than 5 minutes before planned arrival
  • Arrive no later than 3 minutes after planned arrival
  • Have a planned arrival time
  • Don’t stop moving. Rather than wait for a light, continue along the street until the next opportunity to cross
  • Observe and understand traffic pattern and flow
  • Know where the closest washroom is. (Don’t ask)
  • Know ish where you are going to
  • Know where you are coming from
  • Have a mental model of the area you are in. (The first thing I buy when visiting a new city is a street map)
  • Back streets have some of the more interesting things to see
  • Know how you would pull the emergency cord if necessary
  • Have landmarks that work. (Buildings in hilly cities like San Francisco don’t work.)
  • Landmarks are relative to your point of reference. (The lake is to the south in Toronto, but the East in Chicago — that confused me to no end)

As testers, we can likely rattle of similarly long lists for ‘forms’, ‘installers’, ‘windows’ and other archetypal testing situations. But just recording those lists for distribution isn’t necessarily useful or desirable. Like my traveling heuristics above, they develop based on your own biases and experiences. And that is something that cannot be transfered. Even if two people witness an event simultaneously they will experience it differently.