Sir Arthur Conan Doyle, creator of the world-famous, detective character of Sherlock Holmes (Sherlock) was famous for elevating the science of deduction into an art form. I have been a lifelong student and fan of Sherlock, and continue to be deeply influenced by his magnificent work and art. At the start of my career in software testing, I found striking similarities between Sherlock’s strategies and the art of software testing.
Through the years, I have noticed striking parallels between the thought process of a tester, and the critical thinking of a curious mind, such as Sherlock’s. I wish to share some of the successful strategies, traits, and techniques, and directions that were used by me and my fellow testers.
An inquisitive mind is curious in seeking information, and enjoys discovering new things. As a result, a person with an inquisitive mind is more likely to discover things that may not be apparent to others. The difference between a normal tester and an inquisitive tester is that the latter goes the extra mile and is not afraid to ask and probe deeply. This goes a long way in developing well-rounded test cases, which in turn create a robust product.
To be innovative, both as individuals and organizations, it is important that we rediscover this ability to be curious
Overcome biases and assumptions
Sherlock has thousands of theories but he always approached problems with a fresh mind. Imaginative thinking is triggered when we are not constrained by our own pre-set notions, biases, and perceptions (inhibitions), and have an open mind to see the bigger picture. Removing assumptions or bias clears the mind and helps in visualizing fresh perspectives and ideas.
“Once you eliminate the impossible, whatever remains, no matter how improbable, must be the truth”
– Sir Arthur Conan Doyle
When the need is to visualize improbable and unlikely scenarios while testing, focus on small or improbable leftover scenarios and build test cases around them. I recall an incident when the entire team was gearing up for a major release, with eager customers and an anxious team that had put a lot of efforts. After days of rigorous testing, my curious mind wanted to discover more possibilities as it was a major change in a tightly coupled code base, and I looked deeper and found an improbable scenario which could break the code. Happy faces all around as we discovered and fixed the error in testing before the release.
Power of observation and the art of deduction
Deduction is based on logical thinking, which helps testers to differentiate real problems from the false ones. Observational skills and the science of deduction go hand in hand.
Sherlock was famous for his meticulous examination of details that helped him derive conclusions. This principle is equally applicable to the software world, where we must not limit ourselves to black box testing, but must rather rely on testing internal structures and code for a fool proof test result. This method is more in line with white box testing.
Being mindful of our surroundings improves our observation skills, especially those things that we are familiar with. I have seen many candidates taken aback in interviews when asked to write key test scenarios of an appliance such as a coffee machine that is used by them every day. Typically, when using a coffee machine or an air conditioner, we fail to observe and miss out on important information. A successful tester should be able to look at such items, think inquisitively and prepare test scenarios.
In order to keep up with the rapid pace of technology change, we must keep learning continuously. Sherlock always took only new kinds of cases, so that he can keep learning
To design effective tests, good testers must have deep insights into how the end users will use and exploit the software. Deep knowledge and understanding of the application domain is a must for any good tester. As technologies change regularly, it is important to keep learning and updating our knowledge base.
An inquisitive mind, eye for detail, logical thought process, and strong analytical skills are key for a good tester. Develop and implement right testing strategies, and don’t be afraid to take up new challenges that can enhance your abilities.
“My mind rebels at stagnation. But I abhor the dull routine of existence. I crave for mental exaltation.”
– Sir Arthur Conan Doyle