Applied Software Project Management

The quality of the software is the responsibility of the entire team. Throughout the entire software project, the team does many things to find and prevent defects. Once the software has been built, it's time to look back and make sure that it meets the requirements. The goal of software testing is to make sure that the product does what the users and stakeholders need it to do. Software testers review the final product to make sure that the initial requirements have been met.

In software testing, quality is defined as "conformance to requirements." Every use case, functional requirement, and other software requirement defines a specific behavior that the software must exhibit. When the software does not behave the way that the requirements say it must behave, that is a defect. This means that your software testers are responsible for figuring out whether the software that was produced by the team behaves in the way that the requirements it was built from say that it should.

Every engineering discipline defines quality in exactly this way. When an auto manufacturer provides a specification to a subcontractor to create a part for a car, that specification contains tolerances for various measurements for that part. When the subcontractor ships a box of those parts back to the manufacturer to be built into the car, any part that does not meet the requirements in the specification is considered defective. And it's exactly the same with softwareany feature that does not meet the requirements in the specification has a defect.

This means that if an organization does not have good requirements engineering practices (see Chapter 6), then it will be very hard to deliver software that fills the users' needs, because the product team does not really know what those needs are. It's not a coincidence that many problems that seem to originate with the software testers are really requirements problems that simply have not been caught yet.

This chapter gives an overview of what testers do in a software organization, and clears up some misconceptions about what they do not do. By putting in place good software testing practices based on solid software requirements specifications, a project manager can help assure the quality of the software.

Категории