Posts Tagged ‘ET’

I do Exploratory Testing. Actually…everyone does.

Saturday, July 11th, 2009

I think being a software tester by profession is very interesting and exciting. I constantly get into discussions of how did I get “into” doing testing. Of course this is a very simple question and am sure you never stop and think about the answer you generally give which ranges from:

“I was selected during a campus recruitment as Test Engineer.”
“To save my job I switched from development to testing.”
“I just picked up the first job available and it was as software tester.”
And a numerous variations on above lines…

The common theme I see in such replies is that, we never thought of software testing as a profession we’d take up by our own choice (this is my experience in last 12years – and I will be very happy if someone points out they chose this field willingly). This way of picking up a profession (software testing) brings forth an important point – testers start at a disadvantage (maybe a better word is back-foot) as they were not formally introduced to the wonder of testing and the plethora of human behavior it encompasses to be good at it. This is very evident when I see people with designations like “Test Engineer”, “Verification & Validation Engineer” who have spent anywhere between 0-3 years in this industry. Every fresher who joins software testing teams is “taught” testing as if its something new to human brain – on the contrary, its the most natural thing we know since our birth unlike learning to write object-oriented code, designing software, etc…

Wait a minute…What did I just say? Testing is the most natural thing we as humans do since birth? Okay, let me elaborate.

One of the definition of word “Testing” as per Oxford American Dictionary is as follows:

[Noun] A procedure intended to establish the quality, performance, or reliability of something, esp. before it is taken into widespread use.

Now, this is perfectly obvious explanation and nothing spectacular but, the point I want to highlight is that, we’ve been doing testing using similar oracle since our birth and learning the world around us. Take a look at how you a child tests the reliability of his procedure to cry when she wants attention for things like food, diaper change, actually anything (mother runs to her and attends to her immediately). This simple test is done enough times by us to check its reliability before we use to widespread use for various situations in our life (kid will cry when she wants something, doesn’t want something, etc…).

We also do a varied form of exploratory testing during our growing up days, do you remember we’d touch a hot cup of coffee to learn that its not pleasant. We’d also touch, lick and consume all kinds of things to find out information about its “quality” (to us, the stakeholder). This is prevalent for all the things we do in life and we call it the process of “learning” – well, you learn things by exploring and testing.

Now, think again, isn’t this also true for field of software testing? We perform various procedures (testing) on it to find out its reliability before its taken into widespread use (aka product release).

TheĀ  fundamentals of software testing hence, highlights the fact that all of us do it (all the time) and we are pretty good at it (see we survived our toddler-hood and teens! :) ). The key to improve as tester therefore, includes realizing the fact that reading up hundreds of pages of documentation prepared by someone else (analogous to our parents telling us not to touch hot coffee cup, but we still test it) would never help you learn all the information available. Exploratory Testing (confused with ad-hoc testing) is a very natural way to test anything and all of us do it.

Once we realize this fundamental process of exploring and how it closely relates to software testing, we’d see the products we test daily in a different light – a software is like a box full of answers which is waiting to be asked questions and if you ask the “right” questions they’d bring forth answers that were not obvious to you in plain sight.

Summary: Testing and Exploring things is in our DNA – human brain is optimized for curiosity and therein lies the beauty of exploring things and the world around us. In context of software, it means, we are genetically programmed to do Exploratory Testing – we just don’t realize it and have forgotten the most natural way we had been doing all our lives to help do our job better.