Presenting the Top 10 qualities required of a Software Testing professional aka Software Tester.
Software Testers need to like exploring and discovering. Software Testers should be curious about everything and display keenness in understanding the why and how of products, their interactions, dependencies and their ecosystem in totality. Testers are required to venture beyond the realms of the tried and known, to discover what lies beyond. Installing new software builds, experimenting, seeking to better understand the software and break it – should come naturally to a tester.
2. Detail oriented and Thorough
Software Testing requires discipline and systematic approach. It is important for testers to be able to pay attention to details and be thorough. While testers should want to explore and experiment, they must also be sure to not leave any gaps in test coverage. Ensuring that all requirements and areas are thoroughly tested is important. Having an eye for detail in testing would also mean looking out for oddities and incorrect behaviors in the application being tested. What might seem like a small, insignificant or even irregular occurrence may be the harbinger of much larger issues. It pays to scrutinize each issue thoroughly.
Testers should be good at helping root-cause issues. Being good at finding out why something does not work is a useful tester attribute to possess. Testers should be able to narrow down the conditions that cause an issue and help identify or at least suggest causes for issues observed. A detailed bug report that lists the issue, narrowed-down steps to reproduce, as well as probable cause along with relevant details can help developers address issues faster and better. Also, being able to find out why something does not work can point to more issues lurking around or areas that may need more testing. A tester's job is not just about executing a standard set of tests and reporting any failures.
Testers must keep at testing, exploring and trying to unearth issues. Bugs may appear intermittently or under certain conditions. Testers should not ignore or give up, but instead try different scenes to reproduce the issue. Software Testers must also realize that all products have bugs. If a product looks to be free of bugs, it just needs more testing to find issues that current tests have not looked at. Testers should always be in the pursuit of bugs and view every defect found by a customer as a slip or gap in their tests which must be addressed immediately.
Software Testing is an art. It is not enough to test for the obvious. Finding bugs requires creativity and out-of-the-box thinking in testing. Software Testing must be among the most creative of professions. Lets make a fairly simplistic comparison between testing software and software development – which is considered to be a creative endeavor, which discipline needs more creativity? Is it to introduce defects or find defects? While the example is a bit crude, the idea is that it is harder to find defects when you do not what and how many defects exist. It requires a high degree of creativity to discover defects in Software.
6. Flexible Perfectionists
Software Testing requires the pursuit of perfection. However, the pursuit of perfection must be tempted with flexibility. There are times when perfection may not be attainable or even be feasible. Testers whilst seeking perfection, should adapt a certain degree of flexibility when perfection is not an ideal goal to seek. As an example, when testers report bugs, they must also pursue a fix for the bug. Now, a fix need not just mean fixing the software. It could have been a statement in the release notes or other documentation that highlights the defect as a known and open issue; it could be a case of marketing toning down its spiel or enlightening customers about the potential issue – in the real world, it may not be possible to fix every defect that testers want fixed. Being able to prioritize and pick your battles appropriately, knowing when to give in and when to stick to your guns is important.
7. Good Judgment
There's a saying, good judgment results from experience and experience results from bad judgment! Good judgment when combined with the other tester skills, makes for successful software testing efforts. Judgment involves tasks such as deciding on what to test, how much to test, estimating the time it would take to test and taking a call if an issue is really a defect or if a bug is worthy of defect pursuit. Using judgment to determine the extent of testing to be performed involves comparison of the current project with past projects for estimating the quantum of risk. While this trait can produce results, it results from experience and knowledge gained over time and across projects.
8. Tact and Diplomacy
Software Testing involves providing information and often we carry "bad news". An important part of the testing job is telling developers that their code is defective, highlighting the issue and possible causes. At a human level, it is like telling a parent that their baby is ugly. Contrary to popular belief that testers and developers must be at loggerheads, Software testers need to have a good working relationship with developers. Co-operation between both functions is key to producing a quality software product. Tact and diplomacy is important to both convey bad news, follow up for fixes and maintain cordial relations. Successful testers know how to do the balancing act and deal with developers tactfully and professionally even in cases where the other party is not very diplomatic.
This trait continues from the previously mentioned trait – tact and diplomacy. Once the tester breaks the news about issues in the code, a range of reactions can arise. One of the likely reactions to bugs that testers report could be that the reported issue is categorized as not being important / sufficient enough to warrant a fix. Bugs may be re-prioritized and downgraded or deferred to a later time frame or be documented as an open issue. Just because the tester thinks a bug must be fixed does not mean that developers will agree and jump on fixing it. If a bug needs fixing, testers must be persuasive and clearly state the reasons for requiring a fix in a specified time frame. In case of a stalemate, communicating effectively to quakeholders and getting their inputs may also be required. Persuasion goes hand-in-hand with the other exercises mentioned earlier, to ensure issues are addressed appropriately.
10. Testing is in the DNA
Finally, Software Testers never really stop testing. Testing does not end when all the current set of test cases are completed or specifications covered. Testers continue evaluating the product in ways that may not be covered in the requirements or specifications. Testers think of testing all the time, figuring out new ways to break software.