There
is often confusion in the IT industry regarding the difference between quality
control and quality assurance. Many “quality assurance” groups, in fact,
practice quality control. Quality methods can be segmented into two categories:
preventive methods and detective methods.
Quality has two working definitions:
Producer’s
Viewpoint – The quality of the product meets the
requirements
Customer’s
Viewpoint – The quality of the product is “fit
for use” or meets the customer’s needs
There
are many “products” produced from the software development process in addition
to the software itself, including requirements, design documents, data models,
GUI screens, programs, and so on. To ensure that these products meet both
requirements and user needs, both quality assurance and quality control are
necessary.
Quality
Assurance
Is a planned and systematic set of
activities necessary to provide adequate confidence that products and services
will conform to specified requirements and meet user needs.
Quality
assurance is a staff function, responsible for implementing the quality policy
defined through the development and continuous improvement of software
development processes.
Quality
assurance is an activity that establishes and evaluates the processes that
produce products.
If
there is no need for process, there is no role for quality assurance. For
example, quality assurance activities in an IT environment would determine the
need for, acquire, or help install:
- System development methodologies
- Estimation processes
- System maintenance processes
- Requirements definition processes
- Testing processes and standards
Once
installed, quality assurance would measure these processes to identify
weaknesses, and then correct those weaknesses to continually improve the
process.
Quality Control
Is the process by which product quality is compared with
applicable standards, and the action taken when non-conformance is detected.
Quality control is a line function, and the work is done within a process to
ensure that the work product conforms to standards and requirements.
Quality
control activities focus on identifying defects in the actual products
produced. These activities begin at the start of the software development
process with reviews of requirements, and continue until all application
testing is complete.
It
is possible to have quality control without quality assurance. For example, a
test team may be in place to conduct system testing at the end of development,
regardless of whether that system is produced using a software development
methodology.
The
following statements help differentiate quality control from quality assurance:
- Quality control relates to a specific product or service.
- Quality control verifies whether specific attribute(s) are in, or are not in, a specific product or service.
- Quality control identifies defects for the primary purpose of correcting defects.
- Quality control is the responsibility of the team/worker.
- Quality control is concerned with a specific product.
- Quality assurance helps establish processes.
- Quality assurance sets up measurement programs to evaluate processes.
- Quality assurance identifies weaknesses in processes and improves them.
- Quality assurance is a management responsibility, frequently performed by a staff function.
- Quality assurance is concerned with all of the products that will ever be produced by a process.
- Quality assurance is sometimes called quality control over quality control because it evaluates whether quality control is working.
- Quality assurance personnel should not ever perform quality control unless it is to validate quality control.