Software quality assurance (SQA) is a process that ensures that developed software meets
and complies with defined or standardized quality specifications. SQA is an ongoing
process within the software development life cycle (SDLC) that routinely checks the
developed software to ensure it meets desired quality measures. SQA helps ensure the
development of high-quality software. SQA practices are implemented in most types of
software development, regardless of the underlying software development model being
used. In a broader sense, SQA incorporates and implements software testing
methodologies to test software. Rather than checking for quality after completion, SQA
processes test for quality in each phase of development until the software is complete.
With SQA, the software development process moves into the next phase only once the
current/previous phase complies with the required quality standards.
SQA generally works on one or more industry standards that help in building software
quality guidelines and implementation strategies. These standards include the ISO 9000
and capability maturity model integration (CMMI).
Software quality assurance is composed of a variety of tasks associated with two different
constituencies - the software engineers who do technical work and an SQA group that has
responsibility for quality assurance planning, oversight, record keeping, analysis, and
reporting. Software engineers address quality (and perform quality assurance and quality
control activities) by applying solid technical methods and measures, conducting formal
technical reviews, and performing well-planned software testing.