Create a Quality Testing Program
Combining open source tools with modern methodologies gives software testing new life.
by Peter Varhol
Posted June 28, 2004
Testing practices vary widely among organizations and their application development processes. Some organizations, for example, employ highly sophisticated and structured approaches with trained quality assurance (QA) specialists and software tools that measure and track quality with the precision of a moon launch.
But these groups are outnumbered by organizations where testing remains an afterthought, staffed by inexperienced and poorly trained and overworked staffers. These testers are accustomed to development that takes so long, that any and all testing must be done in a single frenzied weekend, manually and without hard quantitative data on how much of the application was tested and how well it did. And management dismisses as too expensive and unnecessary the software tools that the best QA shops take for granted.
It doesn't have to be that way. There's no substitute for experience and training, but some free tools—although they might not fully rival expensive commercial testing products—make it possible to build best practices in the most harried testing shop. In fact, you might be surprised to learn that many highly sophisticated QA operations are built around free and often open source tools.
Consider the activities that typically go into the testing process. At the basic level, they include functional testing, making sure the application meets its requirements, and identifying any errors in operation. In addition, most basic testing requirements include both performance and scalability testing. Performance testing ensures that an application meets its users' response needs, while scalability testing determines its ability to serve a given number of users.
Advanced testing is usually more technical and quantitative in nature, and its results are often able to provide the application developers with actionable information on how to improve quality and performance. More technically inclined professionals who can write test code in a native programming language or script typically conduct advanced testing. The goal is to find more subtle problems than functional errors, and to work side by side with developers in analyzing those errors.
In both types of testing, it's critical for the testers and the corresponding development team to have clear and unambiguous lines of communication. In particular, a development team should see the same data as the testers, be able to confirm the findings of QA easily, and have the ability to drill down into the data to do a deeper level of diagnosis. So the same tools should be useful to both groups.
Back to top