How to Develop Effective Application Test Teams
When it comes to software testing, the right test team can sometimes mean the difference between a good application and a bad application with security or code problems. IT managers often wonder if it's wise to use junior programmers or whether or not users or business analysts should play a role in testing. Here, Knowledge Center contributor Rex Black explains how to determine the testing skills required for your project, how to find true professional testers, and how to automate the testing.
In my previous Knowledge Center articles, I've talked about quality in the data center and how to set quality goals. I've mentioned that testing is important to achieving quality. As with any other activity, a major element of doing testing well is using the right people. The right test team can sometimes mean the difference between a good application and a bad application-with serious security, performance or reliability problems. So let's look at how you can develop a test team that can help you achieve your quality goals in an effective and efficient manner.
I'll start with how not to develop a test team. Many IT managers-especially those who have never seen professional testing-assume anyone can do it. They try to get the job done with junior programmers, users or business analysts. While these people have a role to play, by themselves they do a poor job of testing.
For example, a professional, trained test team typically finds over 85 percent of the bugs in the software that they test. Users, business analysts and programmers are lucky to find 40 percent of the bugs. So, while we need programmers to unit test the code they write (and users and business analysts to acceptance test the applications as they go into production), most of the system testing should be done by a professional test team.
Skills of professional test teams
What skills should a professional test team have? This varies from project to project, but the skills fall into three groups. First are application domain skills, an understanding of the business problem solved by the application. Second are technical skills, an understanding of the technologies used to build the application. Third are testing skills, which are the skills that testers bring to the quality assurance role that neither programmers, business analysts nor users can bring.
Professional testers know how to analyze risks so that testing focuses on the right things. Professional testers can plan testing in a way that maximizes the value realized from the time and resources invested. Professional testers can apply test design techniques to find bugs that would otherwise slip past most people.
True professional testers can be hard to find, so you might decide to develop your own team around a core of one or two senior testers. This is certainly a strategy that can succeed and many have succeeded with it. There are companies that offer a wide range of training programs for testers throughout their career arc, from entry-level to seasoned expert.
As with other professions, there are also mature, globally-recognized certifications available for testers. The best and most widely-accepted of these certifications is from the International Software Testing Qualifications Board. It offers Foundation and Advanced certifications as a way to measure progress towards professionalism throughout the tester's career-through objective, vendor-independent exams.