Testing in the Iterative Lifecycle

Testing is not a single activity, nor is it a project phase during which we assess quality. If developers are to obtain timely feedback on evolving product quality, testing must occur throughout the lifecycle: We can test the broad functionality of early prototypes ; we can test the stability, coverage, and performance of the architecture while there is still an opportunity to fix it; and we can test the final product to assess its readiness for delivery to customers. The all-too-common viewpoint (arising from the waterfall methodology) that testing is a kind of final check to make sure that everything works misses the main benefit of testing: providing feedback while there is still time (and resources) to do something about it.

Quality

The term quality commonly refers to a number of things: Principally it means the absence of defects, but more important, a fitness for a desired purpose ”something imbued with quality does what we want it to do. A thing can be free from defects, but if it does not do what we need it to do, it is just as useless as a defective product. As Gerald Weinberg puts it, "Quality is value to some person."

The ultimate goal of testing is to assess the quality of the end product and, in doing so, to assess the quality of the components that comprise the product and the architecture that gives form to these components . By means of this assessment, we need to ensure that the product satisfies or exceeds a defined and accepted set of requirements, as assessed by defined and accepted measures and criteria.

Quality cannot be assessed completely in isolation; software is developed by organizations using engineering processes. A poor process, or one that is not followed, can be a significant cause of poor quality. As a result, quality assessments often consider process quality and organizational factors as well as direct product quality.

Product Quality Ownership

Producing a quality product is the responsibility of every member of the project team ”it is not possible for a "quality assurance" organization to ensure quality. If quality is not designed and built into the product from the start, it will not be possible for it to be "added later" through an aggressive quality-assurance effort.

The role of testing is not to assure quality but to assess it and to provide timely feedback so that quality issues can be resolved in a timely and cost-effective manner. The role of the tester is to assess quality and to provide feedback, while the role of the project team is to produce artifacts or work products that meet requirements and quality expectations.

In RUP, the assessment of process quality is not in the scope of the Test discipline but a concern associated with the Environment discipline and the Process Engineering Process (PEP, see Chapter 14).



The Rational Unified Process. An Introduction
Blogosphere: Best of Blogs
ISBN: B0072U14D8
EAN: 2147483647
Year: 2002
Pages: 193

flylib.com © 2008-2017.
If you may any questions please contact us: flylib@qtcs.net