QA, QC and Testing

It is paradoxical that even today in many companies QA = QC = Testing (in some cases the terms QA and QC are used to refer to the final testing before release to the customer). For example, in some software companies the testing servers are often termed as QA/QC servers and one would also hear statements like "can we now ship it to the customer? has the QA /QC been done"?

QA (Quality Assurance), QC (Quality Control) and Testing are different concepts in terms of:
  • The type of activities that are performed under each one of them
    • QA is concerned with adherence to the defined systems and processes 
    • QC is concerned with verification and validation for ensuring the "right thing is being done in the right way" and might include testing
    • Testing is concerned with exposing and observing the behavior of a system in an environment that simulates the actual working conditions at  various levels of abstraction (unit, sub-system, system)
  •  The span of these across the life-cycle
    • QA is uniformly applicable throughout the life of a project on a continuous basis
    • QC is uniformly applicable throughout the life of a project on an intermittent basis
    • Testing starts after a while and keeps on assuming greater significance as the project progresses towards its end
Areas that are traditionally thought to be a part of QA like audits, process, metrics etc. are, in fact, applicable for all three - QA, QC and Testing and other life-cycle activities as well. The only difference in QA and other life-cycle activities is that others follow the process/metrics but the QA guys facilitate the defintion/implementation of these. Of course, QA guys follow their own sets of processes and metrics.

In light of the above it can obviously be concluded that,
QA != QC != Testing.