What Makes an Effective Software Tester

From 3arf

Although software testing has been around as long as software, the discipline of software testing as a profession started to come into its own in the 1990s and has only grown more complex as the importance of testing has become more crucial.

While there may be secondary goals in software testing, the primary purpose of a software tester is to uncover software defects (or "bug") so that the defect may be reviewed and corrected prior to release of the software program.

Like the general term of "software" can encompass a wide range of products, a "software tester" is a general term that encompasses a wide range of testing that is conducted on the software based on the tester's role on the project. As such, a tester who was part of the "unit testing" team (usually a person who works with the programming team who tests at the processing or "unit" level) would have different test goals than a person who is part of the beta test (a pre-release test group usually made up of people who are the targeted end user or "customer").

While education and experience requirements may vary depending on the specific role of the software tester on the project team, there are six common qualities that all effective software testers share no matter which role he or she plays on the project team.

1. Practice good communication skills. Nearly every point below this first point will be tied to this one because above all else, an effective software tester must practice good communication skills.

2. Be detail oriented. A software tester must be detail oriented. When a bug occurs, the tester must be able to notate not only the problem, but also the steps that led to the bug occurring so that the bug can be duplicated consistently. The more consistently a bug can be duplicated; the faster a bug can be fixed.

3. Be diplomatic. A software project is more than just the software programmers. It is a project team that can involve the highest executive to the most junior of programmers. As such, there can be a lot of egos involved. When a bug is found, a software tester must be able to communicate the bug in a clear, but diplomatic manner so as to keep any drama to a low hum. An effective software tester who is diplomatic and tactful is more respected than one who causes drama. This trait becomes very valuable when a big, show-stopping bug is reported. If the software tester has a good reputation with the project team, the team will know and trust when the tester is reporting an urgent problem and the team will respond accordingly.

4. Knows when to deviate from the functional specification. Nearly all types of software, be it an update to an existing application or a brand new system, will have some type of functional specification documentation written for it. This document, be it formal or informal, is the guide for the project team as it spells out the scope and goals of the project. A software tester should keep the functional specification in mind while testing; but the tester should also know when to deviate if the functional specification is missing a process that would be done in the "real world". The reason behind this flexibility is that functional specifications can be developed in an unintended ivory tower scenario where managers, executives and programmers design the software but the real world users will use (or not use) in a different way than was intended by the project team. An effective software tester is flexible enough to balance the needs of the project team and the scope and goal of the project with a discerning eye on how the software will meet the end user's needs.

That said, an effective software tester will be able to justify the reasoning behind the testing deviation. This is true even for a public beta test group. If a beta tester is making suggestions for the program that is not part of the goal and scope of the project but cannot justify the suggestion, then the suggestion may be set aside.

5. Willing to listen and learn. A software tester lives in a dynamic world where nothing stays the same because the whole idea of the project is to implement some kind of change. If a software tester is not open to learning new equipment, processes or skills, not to mention work with and listen to new project team members, then the software tester might want to look for another job.

6. Wash, rinse, repeat (aka "vigilant regression testing"). A software tester will go through several process cycles in which there is a lot of repetition to confirm that even after bugs have been fixed, the process as a whole is working as expected. A new release of the software may fix the bugs that have been reported, but as a software tester, I can claim from experience that new bugs on processes that worked on a previous release can appear. This part of testing can be the most tedious, boring, and tiresome stretch in the job, but it is also the most important. An effective software tester must have the patience to run through this "wash, rinse, repeat" process over and over again.

Details on each project may be different. The role of a tester may be change. Requirements on experience and knowledge for the tester may shift before, during and after the project.

Yet qualities for what makes a software tester an effective tester and team member might be the only part of this dynamic job that remains static.

Related Articles