Software quality assurance (SQA) is the concern of every software engineer to reduce costs and improve product time-to-market. A Software Quality Assurance Plan is not merely another name for a test plan, though test plans are included in an SQA plan. SQA activities are performed on every software project. Use of metrics is an important part of developing a strategy to improve the quality of both software processes and work products.
Software Quality Assurance
Umbrella activity applied throughout the software process
Planned and systematic pattern of actions required to ensure high quality in software
Responsibility of many stakeholders (software engineers, project managers, customers, salespeople, SQA group)
SQA Questions
Does the software adequately meet its quality factors?
Has software development been conducted according to pre-established standards?
Have technical disciplines performed their SQA roles properly?
Quality Assurance Elements
Standards – ensure that standards are adopted and follwed
Reviews and audits – audits are reviews performed by SQA personnel to ensure hat quality guidelines are followed for all software engineering work
Testing – ensure that testing id properly planned and conducted
Error/defect collection and analysis – collects and analyses error and defect data to better understand how errors are introduced and can be eliminated
Changes management – ensures that adequate change management practices have been instituted
Education – takes lead in software process improvement and educational program
Vendor management – suggests specific quality practices vendor should follow and incorporates quality mandates in vendor contracts
Security management – ensures use of appropriate process and technology to achieve desired security level
Safety – responsible for assessing impact of software failure and initiating steps to reduce risk
Risk management – ensures risk management