You have probably heard both the terms Quality Assurance and Quality Control. But did you know that there is a difference between the two? In this post I’ll do a quick description and contrast of the two. For further ready, I recommend ASQ’s The Certified Quality Manager Handbook.


Quality Control (QC)

Let’s start with Quality Control – if you have a testing background, this is probably what you’ve been doing all along. ASQ describes QC as “the operational techniques and activities used to fulfill requirements for quality.” The QC function is a gate-keeper – it prevents defective products or services from being released. In the software arena, QC is a set of validation and verification (or V&V) activities. Don’t fall into the trap of thinking that this just means software testing – it doesn’t. Verification takes place (or should, at least) at every stage of the software development life-cycle and should include reviews, inspections, and walkthroughs.

Quality Assurance (QA)

QA is a bit harder for some to understand, and is frequently incorrectly used to refer to QC activities. ASQ describes QA as “all the planned and systematic activities implemented within the quality system that can be demonstrated to provide confidence that a product or service will fulfill requirements for quality.” Some key words to consider in that definition are planned and systematic. QA takes place throughout the software development life-cycle, and is not limited to verification activities. QA involves consideration of risk, budget, resource plans, and schedules. The primary objectives of QA are: 1) reduce the rate of deliverables that do not meet quality targets, and 2) reduce the costs of meeting quality objectives. Remember, validation and verification costs are high because they normally require re-work. It is much cheaper to identify problems early in the process, improve your overall processes to reduce non-conformity, and/or consider alternative approaches that reduce risk.