Take the 2-minute tour ×
Programmers Stack Exchange is a question and answer site for professional programmers interested in conceptual questions about software development. It's 100% free, no registration required.

Studying this subject extensively, the most books state the following:

  • Quality Assurance: prevention activity. Act of inspection, reviewing..
  • Quality Control: testing

While there are some exceptions that mention that QA deals with just processes (planning, strategy, standard application etc.) which is IMHO much closer to real QA, yet I cannot find any good reference in Google Books.

I believe that inspections, reviews, testing is all quality control as it is about checking products, no matter if it is the final one or work products. The problem is that so many authors do not agree.

I would be grateful for detailed explanation, ideally with a reference.

share|improve this question

3 Answers 3

up vote 4 down vote accepted
  • Quality Assurance is process compliance. It has nothing to do with testing, except for its planning. QA personnel will decide what test methodology to use, how to test, who will test, how to report. It checks that processes being used on the project are appropriate, correctly implemented (standards, procedures, conventions). It says what we should do in order to make a quality product.
  • Quality Control is about checking the output, which is any work product produced by any process. This means that QC checks for conformance with specifications, standards...

Saying that QA tools are reviews and inspections is misguided. These activities need an output that has been done as a result of a process: so it is just a quality control (static, dynamic or both).

Quality Control also belongs within the Quality Assurance domain (it is driven by it and provides a feedback), hence testing is sometimes said to be QA (actually it can be thought as of one indirect QA activity).

EDIT: I would add that both are part of Quality Management. I would not agree that Quality Assurance overisghts verification as QA defines and measureses only processes. Verification is checking product by static methods, hence it is Quality Control. But I concur that the gray area is really confusing and enables a lot of possible intepretations.

share|improve this answer
    
From my experience, this is probably a more formal view of the actors and their stories. In an industry-wide view of how it is applied, its probably blurred a bit to where there is little distinction. The distinction is probably more industry prevelant when more tangible, physical products are involved; or when adopting engineering-like standards for development like CMM or ISO9000/9001 etc. Depending on scale, and process certification aims, the distinction may be superficial; in practice though, someone with an SQA hat does vastly different things than a product tester or build master. –  JustinC Nov 21 '12 at 21:23
    
Of course this is meant for software development only. I do not know how it is in other industry branches. –  user970696 Nov 21 '12 at 21:28
    
Indication of other industries was more of acknowledgement that for some organizations there is a great deal of overlap among what they produce. Groups that produce hardware (and associated control/interface software), or provisioning systems/services, or are highly regulated (health care, finance, energy, defense) will probably encounter a greater stringency for an 'engineered' manufacturing-based outlook to QA, while groups who are public web-dev/e-com oriented (for example) might not see that same push. –  JustinC Nov 21 '12 at 21:40

I think this is an artificial distinction. Inspection, reviewing, and testing are all activities designed to ensure quality of the product.

On the other hand, it may be meaningful to categorize these activities based on who performs them. In software development unit tests and code reviews are typically done by developers, while manual testing and possibly integration testing are typically done by QA people (aka Quality Engineers, aka testers, etc.). However, there are always exceptions: you may have QA people who help write unit tests, or you may have developers running manual tests. Also, if you have an extensive test infrastructure (e. g. dedicated machines, a complex build system, etc.) you might have people whose job is to maintain it. Also, companies who can afford it often have usability specialists who help design and test user interfaces.

So, IMHO, QA, QC, and even "quality engineering" refer to the same thing, and trying to split hairs and come up with fine distinctions here is a waste of time.

share|improve this answer
    
I disagree. QA and QC are entirely different, QA makes sure you follow standards, processes and does not care about the actual outputs while QC just checks the outputs and checks whether or not they fulfill the requireemnt. Tester is not a QA person as testing is not QA - it mearues the quality, it does not assure it in any way. –  user970696 Nov 21 '12 at 14:55
    
@user970696 Sorry, I still think this is splitting hairs. If you have a large company and you need to organize people into departments, this may be a valid way to do it. However, typically it is the developers (or their direct superiors) who set the standards and processes, and it is the QA who are in charge of testing. So far I have not heard of a software company with both a QA and a QC department. –  Dima Nov 21 '12 at 15:00
    
Well, saying that testing is QA is plain wrong. It is related, it can be embraced under QC (as QC belongs under QA in the broader sense) but QA people do not test anything, they develop stategies, select standards to follow and do the audit. This might help you to see the crucial difference: sqa.net/softwarequalitycontrol.html –  user970696 Nov 21 '12 at 15:05
    
@user970696 This may be a useful definition, but it is by no means universal. I have worked as a tester and my official title was "QA". I have worked in companies which had QA departments which did testing. I have also worked in a company that has a "quality engineering" department, whose members write tests and maintain the test infrastructure. You can argue ad nauseam that all these companies are wrong in their use of terminology, but that's like arguing about tomato vs. tomahto. –  Dima Nov 21 '12 at 15:34
    
Yeah, it is pretty well known that this confusion is really widespread. I have been working for large companies (20 000+) and there was always a difference between a QA person and a tester. –  user970696 Nov 21 '12 at 15:45

In light of your progression of questions, I guess the TL;DR; answer is:

  • Quality Assurance == Oversight of the Verification activity
  • Quality Control == Oversight of the Validation activity

And yes, that is deliberately embracing the ambiguity and grey area between Ver and Val

:-)

share|improve this answer

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.