Technical skills for the tester are often mis-defined as programming skills. Understanding programming terminology and basic programming skills will help any tester to communicate with the programmers. However, it's not absolutely necessary to know how to code, as long as the whole team is committed to completing all testing activities for each new piece of functionality. An open-minded attitude and a willingness to learn are the main skills that testers need to be productive development team members. With some training, and with time and support from the entire development team, any tester with the right attitude will learn the necessary practices and principles to keep the project on track.
What do we mean by this "whole team" commitment? Testers work with programmers to turn their test ideas into automated tests that become part of the regression test suite. The whole team becomes responsible for keeping the test suite "running green"; that is, keeping the tests passing. The regression suite (including all unit and functional tests) allows the team to refactor continually to keep the code clean and to minimize technical debt. Testers contribute their specialized skills for developing robust test cases, but the entire team gets involved with designing testable code, automating and executing tests. A team commitment to principles, values, and practices that promote quality will result in well-designed code and keep maintenance costs low. Good test coverage means that changes are easier and faster to implement.