Whilst there may be many things to be jealous of when looking at successful actors, one of the aspects of their job that I’ve been most envious of are the opportunities to play multiple roles and get paid for it. I mean who wouldn’t want to experience the highs and lows of what it’s like to be anything from a race car driver to a secret agent, a hobbit to a superhero? Or perhaps even the less glamorous roles of a postman, librarian or window cleaner.
That was when I started considering my own chosen career field, software testing, to look at the roles that I’ve had to adopt.
I’ve been in this industry for almost 30 years and have seen many different ideas and methodologies come and go. The one area that has not changed are the various roles that I’ve had to take on and embrace to ensure that I complete my assigned duties to the best of my abilities.
Whilst I, or actors for that matter, don’t claim to know everything there is to know about being a policeman, soldier, or whatever role you can imagine, it is almost certain that we have had to take certain aspects of those careers to be successful in our own.
The roles that spring to mind that I have played and fulfilled in the course of my career are:
This could be considered our core set of skills. As testers, we have to track and ensure problems don’t exist in anything from documentation and underlying design concepts to core functionality and integrated software. Once we find the problems, we need to ensure that they are reported and resolved before they are released to the world.
We need to be able to communicate efficiently with many different people throughout the project. This includes managers, developers, support staff, end users and fellow testers. Communicating in this case is not just about hearing but also being able to provide meaningful responses to each member of each group to ensure that the methods of communication are effective and that any identified potential issues are resolved before they become real issues.
Development work can be frustrating at times and this can lead to team members verbalizing conflicts that they are having with other team members, the technology being used, infrastructure restrictions or any number of other problems. It has definitely helped being able to be a sounding board for these conflicts and provide a potential solution for the identified concern.
To quote Cem Kaner: “The best tester isn’t the one who finds the most bugs or who embarrasses most programmers. The best tester is the one who gets most bugs fixed.”
The skills that you’ll need to fulfill the requirement of being successful at getting bugs fixed can be equated to walking the same tactful line that a diplomat needs to walk when handling negotiations. We are constantly called on to verify the work of developers who can quite naturally get upset with having their work critiqued. We need to be able to explain why we believe the problem exists and encourage the project team to have it rectified.
Editor and Proofreader
Part of the testing process requires the tester to review documentation with a view to ensure requirements and other source documentation are as complete and correct as possible. This requires the tester to act as both editor and proofreader whilst carrying out this documentation review. In fact, this task is part of the static test process and can be considered the cheapest method of removing potential bugs from the software.
Teacher and Student
We all have our own experiences to draw from which can help us educate others in everything from domain and technology to team experience and methodology. In every role that we take on, we have the choice to act as either a teacher or student. Providing our knowledge to our fellow team members and learning from others who have information to share is an important part of our job. Every project is different, each with its own unique challenges and testing requirements. Sharing and learning from each other’s experiences is integral to the software testing community.
Over the course of a project, testers can become highly experienced and proficient with the application under test. Understandably, this can sometimes lead to testers initially having to take on the role of customer service agents when the application initially goes into production.
Although this list is likely incomplete, these roles stood out the most and have made me appreciate what it means to be a tester. When I first started out, I had no idea what I was getting into. Years later, I have had to learn numerous skills which would stand me in good stead for a plethora of other careers, each of which, instead, make me a better tester. Software testing has provided me with such a diverse set of skills and experience. That is what makes it such a rewarding career. Growth is constant in this line of work as you strive to learn the latest methods and techniques to keep up with the ever developing world of technology and this, in my opinion, is what makes it so exciting.