Posts Tagged ‘Testing’

We get educated “out” of creativity.

Thursday, April 1st, 2010

Disclaimer: These are my experiences and may not be shared by individuals or industry “experts”…now that I’ve said it out loud, let me rant :)


Dictionary defines word Creativity as (as per Dictionary app running on OS X 10.6)

Creativity [noun]: The use of the imagination or original ideas, esp. in the production of an artistic work

Wikipedia says

Creativity – A mental process involving the discovery of new ideas or concepts, or new associations of the existing ideas or concepts,fueled by the process of either conscious or unconscious insight.

Ok ok ok, this is not a rant about definitions…so, what does this have to do with Software Testing?
Well, I believe it relates to software testing in a fundamental way, specially in the context of Indian software testers I happen to encounter via interviews, work, personal interaction, reading their thoughts on the internet.

How so?

Most testers are “trained” either via institutes or on-the-job training which mainly involves the process of forcing out ones innate ability to be curious (and explore) and indoctrinate the culture of reading reams and reams of testing literature. This process makes us believe that the literature provides answer to all problems to our testing challenges (even though the documentation was written years ago and the challenges are ever changing) and we should adhere to it for success or perish to mediocrity (as a tester) if we fail. It all sounds so familiar to me when compared to how grown up’s taught youngsters about “age old rituals” and things like “make sure you put right foot out of the house first on your examination days to get good marks”. The indoctrination is pretty smooth and consistent which forces testers to let go of their most basic quality of being creative when trying to solve a problem which eventually gets lost as months/years progress in your work life.

No, that’s not true – we need documentation/literature to learn about previous successes and mistakes.

That’s true but it doesn’t mean that we hold such things to a higher standard and do all our current problem solving using it as reference. People are creative/inquisitive by nature and if they are taught to hone that skill, I believe they become better at problem solving than making them read hundreds of pages on Processes. The key in my mind is to have an environment where mistakes are considered failures/bad. If a test team is fearful of being wrong, they’d not be creative.

This doesn’t mean that making mistakes can be termed as “being creative” but, if one is not prepared to be wrong (and acknowledge/take responsibility when wrong), you won’t come up with creative/original ideas. I constantly come into situations where I’ve seen testers being afraid of being wrong when trying/doing something new which concerns me because that feeling (of being afraid) seeps very quickly into a tester’s normal way of life which in turn stops/stagnates his potential.

Ok so if you are a Guru, what in your opinion is the solution

Well, I told you that this is a rant (read my disclaimer) and though I do not consider myself a Guru of some kind but I do believe that there are some fundamental areas of ones life that need to be radically improved if the new generation of software testers are to be better / more constructive and more contributive towards a successful product. I believe that testers need to take up the baton of not being afraid to try new things or ideas (remember kids? if they didn’t know, they’d have a go with no fear of failure). This is not a silver bullet but it certainly is something that helps one to come out of one’s comfort zone and improve – and that’s (improving) the real silver bullet :)

I believe that all testers can be good at what they are doing because we are an intelligent species, we think diverse, we think dynamically, we experience the world around us in so many different ways (senses) like visually, sound, abstract and above all all of us are unique, we bring different things to the table. Then why should we stop doing this and chain ourselves to few set of ideas that were created years ago (in a different context) and in most cases hurting the evolution of new ideas.

This blog is merely a brain-dump of something I’ve thought often, specially when I read about someone breaking the shackles of tradition and try out something different or use her own thoughts/ideas to explore. If you have any comments/experiences, I’d like to hear them.

PS: special thanks to Parimala Shankaraiah whose coaxing (and my promise to her) helped me in getting this post out sooner than it would have otherwise.

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.