Throughout my time in the software testing industry it has become apparent that the role of a software tester has constantly been evolving. I remember when I first started out, and my day-to-day tasks basically involved planning and performing manual testing on various software such as; pc drivers, printer software and websites…
Now, my role not only involves the same planning and performing of manual testing (albeit using different testing techniques and tools on different software), but also involves; automated testing, security testing, mobile testing, performance testing, and a host of other tasks such as the role of; a BA (in helping to gather and analyse customer requirements), a document writer (in helping to construct user guides and context help guides) and a project manager (in managing the full testing cycles, reporting results and keeping in communication with customers and aiding them with any questions or with any beta site trials, etc). I’ve also had the additional tasks of customer support duties in the past too, due to the extensive knowledge of the developed software that us testers build up during the development of the software.
Why has the role of a tester become so complicated? I believe there are two aspects to this answer. The first is down to the evolution of the complexity of software and the tools that allow us to test – for example advancements in websites and web apps mean that more sites are facing the prospects of being subjected to security attacks, driving the need for security testing. Or have a significant advancement on making the world-wide web available to more and more people, meaning an increase of visitors to your site which in turn means the need for performance testing, etc. And advancements in tools make it far easier to perform techniques such as automated testing, which drives more companies down that route, hence the need for testers to know how to code automated tests these days.
This leads to the second aspect of why the role of a tester has become so complicated – I believe that an element of this complexity lies with management… In my opinion, I think that there were many organisation managers that didn’t fully understand what it takes to test software. There were (and still are!) misconceptions about software testing in some organisations, where many managers can be naive in thinking that testing is a simple case of “checking” the software and that anyone can do it (Michael Bolton wrote a great blog about “testing vs checking” – read it here: http://www.developsense.com/blog/2009/08/testing-vs-checking/). Many managers also have other misconceptions of testing techniques themselves, a prime example being in automation, where some think its cheap or even free to set up the automation framework and that it can test everything and anything… So naturally when the realisation comes into play that an aspect of the software has not being accounted for in the testing processes, the situation is quickly rectified by incorporating these extra tasks onto the shoulders of the existing testers within the organisation.
I’m sure that many testers out there have had these experiences. And I’m sure that we have all attempted to dispel these misconceptions that management has about testing (Gerry Weinberg’s book: “Perfect Software: And Other Illusions About Testing” is a great for book for handing to anyone who has these misconceptions). But sometimes, it’s necessary to take on the extra tasks irrespectively. This is how it has played out in my experiences with various organizations so far, with me now handling all of the tasks listed earlier.
But one thing is for sure: it’s definitely an improvement to the software and of benefit to the client to perform all of the different aspects of testing! The big question however is: “are we taking on too many skill sets for one person?” is it better to have multiple people who each focus on an individual task, such as an automation expert, a manual testing expert, a web-app security expert, etc, or is it better to have a team of cross functional people who are experts in all crafts of automation, manual and security testing?
This leads to the question of the future of testing and where we will be in 10 years. I’ve heard many conversations about whether testing is dead or not, and im sitting right on the fence with the yes/no answer to this discussion. I think that testing is thriving! There has never been such high demand for testing, but on the flip side, testing “as we know it” is well and truly on its way to the grave, with testers either becoming specialist experts in a specific testing subject, or becoming this hybrid super tester that dabbles in all aspects of testing.
Or have things already changed while this debate has been going on, and we have all failed to notice as we have adapted automatically to support all of the requirements of testing?