Page 180 -
P. 180
T HE 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 soft-
ware 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 require-
ments say it must behave, that is a defect. This means that your software testers are respon-
sible 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 manufac-
turer 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 software—any 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 coinci-
dence 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.
Test Plans and Test Cases
The goal of test planning is to establish the list of tasks that, if performed, will identify all
of the requirements that have not been met in the software. The main work product is the
test plan. There are many standards that can be used for developing test plans. Table 8-1
shows the outline of a typical test plan. (This outline was adapted from IEEE 829, the most
common standard for software test plans.)
172 CHAPTER EIGHT