The Journey: Early Days to How I Got Here
I have been in the Software Testing field since early 2000, and overall IT field since 1996.
I completed my M.S. in Computer Science from Illinois Institute of Technology, IL, USA.
I started working as a Tester (with various titles and different responsibilities) in USA from 2000 -2005. Since then, I have been working as a Tester in India.
In my first stint as a Software Test Engineer in WebMD, I did Manual Black-Box Testing. My inclination towards programming got me involved a little in Performance Testing using Load Runner and also some IVR testing.
Then, I spent a couple of years as a Senior Technical Support Engineer in Borland Software. This was a very unique experience where I got to do a variety of tasks like customer interaction, developing test cases to reproduce their problems, testing out patches provided to them by the development team, and, being a customer advocate in front of the product development and test team. This is when I realized the pain the end-user feels when he / she encounters defects in the product that you have been part of developing. This role was an eye-opener for me!
After this, I worked as a Software Developer - Test in Microsoft. I was part of a team that built testing infrastructure (IDE, test runners, reporting, etc.) for the Testing team to test Live Meeting.
Then I returned to India and worked as a Product Quality Engineer in AmberPoint, India. Here I worked on manual and automation testing of the core product functionality. I also helped in System Administration, and creating and setting up of Test Environments using VMware.
I am currently working as a Principal Consultant at ThoughtWorks, India. I do everything related to testing (manual, automation, process, consulting, coaching, speaking at conferences, mentoring the ThoughtWorks QA community members, helping in their capability building, etc.).
My journey has helped me move from being a "Tester" to being a "Smart Tester". Also, being from a technical background, I have always wanted to and managed to remain a technically focused Tester.
Decisions That Mattered
There are a couple of very important decisions I have taken in my career that I have helped me.
• Remain on the technical track, instead of moving to managerial track
• Stay focused in the Software Testing field
• Practice what you preach
These decisions have helped me become better at what I do and made me an SME of sorts in the Testing field.
Work and Role: Then and Now
In my earlier jobs at AmberPoint, Microsoft, Borland and WebMD, I was an Individual Contributor. I worked on one or the other aspect of testing - like manual, test automation and test infrastructure.
In my current profile in ThoughtWorks, I do everything related with Testing. This includes manual testing, test automation, automation infrastructure, and process. Along with working on projects, I am also involved in (process and QA) consulting, QA Trainings & Boot Camps, speak at conferences and write blogs, mentoring the ThoughtWorks QA community members and helping in their capability development.
In June 2010, with support from ThoughtWorks, I started a Testing conference named vodQA with the intention of bringing the practitioners of software testing to learn, share and collaborate with each other, under one roof. We have hosted 7 vodQA conferences across India, the last one being in Mar 2012.
Lastly, I have got involved in open-source tool development. My first open source contribution is WAAT - Web Analytics Automation Testing framework.
Two Years Down the Line
There is a lot that I have experienced and learnt in my career. At the same time, I am aware that what I know is just the tip of the iceberg. I see myself attending and speaking in more conferences to continue sharing what I know, and also keep learning from others. I am also considering author a book related to testing.
What I Learnt Along the Way
There are a few lessons I have learnt in Software testing:
• There is no right way to do testing
• Keep an open mind and look at the big picture before creating the test strategy and start testing
• You cannot and SHOULD NOT aim for 100% test automation. Instead, look at the Cost Vs Value chart for determining what tests should be automated
• Software testing is a specialized field and not a stop-gap opportunity.
• Continuously challenge yourself and people around me to do things better and at times differently.
• Testing is done best when one is innovative and creative in approaching the product under test
• Fail fast. Time-box your activities when trying different approaches / tools / technologies, and if that is not working, quickly get to the next best option to keep the ball rolling forward.
Changing Days: Lessons Learnt
Organizations and teams have started realizing the importance of testing. Testing is no longer the last, and in some cases the "bottle-neck" to releasing software. Though there always used to be references to testing being part of all stages of the SDLC, the true value and potential was not realized because of incorrect prioritization.
Now, organizations and teams realize how testing early is truly valuable for the product. There is a lot of emphasis on Test Automation - which enables creating a safety net for the product in case of regression defects. There is a change in mindset to move from "defect detection" to "defect prevention". All this has made the role of the Tester more valuable and critical than before. There is now much more responsibility on the Tester.
My Advice If You are Starting Out
My advice for wannabe Testers would be the following:
• Be passionate about what you do
• Be focused
• Be ready to challenge the status quo
• Be a Smart Tester (as opposed to just following what has been happening forever)
• Find opportunities to achieve better results by being creative and innovative in your testing approach
• Tools and technologies will keep on changing. If you understand and adapt to the domain quickly, and also your basics (of the current tools and technology) are clear and strong, you will be able to pick up any new tools and technology quite easily.
Must Focus Areas For the Future
• Be willing to dig into the product code to understand how certain functionality has been built
• Think out of the box
• Learn from your and others experiences
• Balance time between manual (exploratory) testing and test automation
• Be a smart tester!
Books/ Websites I Recommend