Diagnosing Software Testing Problems
There is an old programming saying: "There's no such thing as bug-free software." Many people simply accept that there are quality problems, and that no piece of software is perfect. This is true—but it is also irrelevant. The goal of testing is to make sure that the software does what the users need it to do, not to make sure that it is perfect. (After all, does anyone really know what a "perfect software project" is?) With that in mind, there are real, specific problems that plague many software projects that can be solved by software testing.
Requirements Haven't Been Implemented
When a software team delivers a product that's missing features, the users tend to notice. It seems like this should never happen—aren't there many reviews and checkpoints along the way that ought to prevent it? In fact, the only time when the original requirements are ever checked against the final software is during software testing. And if there is a problem with testing, the most serious symptom is unimplemented requirements.
There are many reasons why requirements do not get implemented. Sometimes a designer or programmer does not understand what's written in the specification, or has a different understanding than what was intended. But sometimes it's simply an oversight. Good review, requirements, and programming practices will help reduce this—instead of missing features, there might only be a few requirements that have rules that are not fully implemented. But ...