Despite working in Software Testing for over a decade, I'm still surprised by the number of times I am asked what a software tester is and why the role even exists. For me, it is the vital process of ensuring that the software being delivered meets the specific needs and expectations of the customer.
The next question is usually ‘Why do we need a distinct set of people to test software? Aren’t the developers always striving to release software that meets their customer's requirements?’ Of course! But it is not necessarily that straightforward.
Even with the most diligent of developers, software testing and developing are two different disciplines and it can be tricky to look objectively at the work whilst developing it. This demonstrates that having members of the Development and Software Testing team verify that the product is being built correctly and that it meets customer specifications, helps to eliminate issues before it reaches the customer.
This is important, as the earlier any issues are spotted the cheaper they are to fix; a concept illustrated with the Boehm Curve in Barry Boehm’s book Software Engineering Economics published in 1981 and still holds true today even for Agile methods.
Far from testers only becoming involved in projects once the work has been developed, with the Agile methodology software testers are involved throughout the whole process. Helping to derive requirements and working concurrently with the rest of the development team, the software testers act as the gatekeepers of product quality through quality assurance.
Software Testers are in a unique position that they are detached enough from the actual coding to make informed, objective decisions assessing whether the software being developed meets the requirements of the customer and investigating to what extent the user interface is intuitive once it is rolled out to the end users.
As such, we need Software Testers because they are necessary objective assessors. Acting as the voice of reason or as advocates for the inexperienced new user by checking and questioning ongoing development decisions in order to provide the optimal solution and to meet customer requirements and specifications to put out the best product.