In the software world, QA means monitoring software development processes to ensure quality, and
often involves ensuring compliance to standards such as ISO 9000 or CMMI (Capability Maturity Model
Integration). Both of these approaches give developers and systems integrators a framework to guide
process improvement for virtually any type of project.
Regardless of the method used, quality assurance is an ongoing process – starting before a project
begins and continuing even after it’s complete. For a software designer, quality assurance might
encompass careful advance planning and design before any code is written, a comprehensive process
for making and documenting changes, and a detailed QA testing methodology to flush out any defects in
the product so they can be corrected before release.
According to Bender, it’s about shifting from a focus on defect detection to a focus on defect
prevention. Bender notes that the requirements-based testing process addresses two major issues: first,
validating that the requirements are correct, complete, unambiguous and logically consistent; and
second, designing a necessary and sufficient set of test cases from those requirements to ensure that
the design and code fully meet those requirements.1
The overall requirements-based testing strategy, Bender notes, is to integrate testing throughout the
development lifecycle and focus on the quality of the requirements specification. This leads to early