Welcome to the QA section of my website!

This area is for people who are interested in other software quality topics besides just testing. These topics include standards, measurements and metrics, processes, and other software quality-related activities.

What is Quality Assurance?

Quality Assurance (QA) is the management of quality. QA is not testing, although many people commonly call testing "QA".

According to IEEE Standard 12207 for Software Life Cycle Processes:

"The Quality Assurance Process is a process for providing adequate assurance that the software products and processes in the project life cycle conform to their specified requirements and adhere to their established plans. To be unbiased, quality assurance needs to have organizational freedom and authority from persons directly responsible for developing the software product or executing the process in the project. Quality assurance may be internal or external depending on whether evidence of product or process quality is demonstrated to the management of the supplier or the acquirer. Quality assurance may make use of the results of other supporting processes, such as Verification, Validation, Joint Reviews, Audits, and Problem Resolution."

Why is the distinction important?

Okay, so the terminology police are not going to arrest you if you use "QA" instead of "QC" to name your testing efforts. The problem is that the confusion in terms can cause people missing critical pieces of the quality process. Also, since QA is the management of quality, if true QA is not being performed, then little or no management of quality is happening. As I say in my classes, "The pilot of the airliner is in the coach passing out snacks. No one is flying the plane."

Just a few examples of what QA does are:

  • Define standards
  • Determine compliance to standards
  • Design measurements and metrics
  • Determine compliance in keeping measurements and metrics
  • Design processes for all aspects of the software process, including development, testing, configuration management, etc.
  • Facilitate testing
  • Suggest ways to improve processes
  • Facilitate and implement process improvement efforts

One of the major problems with the pure QA definition is that much of the results are hard to see in the short term. QC activities can catch problems that can be seen immediately. It's the problem of when everything is working well, nobody notices.

That's why many QA groups actually perform some level of testing. This becomes a problem when a QA group does a lot of testing (50% of their work or more). I often advise QA teams to make their work as visible and valuable as possible.

Related Articles

Here are several articles that should be on interest to QA professionals:

Related Courses

On this site, you will find the following courses helpful in building your QA skills:

QA Processes

IEEE Standards for Software Engineering

Reviews and Inspections