It is a bit ironic, yesterday I answered a question related to this topic that was marked to be good and today I’m the one who asks. These are my thoughts and a question:
Also let’s agree on the terms: QA is a set of activities that defines and implements processes during SW development. The common tool is the process audit. However, my colleague at work agrees with the opinion that reviews and inspections are also quality assurance tools, although most sources classify them as quality control.
I would say both sides are partially right: during inspections, we evaluate a physical product (clearly QC) but we see it as a white box so we can check its compliance with set processes (QA). Do you think it is the reason of the dichotomy among the authors? I know it is more like an academic question but it deserves the answer 🙂
To my experience, there is a difference between the academic or Wikipedia definition of QA, and the way the term is used in the real world. In the real world, QA, especially software QA, is most times used synonymously with “testing”, and in many companies the “QA team” is nothing than a test team. That is clearly not the definition you have in mind.
However, having worked some years in that field, I have also seen often “QA” to be meant as a generic term for all kinds of activities to ensure quality in a production process. This can be testing activities (which you would call a QC activity), constructive measures (like using the right tools for the job), or measures to inspect and improve the production process itself. By this use of term “QA”, quality control is just a subset of QA.
Of course, QM systems like ISO 9000 focus only on the quality of the process, and probably your definition of QA here was inspired by a system like that. But that does not mean that this is the “only true definition” of QA; there are different definitions used in literature and between different kind of people. If I were you, I would learn to live with that. Just listen carefully when someone uses the term QA, which of the various possible definitions he has in mind.
3
Personally, I think worrying about the distinction between quality control and quality assurance means you’re more concerned about process than producing quality code. Frankly, the distinction between the words doesn’t really matter.
All of the activities that relate to helping prevent defects and all of the activities that help catch defects before they go out the door are all related to quality. Call it “assurance”, call it “control”, it’s really all the same.
2