In this interview, Mukesh Sharma talks about the relationship between test automation and manual testing, the value of automating your testing, and why there is not a "silver bullet" when it comes to testing. Mukesh also reflects on his career as a tester and his time at QA InfoTech.
Cameron Philipp-Edmonds: All right. Today we have Mukesh Sharma. He's going to be speaking to us about test automation and his role at QA InfoTech and about his passions and insights as a tester. To start things off, can you tell us a little about yourself?
Mukesh Sharma: Yes. My name is Mukesh Sharma and I am the founder and chief executive officer of QA InfoTech. We are an independent software testing and quality assurance company. We've got around 20 years of experience in the software development world and I have had an opportunity to work in both development and testing across software companies before I moved back to India to start QA InfoTech around ten years back, more than ten years now.
Cameron Philipp-Edmonds: OK. The bio on your company website describes you as avid reader, but I also know that you're in the process of finishing up a book on crowdsource testing. What led you to go from reader to writer?
Cameron Philipp-Edmonds: And Better Software Magazine.
Mukesh Sharma: I have also been encouraging a lot of my employees to partake in such efforts and to this effect, we have an even which is internal to our organization, it's internal technical symposium that we organize every year with all of this work over the last two to three years, I have been selectively picking topics where I can share my experience in a broader forum to help create a more lasting knowledge base. The first book I wrote was on software testing at large called Are You Smart Enough to Be a Tester? The reason of what inspired me to write that book—so back when I graduated from my school, I did my Computer Science in '96, I was not aware of a career in software testing. All I knew was you could be a programmer to write C programs, C++, Java, or RDBMS database.
I wanted to be able to make people understand, some people who are going through the curriculum in their college or school, they deserve a career in software testing. When I formed QA InfoTech back in 2003, I had a major challenge wherein it was so difficult to find people who are willing to do software testing. So I thought of writing a book that would encourage people, those who are reading the book, go and speak in conferences take sessions and then I thought if I could write something like, “Are You Smart Enough to Be a Software Tester?” And have a clear career path specified in the book as a chapter. We have since published that book. The current one on crowdsource testing, which I am co-authoring with one of my co-workers, and I am happy to tell you that Taylor & Francis will be publishing this book which is scheduled some time, I believe, in September 2014.
Cameron Philipp-Edmonds: Fantastic and we're going to sit down in July and talk about that book as well, so thank you for that.
Mukesh Sharma: Yes.
Cameron Philipp-Edmonds: All right, and you also have some writings. If you want to check out Mukesh's writings you can check them out on TechWell.com, Stickyminds.com or the new and next issue of Better Software magazine. Now I'd like to jump into some questions about test automation. So really, when should a team look to get into test automation as either a supplement or replacement for manual testing?
Mukesh Sharma: Firstly I don't believe or see manual testing being fully replaced. That human touch is important. We are creating these softwares unlike the pharma industry wherein it takes a lot of time to research before they come up with one medicine with like 20 years of research. Here it is like quick products that are being created, that the thought of development cycle is very short. Over the years it has been shortened too much. You can't, the product itself is a piece of code, you can't have code testing the code and then completely rely on it. There is usability factor, there is accessibility factor, so I don't believe or see manual testing being fully replaced.
In fact, with the advancements in technologies such as wearable computing, etc. that are at now buzz or hot buzz coming into the mix, I believe some of these will take us back to the roots of software testing and bring in more of manual testing. That said, automation testing is a great supplement to the manual tester first, because they help you in bringing reputability and test coverage in specific areas. Now, when should a team look at test automation? Well, when you have a product with working functionality, the functionality is working fine and you know that there are multiple releases that are going to happen, there will be multiple upgrades or releases, you would want to consider automating the base functionality, to make sure that the future base do not end up breaking the working or the existing functionality.
So that is one scenario, the second scenario could be you are building a product in agile methodology. Sprint one: you created one feature. Sprint two: you added a few more. By the time you come to sprint four or sprint five, you do not want to come to a situation wherein the features in sprint one are broken due to whatever new thing is added. So it is important that you automate while you develop. That is how our test driven development is happening with a lot of continuous integration so, you can write automated test and have it integrated with continuous integration so when developers are checking in their code the test would be fired automatically.