Tuesday, 22 May 2012

Quality Assurance vs Quality Control


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.