I have now completed 6 years in my career as a software tester. I ask myself, what have I learnt in these 6 years? Am I a better tester today than I was when I started my career? How has being a tester impacted or affected my life? No satisfactory answer yet. But I want to share some things that come to my mind when I ponder over these questions.
During my MBA days, I came upon a book by Glenford Myers, 'The Art of Software Testing'. The artist in me noticed the word 'Art' and I started reading it. I won't describe what I read. (Anyone who has read the book will know why is it so costly.) But yes, it did convince me that Software testing is an . Testing involves as much thinking and creativity as a form of art. From my experience, I have learnt that there cannot be a defined way to test a particular software. Two testers will test the same software in two different ways. Just like two painters will paint the same imagination in two different ways. Most of the times, people will like one better than the other. So with maturity and experience, one can learn better ways to test. Having said that, I will also say that experience alone cannot make a better tester, if there is no hunger for knowledge and learning more and more. Just like an author needs to learn a language and grammar to write a good book, tester needs to learn ways to make a software more useful to the user. what does a tester need to learn? I will share some of my knowledge here.
In my first job, I started with a set of test cases written by my test lead. I executed them. But is that all that I can contribute? I figured out that if I want to add value, I have to think like the user who is ultimately going to use the product. In the last 6 years, I have had the opportunity to work in various business domains which has helped me to understand the point of view of various levels of users, computer educated user, computer illiterate user, highly sophisticated user, impatient user, friendly user, aggressive user... This is the first and most important lessson any tester has to learn, 'During testing, always think from the perspective of the user who is ultimately going to use it'. Some questions that I have to ask myself when I am trying to think from user's perspective are like: Is this data useful to the user? Are we displaying unnecessary/useless information? Are we confusing the user with too many options? Is the process self explanatory? Is the time taken for the process testing the user's patience? and so on. These are the questions I collected on my way during the last 6 years. Even when I am using a software for my personal use, I keep checking whether the testers of that software think of these questions with me in mind as a user :). So this is one huge change that being a software tester has brought to my mind.
I have also realized that having programming knowledge is very important even in software testing. I have come across many testers who are satisfied in just knowing that the software is behaving incorrectly. But when I see a bug, the next question that comes to my mind is, why did this bug get introduced. My inquisitive mind wants to know what went on in the developer's mind during implementation due to which the bug got introduced. I do not only want to point out the problem, I also want to know the cause of the problem and want to contribute in solving the problem. For that I needed programming knowledge and I have harrassed many developers trying to learn the architecture, design and software code :). I am much better equipped now. Yes I have definitely evolved over the years, but it is not the end. I have to constantly try and improve my art to become a better artist.