SQA is a concept that spans across the entire software development process. It focuses on improving the process of development of software so that problems can be prevented before they become a major issue. SQA also involves continuous monitoring of the process and making sure those agreed-upon standards and procedures are followed all along in the development process. It is the process of providing adequate assurance (to clients, senior management and other stakeholders) on (quality of) the process followed in the development of software (so that all concerned are satisfied about the fact that the plans laid out for development have been adhered to and that the software as developed conforms to specifications).
Since SQA can also be considered a’ a process for monitoring oversight in the development process, its activities have to be unbiased and the SQA team needs to given freedom and authority. SQA may be internal or external as per agreed terms. Quality assurance usually also uses date from other supporting processes, like verification & validation, joint reviews, and audits.
The SQA process usually consists of the following tasks:
- Process implementation: In this task, the design team in consultation with the development team and the SQA team prepares a (quality assurance) process for the development of the software (project). This process is then synchronized with the related verification and validation, joint review, and audit processes that run concurrently. A plan is then prepared for the quality assurance process activities/tasks, which is documented and stored (for the life of the contract of the project).
- Product assurance: In this task, all plans and tasks are documented including their execution so that one can assure that all contractual obligations have been fulfilled.
- Process assurance: In this task, assurance is provided that the software (project) process complies with all the provisions of the contract and the plans for the process of development.
- Assurance of quality systems: In this task, the SQA team monitors the development process and measures parameters of the software (project), based on which a decision on the assurance of the software is provided.
SQA has a host of benefits. It ensures that that software built as per SQA procedures are of specified quality. SOA helps to
- Eliminate errors when they are still inexpensive to correct
- Improves the quality of the software
- Improving the process of creating software
- Create a mature software process
The SQA plan
The SQA plan is a document that specifies the process to be followed in each step of the software development and the procedures to be followed in each activity of such a process. The objective of SQA plan is to ensure that the development of the software is based on a course of action and that from time to time the development can be measured controlled and monitored with respect to such a course of action-so that the end product is as per the specifications. The plan is governed by several quality standards, policies and models such as IS09000, SEI CMM and Baldrige.