Most people get confused when
it comes to pin down the differences among Quality Assurance, Quality Control,
and Testing. Although they are interrelated and to some extent, they can be
considered as same activities, but there exist distinguishing points that set
them apart. The following table lists the points that differentiate QA, QC, and
Testing.
Quality Assurance |
Quality Control |
Testing |
QA includes activities
that ensure the implementation of processes, procedures and standards in
context to verification of developed software and intended requirements. |
It includes activities
that ensure the verification of a developed software with respect to
documented (or not in some cases) requirements. |
It includes activities
that ensure the identification of bugs/error/defects in a software. |
Focuses on processes and
procedures rather than conducting actual testing on the system. |
Focuses on actual testing
by executing the software with an aim to identify bug/defect through
implementation of procedures and process. |
Focuses on actual testing. |
Process-oriented
activities. |
Product-oriented
activities. |
Product-oriented
activities. |
Preventive activities. |
It is a corrective
process. |
It is a preventive
process. |
It is a subset of
Software Test Life Cycle (STLC). |
QC can be considered as
the subset of Quality Assurance. |
Testing is the subset of
Quality Control. |
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 : 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.