I wrote about how testing is like writing fiction. Testing can actually influence reading fiction as well. And reading fiction can be great practice for exploration in a lot of ways. I recently came across a good example of that.
I was reading the story “Cryptic” by Jack McDevitt (originally published in 1983) and I found a dilemma. The main character, Harry, finds an envelope. As the story tells it:
“The envelope was blank, save for an eighteen year old date scrawled in the lower right hand corner.”
Inside this envelope were these data discs and of these it is said:
“The disks were numbered and dated over a three-day period in 2001, two years earlier than the date on the envelope.”
Okay, so that helps us figure out what year the story must be taking place in, right?
- The envelope had an 18 year old date on it.
- The disks inside were dated 2001, two years earlier than the package.
- So the package had a date of 2003.
- Given the “18 year old date”, that means this story takes place in 2021.
As part of the story, we then learn about some directors of the SETI program.
“Frank Myers has been SETI director since Ed Dickinson’s death twelve years before.”
Okay, so given the previous data, that means Ed died in 2009. But then we learn about another director, Hutching Chaney, who was the director before Ed. Yet dialogue in the story says this:
“I didn’t think Dickinson came to the Project until Hutch Chaney’s retirement. That was ’13, wasn’t it?”
And with that my tester — or just my critical reader — alarm bells were ringing. “’13”? That presumably means 2013, right? But didn’t Ed die in 2009? So he came to the Project shortly after he died? I think we have a “bug” here. But I needed to keep exploring a bit.
It turns out the envelope and the discs contain data from the reception of signals from the star Procyon. At a later point in the book, Harry, recounting his actions, says:
“I … ran a search covering the entire time period back to the Procyon reception in 2011.”
Wait! What? 2011? But … but …. ah. I wonder if the “2001” printed earlier was a bug. Let’s assume that. If we go that route:
- The date on disks was 2011.
- Thus the envelope was from 2013.
- That would place the story in 2031.
- This means Ed died in 2019.
All of this then makes sense how Ed cold have come to the project in 2013. And thus is the story consistent, save for that one “bug”.
The Enjoyment of Exploration
I can easily see someone reading the above and thinking, “Oh, sheesh, just enjoy the story.” Well, I did. It’s a great story about a possible first contact and how we might respond to that. But that doesn’t change the fact that I also enjoy spotting and ferreting out discrepancy.
I do believe that part of the enjoyment a tester has in exploration is that, for such a tester, details matter. If I were helping proofread the story, I would have hoped I caught that discrepancy. Is it a big one? Does it detract from the overall story? I would argue not at all.
But this goes back to something else I believe: good testers “bump the lamp.” All of what I described is a way of exploring the details of the story rather than just letting them pass you by. I talked about this before regarding attention to detail during exploratory testing.
And, again, note that this does not require sacrificing enjoyment of the story itself. In fact, maintaining enjoyment of the story is actually part of the point. But there’s a certain point to be made for simply wanting the details to be right, regardless of how little that may not impact the overall “feature.”
Harnessing the Human
There is a cautionary trend I do want to mention regarding the notion of “exploratory.”
This trend is what I see testers doing a lot of, which is making too much of a distinction between “ad hoc” and “exploratory.” This was never the dichotomy to be focusing on. Specifically, the two are not in opposition.
If anything, the contrast to exploratory testing would be scripted testing, not ad hoc testing. (And even then it might help not to think of anything “scripted” as being testing.) Exploratory testing is, in fact, a particular approach of ad hoc testing. I think a way to frame exploratory testing is to first make sure testers understand that testing is a both a design activity and an execution activity. When testers view it this way, as they should, then exploratory testing is simply seen as that approach where both activities are combined.
Key focal points of exploratory testing are the situational knowledge and awareness that you bring to the table. I wrote a post about how this applied in game testing, wherein certain bugs would likely not have been found without exploratory testing.
Exploratory testing is also about harnessing intuition as well as emotion, both of which are guiding motivators for how we utilize the discipline of testing to explore a particular space.
These are very human aspects of testing. Or are they? Gabriel Cliseru posted a great comment on my article about the technocrat tester and the idea of artificial intelligence.
Can an artificial intelligence apply intuition and emotion? Would such an intelligence understand the distinction between design and execution? Going with the story “Cryptic”, could an artificial intelligence had picked up on the clues? Could it have reasoned about them? Could it have made a value judgment regarding how much, or how little, the date issue mattered? Could, in short, an artificial intelligence explore? And would it have “cared” to?