1) Helps with script development
Automation testing does not just happen on its own - it requires carefully crafted scripts to evaluate projects on an established set of conditions. These scripts could be written by programmers, but if a tester has a handle on code, they can easily create these test cases without having to go through red tape or wait for someone else to make it for them. This not only can save a significant amount of time, but can also help the testers place a specific focus on the types of errors that the test should detect.
The scripts will also need to be constantly reevaluated to ensure that they are reusable whenever a change is made to the app project. If the script is outdated or does not have the appropriate conditions, it may not identify critical defects. Ministry of Testing contributor Paul Gerrard noted that coding skills can help develop better scripts and improve an individual's testing capabilities.
"If you are exploring some feature, then having some level of code knowledge could help you to think more deeply about the possible modes (the risks) of failure in software, and there's value in that," Gerrard wrote. "You might make the same assumptions and be blind to some assumptions that the developer made, but you are also more likely to build better mental models and create more insightful tests."
2) Boosts business processes
More organizations are specifically searching for testers who have some experience with coding. This doesn't mean that QA employees have to be experts with the language, but some knowledge is seen as beneficial to helping business operations. According to a survey done by industry veteran Elisabeth Hendrickson, of the 187 jobs evaluated, 112 of them (80 percent) required some level of programming. Thirty-nine additional postings noted that these skills were nice to have. These numbers show just how integral coding is becoming to the role of a tester.
While Hendrickson noted that not all testers are doing test automation, especially with exploratory and analytical testing, basic SQL knowledge can still be a valuable asset to have. Being able to work with the organization's base code will not only help create better products for consumers, but for internal use as well. QA testers with programming skills may be more willing to try a new feature because they have tools that will help ease this transition. Without these skills, it can be more cumbersome to test new elements and identify where errors are occurring.
"Good testers have critical thinking, analytical and investigative skills. They understand risk and have a deep understanding where bugs tend to hide," Hendrickson wrote. "They have excellent communication skills. Most good testers have some measure of technical skill such as system administration, databases, networks, etc. that lends itself to gray box testing."
3) Improves collaboration
In agile environments, testers are being asked to work more closely with programmers and other QA members across their projects. If a tester doesn't have coding skills, it can sometimes seem like they are speaking a different language than developers, limiting potential collaboration opportunities. Methods & Tools contributor Lisa Crispin noted that testers are often skilled at clarifying user requirements and can use this information to understand what the code needs to do. Without programming knowledge, however, planning of this nature is often relegated to developers.
By arming testers with some coding skills, they will be better able to evaluate the program to ensure it's meeting expectations. They can also work more successfully with developers to execute changes and reduce any issues with the overall product.