"Some birds aren't meant to be caged, their feathers are just too bright"- Morgan Freeman, Shawshank Redemption. This blog is from one such bird who couldn't be caged by organizations who mandate scripted software testing. Pradeep Soundararajan welcomes you to this blog and wishes you a good time here and even otherwise.

Monday, September 10, 2007

Mother Nature - A teacher of all good testers

When I started to test, I wasn't aware that I entered a fantastic field that demands me to look at other professions to do a good job as a tester. A little later I realized that people in a specific profession have lots to learn from other professions to perform better at what they are doing.

Everyone, in my opinion does that but the question is: How many do it consciously?

Don't worry, you aren't left behind and here is your opportunity to unlock what you could learn from other professions. Here is an example of how Michael Bolton and Ben Simo talked about "How doctors think and the learning of a tester from that thought process" . During Michael's previous visit to India, we did talk about how his experience of cooking and theater that helped him in his testing and I was very glad to hear those stories.

I intend to pull out my notes of how people in different professions think that can help testers in their testing activity:


Doctors


I had mentioned this earlier and I would like to re-iterate. Doctors ask a lot of questions as a part of treating you. When a patient says "I am having a back pain", I have observed doctors asking questions about the hand and legs and they carefully observe emotions of the patient when they try to press the back, different places in leg and hands.

Software and human body are very complex systems. The "back pain" might be a symptom of a bigger problem and hence doctors ask questions about other parts of the body. So, as a tester if I encounter a bug, I get to think that this bug might be a symptom of another big bug that is hiding and ask questions that help me figure out the big bug.

When a patient says, "stomach ache", I have observed doctors prescribe blood tests and various other tests to take an informed decision. The management needs as good information as possible to take better informed decisions and testers need to supply the information. By prescribing blood and other tests, the doctors are looking for coverage and so, we testers need to look for coverage than to find xxxxxx number of functionality bugs (unless that is the mission).

When a patient is in a critical state and needs to be operated, there are diversified set of doctors who are in the operation theater. For instance, an Anesthesia Specialist, General Surgeon, Neuro Surgeon, Heart Specialist... and NOT all General Surgeons or all Neuro Surgeons do the job. That is a fantastic example of diversity and value addition to the operation's success. A testing team needs to be diversified. Not all testers who know to run tools like QTP, WR, LR ( toolsmith's I mean ) can add value to the project and successfully achieve the mission. Look at my FAQ's for more information on diversity of testing teams and its benefits.


The Indian cobbler ( I don't know of any other country cobblers)


An expensive shoe that we purchase might have been manufactured by a top company with state of the art machines but when it is torn or needs a fix for the sole, we do not go the manufacturing unit but to a cobbler nearby.

The Indian cobbler is a pretty simple guy. He uses the tools that are not state of the art but yet does a fantastic job whenever I or my friends have gone to him to get a problem fixed. He doesn't intend to use a tool because other cobblers think it is state of the art because it doesn't suit his context. Many companies buy tools from vendors who market it as state of the art, and later discover that it isn't suiting their context well but force the testers to use the tool to see some value of the money spent on it and lose the value that could have actually been delivered (if the tools were not put to use).

There are some cobblers who move on road and they dont carry tools that are hard to carry or need electricity to operate and yet complete the mission assigned to them. They do a manual activity and harness the potential in the tools that they carry to maximum extent. No testing is completely manual and no testing is completely automated. Those who think they are testing something completely manual are as much wrong as those who think their testing is completely automated. Those testers who know to carry the tools that suit their context are smarter and will add great value as compared to those testers who carry tools with them because someone said "That's the future".


Police ( What movies has shown me)


Catching criminals is as interesting and challenging as catching bugs. Police look for clues during investigation of a crime, to nab or zero down on criminals. They do not just look at obvious places but non obvious places, too. For instance an investigator looks at a dustbin while investigating a murder, finds a cigar in the dustbin and draws inferences about the criminal. Testers usually do not look at clues that surround a crash or hang and miss the actual criminal that many a times is caught by the end user. Log files is one such clue that has helped me nab several other criminals.

Police personnel ask the same question in multiple ways to the same person at different situations and look for consistency with the answer. Anything inconsistent helps them to get fishy and are one step closer to catching the criminal. If a test passes that doesn't mean it really is a "pass". The same test might fail when executed in a different time frame, different input, different tester executing it, different PC, different network, different hardware... If you observe carefully policemen are using consistency oracles to find the culprit.

I am thrilled that I am looking and learning from many other professions, too and I am glad that I am a software tester who is gifted to see the beauty of testing. I must thank God for his blessings. Not all testers are gifted but they can become one such when they start learning from all possible situations, people, things, objects, happening...

-- -- -- -- -- -- --

When you set your mission to become a wonderful tester, the nature will take care of your learning and all you need to do it to keep all your senses wide open. Mother Nature is the best teacher and you wont realize that by reading this sentence unless you experience it.

James Bach, today's leading test expert and testing legend, whose work has affected the entire testing community, is a strong example of someone who forced Mother Nature to teach him by becoming a self drop out of school during 8th grade ( or Standard ). His relationship and thought process is a gift that Mother Nature bestowed on me when I cried to Mother Nature seeking help for learning to test better.

So, set your mission and cry aloud, SHE will help you. SHE would test your passion under turbulent situations but once you pass HER test, you will get more tests and will start learning and enjoying the experience.


Reminder: Registration for the 500 rupees half day testing mania, is still open, so book your seats to experience such wonderful stuff. For details look at the left hand links section of this blog or simply link click maadi.

10 comments:

Ben Simo said...

Thinking of coverage...

The human body is a complex system. No doctor, or team of doctors, totally understands it. No doctor can completely test a patient. It is not just a matter of skill and resources. It is part of the nature of complex systems.

Doctors monitor what they know to monitor. Doctors test what they know to test. Doctors treat what they know to treat. Different doctors use different tools and procedures. The medical profession is continually growing. Doctors learn new things. Doctors experiment with new medications and procedures. Treatment that works for one patient with a set of symptoms may not work for another. Doctors have to adjust their practices to each patient. Doctors apply heuristics in diagnosing and treating patients.

Software systems can easily become complex. Computers allow us mortals to create complex systems that are beyond our ability to fully understand. We testers seek out software problems based on what we understand. We cannot completely test the software. We use a variety of tools and approaches to learn as much as possible. However, we are unlikely to completely understand a complex software system.

The next time someone asks you for “complete testing” or “100% coverage”, ask if a doctor can completely test a patient.

Good doctors and testers ask questions. Good doctors and software testers realize that they don’t understand it all. Good doctors and testers identify risks and test the most important things – as they understand them to be – first. Good doctors and testers are continually learning.

-----

When we look for them, we will find many similarities between things that appear to be disparate. Seeing and applying the similarities between things can be a great learning tool. Sometimes we may make connections that should not be made, but even that is an opportunity to learn.

Keep your eyes open. There are lessons all around us.

Thanks Pradeep!

Ben Simo
QualityFrog.com

Pradeep Soundararajan said...

@Ben Simo,

I am glad that you commented and am more grateful to you that my readers will have pleasure reading your comment.

Computers allow us mortals to create complex systems that are beyond our ability to fully understand.

Terrific thinking. I am just in love with this kind of thinking and I am blessed to be your friend.

Chris said...

I think there is much truth in what you say in this entry. Testing, like medical diagnosis and forensic science, is based on collecting data and making inferences from those data.

I think you could go further, though. There's a joke I'm going to use in my next sermon: A woman brings her husband into a GP's office and said to the doctor, "Doctor, you have to help my husband; he thinks he's a moth." The doctor looks at her and says, "I'm a GP; you need a psychiatrist. Why did you bring him to me if he thinks he's a moth?" The husband answers: "Your light was on."

So if I am a specialist in a certain type of testing, such as GUI testing, or database testing, if I need some data on performance I don't try to collect it myself; I get a specialist in performance testing to collect it.

There are some people who can specialise in more than one type of testing, of course. But I feel it's good to have one specialty that I can shine in, and have a very good network of colleagues who can help in areas in which I am not as learned.

Pradeep Soundararajan said...

@Chris,

Thanks for your comment. I am glad to read the story that you shared and you also came out with an important of being good at one (or multiple) type of testing and having a very good network for others, as a bare minimum a tester should have.

Anonymous said...

Pradeep, accidentally I came across your blog and was reading your article(s), really after reading them I thought that how fortunate I was to have accidentally hit your blog.

I am one among those many testers who is very passionate about my profession as you rightly said, its gods gift that I have been a tester which has helped me to learn lots of things.

This article has so much similarities to what a tester (or a testing team) does, a test lead or test manager should be able to diagnose an application and has to rightfully think what type of testing is appropriate for this product/application, so as to ensure that it meets its specified quality standards…hence I feel this is very important as critical as how a surgeon or anesthesia specialist decides how much dosage of chloroform should be given to a patient who is in the operation theater.

I feel a tester should have a right attitude and apply his mind at the right time, and one need not be a genius.

An example which I would like to share with you and ofcourse our testing colleagues is; recently I watched an english movie called ‘300’, what inspired me was that a group of 300 men fight against an army of thousands of Persian soldiers. What is to be observed here is the tactics and techniques used by these 300 soldiers to fight against them.

Hence there are lot of things that happen and we come across, but as testers we need to know which one to take and apply that to our profession.

Thanks for your wonderful article.

Rgds,
Gajaraj

Pradeep Soundararajan said...

@ Gajaraj,

Thanks and I am in love with such kind of accidents since when I accidentally discovered James Bach, my whole life changed.

I am glad that you shared the movie title and the things that inspired you as a tester from the movie. So... you learned something from the warriors and that's an interesting dimension. Most of my fight back in life over the most toughest moments that I faced was with the confidence that I had gained watching movies like Gladiator, Shawshank Redemption and Nayagan over 10's or 100 times.

Thanks for your encouragement and I pray God that there are more such people who come to my blog and help me learn new things and I am sure you would have been excited enough to pass on the link to several others, too.

Vasanth Space said...

Pradeep,that was an big philosophical view in Simple words, and was easy to relate with also.Its really great to see people take so much passion for testing and inspire others to do so. (An fresher :) to Testing World).
My concern here is what is the possibilty of an doctor/cobbler/policemen (new to the profession) can make an difference to their profession ,say coming up with new techniques or tools .

Thanks
Vasanth.C

Anonymous said...

Really a good one....
No one can teach how much nature can...
Thanks a lot pradeep...
Continue your good work...and boost our spirits for testing..:)

neerajjain said...

hi pradeep,

I think that we have a lot to learn from animals, particularly dogs and cats. In testing, they are far superior to us. When we test, we take a bite and then we decide whether we should eat the whole food or not. Dogs and cats, on the contrary, use their strong sense of smell. Just by smelling from a distance, they come to know whether the food will interest them or not. I must say that their testing is superb. Dogs and cats are perfect examples of quality-conscious beings.

Regards,
Neeraj
Technical Writer

Pradeep Soundararajan said...

@Neeraj,

Testing, as many people might go wrong, is not a job of being quality conscious but your examples help me to explain them in a different way.

Dogs and cats sniff at things around before they jump on it or try chewing it out. They are using a skill that has been given to them for being a dog or cat.

Humans do have a lot of skills which many testers around me are not putting it to use for their testing activity. Actually its not their fault completely. The teaching that they have had stressed so much on other things that sub consciously made them ignore their own skills and when you talk to such testers about the skills they have, the might say, "QTP, WR, LR.."

There are more important skills that a tester needs to develop apart from what he already has and in my experience some skills have other skills as pre-requisites.

Dogs and cats: Sniff and jump on those which is worth jumping on or safe jumping on. Many testers around me jump on everything and hence fall into traps.

@ Vasanth,

My concern here is what is the possibilty of an doctor/cobbler/policemen (new to the profession) can make an difference to their profession ,say coming up with new techniques or tools .

I am not sure what your concern is because I dont understand that. I would be grateful to you if you could re-word it for me.

Not that your English is bad but because I lack a skill of understanding others English many times.