Wednesday, May 1, 2013

Who's testing? Or everything I learned as a child about testing from Doctor Who ...

This year celebrates a remarkable 50 years of one of my favourite TV programs, Doctor Who.  For many testers, fiction in the form of Doctor Who, Star Trek and I, Robot were our staple diet as children, and in many cases form a good education for testers-in-training.

Many stories deal with technology-gone-wrong, that's exploited through the application of logic.  Perhaps no more that the Doctor who has faced many computerised and mechanised foes. The Doctor defeates his enemies not by use of brute force, but by studying and then exploiting their weaknesses.  Truly a model warrior-tester for us all.

Here are captured some of my favourite quotes from the series (not every one is attributed to the Doctor) that every tester should be aware of ....

The First Doctor - William Hartnell

"I know these Earth people better than you, their minds reject things they don't understand."
Pretty much the same way many people are caught out by testing bugs they can't imagine/believe being a problem or worth investigating.

"I don't believe that man was made to be controlled by machines. Machines can make laws, but they can not preserve justice. Only human beings can do that."
Remember, at the heart of any automation or computer system, there will always be a human being.

Ian: Doctor, why do you always show the greatest interest in the least important things?
The Doctor: The least important things, sometimes, my dear boy, lead to the greatest discoveries.
How many Exploratory Testers will testify to this?

The Second Doctor - Patrick Troughton

"I am not a student of human nature. I am a professor of a far wider academy of which human nature is merely a part."
As testers, understanding how people behave when using (or perhaps more accurately, misusing) a system and respond to issues is an important part of our understanding.

Eric Klieg: Doctor, you seem to be very familiar with this place.
The Doctor: Oh no, not really, um, it's all based on symbolic logic, the same as you use in computers. The opening mechanism to this door, an or-gate you call it.
Eric Klieg: Yes yes, I can see that, but how did you know in the first place?
The Doctor: Oh, I used my own special technique.
Eric Klieg: Oh really Doctor, and may we know what that is?
The Doctor: Keeping my eyes open and my mouth shut.
You can give it fancy names, but in a nutshell, this is the core of testing.

"The best thing about a machine that makes sense is you can very easily make it turn out nonsense."
Whoops ... says every testers who've ever found ways to do this.  Hint - if you've never found a way to do this, try Elisabeth Hendrickson's Cheat Sheet!

The Doctor: In 2 minutes 38 seconds, you're going to have an almighty explosion! The readings say so!
Clent: Well how can you possibly know that? I haven't even -- I haven't even processed them through the computer yet!
The Doctor: I don't need a computer.
[After handing out instructions and averting the disaster]
The Doctor: Yes, that should hold it steady. It's not a perfect job, mind you. You ought to get an expert in, you know.
Clent: How did you -- it was all a bluff, wasn't it, that 2 minutes 38 seconds to danger.
The Doctor: Oh no, it was near enough correct. Give or take a second.
Clent: Rubbish.
The Doctor: Check it on your precious computer then.
Clent: Miss Garrett, do so.
Garret [reads to computer]: Ioniser fall rate, 7 2.4. Ion compensator, minus 1 7 degrees. Ion flow rate, 1 3 7 9. Assessment please.
Computer: Immediate emergency. In two minutes thirty seven seconds, the reactor will explode.
The Doctor: Well, a second out. We can't all be perfect.
Don't trust so much in computer prediction over human experience.

"People spend all their time making nice things and then other people come along and break them!"
As you make a developer cry ...

"I hate computers and refuse to be bullied by them!"
Words every tester should live by.  Do not be intimidated by the very machines you're there to test ...

"Logic, my dear Zoe, merely enables one to be wrong with authority."
Although logic is a good start point for testing, it only allows you to test models you expect. Sometimes problems happen outside those models, because of things you don't understand or expect.  It's not that you're stupid, it's just that something else is happening, more than you'd expect ...

The Third Doctor - Jon Pertwee

"A straight line may be the shortest distance between two points, but it is by no means the most interesting."
Sounds like an exploratory tester ...

The Fourth Doctor - Tom Baker

"Well, of course I'm being childish! There's no point being grown-up if you can't be childish sometimes."
If you're not enjoying testing, perhaps you're doing it wrong.

Brigadier: Believe me, Doctor, the place is impregnable!
The Doctor: Never cared much for the word 'impregnable.' Sounds a bit too much like 'unsinkable.'
Harry Sullivan: What's wrong with unsinkable?
The Doctor: 'Nothing,' as the iceberg said to the Titanic!
Don't believe the hype.  Everything has a weakness...

"The trouble with computers, of course, is that they're very sophisticated idiots. They do exactly what you tell them at amazing speed. Even if you order them to kill you. So if you do happen to change your mind, it's very difficult to stop them from obeying the original order. [stops computer from destroying Earth] But not impossible."
This covers something that a lot of people forget about computers.  People see them being smarter and more foolproof than humans.  They do some tasks incredibly well, but so far although computers can remember and calculate things so much faster than us, so far in many fields they don't even come close.  As such with automation in testing, there are some things they do amazingly well, but many other things they function much poorer than we're led to believe.

"The very powerful and the very stupid have one thing in common. They don't alter their views to fit the facts. They alter the facts to fit their views. Which can be uncomfortable if you happen to be one of the facts that needs altering."
Testing is a very misunderstood discipline, many find that people seem to "bend the facts to fit their view".  As a tester you have to champion the art constantly from people who think "testers put those bugs in there".

 "Answers are easy. It's asking the right questions which is hard."
And of course what elevates people to being "great testers".

The Doctor: Have a go at this Davros: All elephants are pink, Nellie is an elephant, therefore Nellie is pink. Logical?
Davros: Perfectly.
The Doctor: You know what a human would say to that?
Tyssan: Elephants aren't pink.
Davros: Humans don't understand logic.
Romana II: They are not slaves to it, like the Daleks and the Movelans.
The Doctor implies a form of Black Swan problem ...

The Fifth Doctor - Peter Davison

"You know how it is; you put things off for a day and next thing you know, it's a hundred years later."
Like that process improvement you were planning to do ...

The Sixth Doctor - Colin Baker

"Malfunctioning? MALFUNCTIONING!? After all the work I've done on it!?"
Many developers will sympathise.

The Seventh Doctor - Sylvester McCoy

John: Sugar?
Doctor: Ah. A decision... Would it make any difference?
John: Would make your tea sweet.
Doctor: Yes, but beyond the confines of my taste buds, would it make any difference?
John: Not really.
Doctor: But what if I could control people's taste buds? What if I decided that no one would take sugar? That'd make a difference to those who sell the sugar and those who cut the cane.
John: My father, he was a cane cutter!
Doctor: Exactly. Now if no one had used sugar, your father wouldn't have been a cane cutter.
John: If this sugar thing had never started, my great grandfather wouldn't have been kidnapped, chained up and sold in Kingston in the first place. I'd be a African.
Doctor: Every great decision creates ripples. Like a huge boulder dropping in a lake. The ripples merge and rebound off the banks in unforseeable ways. The heavier the decision, the larger the waves, the more uncertain the consequences.
John: Life's like that. Best thing is just to get on with it.
Testing like life is full of uncertainties.  The best thing to do is to "get on with it" and deal with problems as and if they arise.


  1. I watched my 3rd episode ever of Dr Who last night, the one where the Darleks are "testing" humans to see which experiment to run on each. They "tested" them by sticking what looked like a plunger in front of their faces. It did make me think about software testing and the tools we use! ;->

    And - Peter Davison was a Dr? I never knew that!

  2. Very creative way to take something you are passionate about throughout your life and tie many of it's lessons to testing. I share your post on the internal testing forum we have here, and got some great responses, even from those who describe themselves as "non-whovian".

    It's been awhile since I watched the Doctor, you jut may have convinced me to pick it back up.

  3. I've been watching this. very funny adriangermany

  4. Nicely explained. Here you described the well written article from your in-depth knowledge. Truly impressive and nice information

    Java Training in Chennai Core Java Training in Chennai Core Java Training in Chennai

    Java Online Training Java Online Training JavaEE Training in Chennai Java EE Training in Chennai

  5. I found your blog while searching for the updates, I am happy to be here. Very useful content and also easily understandable providing.. Believe me I did wrote an post about tutorials for beginners with reference of your blog. 
    python Training institute in Pune
    python Training institute in Chennai
    python Training institute in Bangalore

  6. Hi, Great.. Tutorial is just awesome..It is really helpful for a newbie like me.. I am a regular follower of your blog. Really very informative post you shared here. Kindly keep blogging.
    Best Devops Training in pune
    Microsoft azure training in Bangalore
    Power bi training in Chennai

  7. Very nice post here and thanks for it .I always like and such a super contents of these post.Excellent and very cool idea and great content of different kinds of the valuable information's.
    rpa training in bangalore
    best rpa training in bangalore
    rpa training in pune | rpa course in bangalore
    rpa training in chennai

  8. Superb. I really enjoyed very much with this article here. Really it is an amazing article I had ever read. I hope it will help a lot for all. Thank you so much for this amazing posts and please keep update like this excellent article. thank you for sharing such a great blog with us.
    rpa training in bangalore
    best rpa training in bangalore
    rpa training in pune | rpa course in bangalore
    rpa training in chennai

  9. Hmm, it seems like your site ate my first comment (it was extremely long) so I guess I’ll just sum it up what I had written and say, I’m thoroughly enjoying your blog. I as well as an aspiring blog writer, but I’m still new to the whole thing. Do you have any recommendations for newbie blog writers? I’d appreciate it.
    Advanced AWS Training in Bangalore | Best Amazon Web Services Training Institute in Bangalore
    Advanced AWS Training Institute in Pune | Best Amazon Web Services Training Institute in Pune
    Advanced AWS Online Training Institute in india | Best Online AWS Certification Course in india
    AWS training in bangalore | Best aws training in bangalore

  10. Have you been thinking about the power sources and the tiles whom use blocks I wanted to thank you for this great read!! I definitely enjoyed every little bit of it and I have you bookmarked to check out the new stuff you post
    microsoft azure training in bangalore
    rpa training in bangalore
    best rpa training in bangalore
    rpa online training

  11. This is a nice article here with some useful tips for those who are not used-to comment that frequently. Thanks for this helpful information I agree with all points you have given to us. I will follow all of them.
    Best Devops training in sholinganallur
    Devops training in velachery
    Devops training in annanagar
    Devops training in tambaram

  12. I am a regular reader of your blog and being students it is great to read that your responsibilities have not prevented you from continuing your study and other activities. Love
    python Course in Pune
    python Course institute in Chennai
    python Training institute in Bangalore