Testing Lessons Learned from Sherlock Holmes!

I have been reading the book “Sherlock Holmes - The Complete Novels and Stories by Sir Arthur Conan Doyle” for past few months. I am a Sherlock Holmes fan since my childhood. But I have started to realize now, how he could have been a great “Software Tester” if he had chosen software testing instead of criminal investigation as his profession! [However, I doubt if any software was in existence in those days (when the book was written)!] Anyway, he had almost all the required skills/qualities that are essential for a good software tester (in addition to some extraordinary skills that are not seen in many people)! According to Holmes, an ideal detective should possess three qualities: the power of observation, the power of deduction, and knowledge [in “The Sign of Four”]. To me, these are also the three essential skills a good tester must have in his repository!

Observation Skills and Testers: A good tester detects defects that are likely to be missed by a mediocre tester! It is the power of observation that empowers a good tester to detect something wrong while (s)he is testing a piece of software! Failing to observe might mean failing to detect a defect that should have been caught while testing! The more observant a tester is the more likely (s)he is to detect more defects/bugs/issues! I have seen few good testers who are equally good observers too! They are not only excellent at observing things while testing software, but also at observing things in their day-to-day life! So observation, in my opinion, is a necessary skill that can differentiate a good tester from an average one! In one of the stories, Holmes says, “Watson, you can see everything. You fail, however, to reason from what you see. You are too timid in drawing your inferences. You see, but you do not observe”! I am still trying to absorb the highly intellectual meaning of this extremely intense statement!

Deduction Skills and Testers: A tester with good deduction skills is also likely to be good at problem solving! Deduction is logical thinking, which helps a tester to differentiate a real problem (might be a defect/bug/issue) from a false one! Deduction skills may come from practice of cognitive information processing, power of interpretation and can help a tester in inferencing, decision-making, comprehension etc.

My mind rebels at stagnation. Give me problems, give me work, give me the most abstruse cryptogram or the most intricate analysis, and I am in my own proper atmosphere. I can dispense them with artificial stimulants. But I abhor the dull routine of existence. I crave for mental exaltation.Sherlock Holmes

Knowledge and Testers: I believe that a good tester should try to gather as much knowledge (technical, domain-centric, technological, knowledge of similar software, knowledge of earlier failures of similar software, any other information that might aid in testing) as possible about the software while testing it! All these knowledge need not necessarily be acquired before starting testing. A tester might keep gathering knowledge (information) while still testing it. But the more knowledgeable a tester is about the application/software (s)he is testing, the better for him/her/the testing project, as (s)he continues testing! The knowledge might be acquired either through experience or by education! Knowledge can be A priori knowledge [knowledge that is known independently of experience (that is, it is non-empirical)] or can be A posteriori knowledge [knowledge that is known by experience (that is, it is empirical)]!

A good criminal investigator (detective) is good at observing minute details at the crime scene and observing details that a normal person might miss to notice! Then he goes ahead to use his deduction skills to analyze the facts and build a theory that might explain the mystery (if any) and help him in getting hold of the criminal! Throughout the investigation, his knowledge in crime helps him in cornering the criminal! As an analogy [assuming a criminal in crime investigation as analogous to a defect in software testing], a tester tries to pin point any unusual behavior while testing the software. His observation skills largely help him to notice any ambiguity that might be there in the application under test. He makes use of his deduction and problem solving abilities to find out the original defect/bug/issue! [Remember! A single defect might have multiple symptoms! So narrowing down the problem and finding the error triggering condition can sometimes become a challenge if the tester lacks the power of deduction!] And last but not the least, the knowledge in software testing always comes in handy in catching a defect!

I am not sure if you liked my above analogy of crime investigation with that of software testing! But I am really excited with this new connection and wondering if a software tester can make a good crime investigator and vice versa! I would highly appreciate if you come forward and share your views on this by commenting.

Happy Testing…
Share on Google Plus

About Debasis Pradhan

Debasis has over a decade worth of exclusive experience in the field of Software Quality Assurance, Software Development and Testing. He writes here to share some of his interesting experiences with fellow testers.


  1. Hi Debasis,

    Nice post!! I have read most of the stories of Sherlock Holmes and can appreciate the analogy given by you. Good work. I am also adding this blog in my blog section.


  2. @ TestingGeek,

    Thanks for considering this post worth featuring in the blog section of your website! I hope I would continue to deliver posts that might be equally interesting to you! Happy Testing...


  3. I agree with your analogy of tester with detective. I have had similar experience while doing performance testing. It is easy to identify, that there is performance problem in an application, but it requires all the skills of Sherlock to find out the culprit (bottleneck creating code). - Aashu Chandra PMP

  4. It is good to read and intresting.Some of the points are common to all testers even though the way of presentation will not get boared to read this article.

  5. hi debasis,

    i have too read Sherlock Holmes but not looked into the view of a tester now i start thinking deep about ur comparison.As i have read all ur blogs i understood u like commenting on each post.thanks once again...


  6. Hey its a good artical for software tester... specially the way you have described it here, good work!

  7. very good observation..you keep an eye for both..you can be the one in both the areas...I liked it a lot..all the best...


  8. Definitely very insightful! Observation, Deduction, Knowledge(ODK)...how we do love acronyms. I am also a fan of the Sherlock Holmes series. As an aside, I wanted to add that just as Sherlock Holmes had Watson, so can we as testers do even better by having aid...pair testing for example. Great post!

  9. Hi Debasis,

    Nice Post. Thanks for sharing this.

  10. Hi..
    It is really a very good to read such important points.I like it very much.Thank you for this post.

  11. The way you described the article was good. Technically sound.

  12. Gr8 one to read and really interesting comparison!!!!

  13. Good article....I think Tester can become Detectives and vice versa!!!

    As it is observation skill which distinguish us (Testers) from normal users. Ability to see hidden things...and thats what crime instigators do....

    Whenever we see any crime or detective movie / TV shows my wife always ask me to keep silence as I reveal secrets before they saw it on screen......and ya let me know if you got any cases to solve......we will start partnership!!!!

    Thanks....keep writing good articles.....


NOTE: Comments posted on Software Testing Tricks are moderated and will be approved only if they are on-topic. Please avoid comments with spammy URLs. Having trouble leaving comments? Contact Me!