Software Quality Assurance (SQA) is a formal process for evaluating and documenting the quality of the work products produced during each stage of the Software Development Lifecycle (SDLC). The primary objective of the SQA process is to ensure the production of high-quality work products according to stated requirements and established standards.
Software quality assurance (SQA) consists of a means of monitoring the software engineering processes and methods used to ensure quality. The methods by which this is accomplished are many and varied, and may include ensuring conformance to one or more standards, such as ISO 9000 or a model such as CMMI.
SQA encompasses the entire software development process, which includes processes such as requirements definition, software design, coding, source code control, code reviews, change management, configuration management, testing, release management, and product integration. SQA is organized into goals, commitments, abilities, activities, measurements, and verifications.The American Society for Quality offers a Certified Software Quality Engineer (CSQE) certification with exams held a minimum of twice a year.
The methodology presented here is based on the Software Engineering Institute's (SEI) Capability Maturity Model (CMM) and the Institute for Electrical and Electronics Engineers (IEEE) standards for Information Management. This SQA process:
Verification:The process of determining whether or not the products of a given stage of the software development life cycle fulfill the requirements established during the previous stage.
Validation:The process of evaluating software at the end of the software development process to ensure compliance with software requirements.
"Quality" refers to all the good things that we would like to see in our product. We build a quality product and assure its quality by keeping quality in mind all the time and performing the selected activities below. Testing is one QA activity, but it is not the best or only one, other QA activities include the use of style guides and checklists, review meetings, use of analysis tools, and careful quality measurements and estimates. A plan is needed to select and coordinate all the QA activities.
Clearly, there are marked differences between quality guarantee and quality control. Assurance of quality is a set of preventive activities, which are focused on processes whereas quality control is a detection activity, which is focused on detecting the defects once the product is manufactured. Assurance defines the standards to be followed in order to meet the customer requirements whereas quality control ensures that these defined standards are followed at every step. This is done by conducting various tests and checks. Based on these tests and checks, the quality control prepares regular reports that act as an input to the assurance of quality department which then reviews the same and decides on the corrective and preventive actions required in the processes.
Despite the differences in the definition of quality assurance and quality control, these terms are often used interchangeably. But whatever you term it as, the importance of both cannot be undermined. Quality guarantee department develops all the planning processes and procedures that try to make sure that the products manufactured by the organization or the service delivered by the organizations will always be of good quality. Despite all these, some process parameters cannot be controlled and here is where quality control comes into picture. They check the products or services for the defects that happen due to these parameters and hence help quality control in achieving the overall objective of providing a defect-free product or service to the customers. So whether you call it assurance or control, quality is the goal.