Testing, Quality Assurance,and Quality Control
QA includes activities that ensure the implementation of processes, procedures and standards in context to verification of developed software and intended requirements. … Focuses on processes and procedures rather than conducting actual testing on the system.
QA is a process, while testing is an activity embedded within QC. While the goal of QA and QC is to have a quality product at the end, both use different approaches and tools. Other activities that contribute to quality in addition to testing include groomings, plannings, and code reviews.M
Audit and Inspection
Audit − It is a systematic process to determine how the actual testing process is conducted within an organization or a team. Generally, it is an independent examination of processes involved during the testing of a software. As per IEEE, it is a review of documented processes that organizations implement and follow. Types of audit include Legal Compliance Audit, Internal Audit, and System Audit.
Inspection − It is a formal technique that involves formal or informal technical reviews of any artifact by identifying any error or gap. As per IEEE94, inspection is a formal evaluation technique in which software requirements, designs, or codes are examined in detail by a person or a group other than the author to detect faults, violations of development standards, and other problems.
Formal inspection meetings may include the following processes: Planning, Overview Preparation, Inspection Meeting, Rework, and Follow-up.
Testing and Debugging
Testing − It involves identifying bug/error/defect in a software without correcting it. Normally professionals with a quality assurance background are involved in bugs identification. Testing is performed in the testing phase.
Debugging − It involves identifying, isolating, and fixing the problems/bugs. Developers who code the software conduct debugging upon encountering an error in the code. Debugging is a part of White Box Testing or Unit Testing. Debugging can be performed in the development phase while conducting Unit Testing or in phases while fixing the reported bugs.
SOFTWARE QUALITY ASSURANCE (SQA) is a set of activities for ensuring quality in software engineering processes that ultimately results, or at least gives confidence, in the quality of software products.
Definition by ISTQB
quality assurance: Part of quality management focused on providing confidence that quality requirements will be fulfilled.
SQA includes the following activities:
- Process definition
- Process training
- Process implementation
- Process audit
- SQA Processes
SQA includes the following processes:
- Project Management
- Project Estimation
- Configuration Management
- Requirements Management
- Software Design
- Software Development
- Software Testing
- Software Deployment
- Software Maintenance
Software Quality Assurance encompasses the entire software development life cycle and the goal is to ensure that the development and maintenance processes are continuously improved to produce products that meet specifications. Note that the scope of Quality is NOT limited to just Software Testing. For example, how well the requirements are stated and managed matters a lot!
Once the processes have been defined and implemented, Quality Assurance has responsibility of identifying weaknesses in the processes and correcting those weaknesses to continually improve the processes.
Capability Maturity Model Integration (CMMI) and ISO 9000 are some quality management systems that are widely used.
The process of Software Quality Control (SQC) is also governed by Software Quality Assurance (SQA). Read Differences between Software Quality Assurance and Software Quality Control.
SQA is generally shortened to just QA.
Did you skip to this section because you were too lazy to read or do you want a recap?