Technical and Software Skills required by Software Testersswtmentor
Technical skills are very important for testers to get greater insight, a greater degree of effectiveness and ability to effectively communicate the failures and defects in system to developers.
A tester with understanding of requirements analysis, design and coding has greater insight into defect life cycle. i.e. they know very well how developers introduce defects in code, which areas of code can have maximum defects and how can they help developers to prevent those kind of defects. A good understanding of requirements enables testers to work with them closely and explain the scenarios that they will be testing in delivered code, once developer knows what a tester is going to test he will make sure all the scenarios are addressed properly in delivered code and less defects will be found in test execution cycle. So, good technical skills of a tester helps in preventing the defects getting introduced in the delivered code by working closely with developers.
If a tester has background in technical support process then he has very good understanding about what type of issues arise in production, and also great visibility for usability and user experience requirements from customers. So these testers can help in preventing those kind of usability and user experience issues in product.
The knowledge of coding helps tester to use tools which requires some coding knowledge. It also helps then to do static code analysis if required, helps them to write scripts for automation testing, unit testing and code reviews of scripts etc. It also helps them to do technical integration testing which requires scripting knowledge and more technical understanding (API testing, XML etc.)
Technical skills are also required if you are planning to do any sort of test automation for the project. As automation activities require good knowledge of some programming language and scripting, so testers who will be doing automation must posses knowledge of programming language and automation frameworks to develop automated test scripts.
Some experts in the testing industry feel that a tester who has lot of technical skills may make him tolerant to defects, as he will be able to find the workaround to bugs, and might not feel it as an issue, because for him, there is workaround to it and software is still behaving as per requirement using that workaround.
Becoming tolerant to defects is not only true with testers who are technically very sound, it is true even with non technical testers who have been working in the project for a while and know all the details about the software, they will also be able to find workarounds to many issues and might feel same way as technical testers. As a test manager your job is to find ways that testers in your team do not become tolerant to defects.