Interesting idea, David.
“ So, a person who is participating in an orienteering competition uses a map to navigate to different checkpoints as fast as possible. Isn’t that similar to what an automation tool does in a code base?”
Yes, it’s similar up to a certain degree. Of course analogies fall short at some point, but I am fairly sure I see your point. (I think it’s also important to note, for the sake of philosophy, that the automation tool doesn’t do anything by itself.)
“ Now imagine a person who is still in an orienteering competition, still has the same map with the same predefined checks but who while running from checkpoint to checkpoint also carefully looks around at the surroundings…”
This is also similar to what an automation tool does. We add logic in it and it changes path/direction, when certain conditions are met. Those are the “interesting” changes for the code. Our automation has the more chances to change paths and document decisions/findings the more checks we add to it.
“investigating and documenting observations” that’s also similar to running data through algorithms and keeping a log.
“ Deliberately scouting the system while using skill and critical thinking to find valuable new information.” Here is the jackpot for me; skill and critical thinking got mentioned. Code doesn’t have a particular skill itself, like a piano doesn’t make new music. Though, the code includes some of the skills of the developer(s), in some way.
“Did you or did you not find the thing you were looking for? What did you find when you went looking?” Did you notice testing can answer both of those questions, but checking only one? Because some say that checking can answer only one of the two questions, it feels to some as if checking would be a lower level achievement. What can be forgotten is that the checks don’t appear from nothing, but are a result of thinking and testing.
You can go further with your analogy, like visiting a checkpoint multiple times (maybe from different directions), going outside of the map, having a poor map and so on. Before you do, take a look on this gem (Testing Without A Map) from Michael Bolton http://www.developsense.com/articles/2005-01-TestingWithoutAMap.pdf.