| 
Testing vs. Quality Assurance Print

"What does your Quality Assurance group do?" I have asked many executives. And too often they answer, "QA is responsible for testing our software to ensure it is ready for release." "Anything else?" I push, hoping for more. But usually, the response is little more than, "Well, they manage the defect tracking system. What else would they do?" What more, indeed!

Just as there is much more to Configuration Management than merely doing good version control, Quality Assurance goes far beyond mere testing. Indeed, I have seen companies where the QA group doesn't do testing at all! (That is the purview of the Testing, or Quality Control group.) Their QA groups are responsible for all of the other activities that are necessary to really assure quality.

Quality Control (QC) vs. Quality Assurance (QA)
Testing is a Quality Control function. What is Quality Control? QC includes any activity that examines products to determine if they meet their specifications. As this definition applies to software, the "specification" may be either written specs, or needs as defined by the customer or end users. Not only is testing a QC activity, but so are walkthroughs, reviews, or inspections of work products like requirements, designs, code and documents. If none of these activities is a QA activity, then what do we do in our organization that is QA? Unfortunately, most of us are doing little or no Quality Assurance. QA includes any activity that focuses on ensuring that the needed levels of quality are achieved. In essence, if QC is about detecting defects, the QA is about avoiding them! QA activities include identifying problems so steps can be taken in the future to avoid those same problems. It includes engineering the processes that are used by the team (analysts, developers, testers, writers) so that high quality products can be built efficiently. And it includes ensuring that each team member is performing his or her job consistently and producing consistently good results.

Identifying Improvement Opportunities
Every organization has many opportunities to improve the methods and processes they use. The problem is in identifying what problems need to be fixed, and where it would be most useful to invest in improvement. One of the main functions of Quality Assurance is to use the organization's own data to identify these opportunities. Your organization maintains a treasure trove of data, just waiting to be mined for valuable information. Defect data, development effort data, cost data, and schedule data are can provide useful insights. The QA Analyst searches for patterns of inefficiencies, defects, or other problems. For example, if a certain kind of design flaw comes up consistently during system test, this could indicate the need to improve something earlier in the development process. What needs to be done must be determined by looking at the data from those earlier steps. Maybe a new design methodology would help. Perhaps the designers need to be trained in using the methodology or tools they already have. Maybe the design reviews can be improved. Maybe there are no design reviews being done at all (indicating a opportunity to prevent many kinds of design flaws during test). By identifying the high-value problem areas, the QA Analyst helps to ensure that the organization can produce better quality more efficiently on future projects.

Engineering Effective Processes
Even the most brilliant engineers and the greatest tools can be made ineffective by poor or inconsistent processes. A big focus of Quality Assurance is on the processes that are used by those who produce the project's products, those who verify the correctness of those products, and those who manage the work. Writing a process is a relatively easy task. You simply identify all of the things that must be done, determine where the interdependencies are, and reduce this information into the patterns that each person needs to follow. But if writing a process is easy, writing one that works well is not. Indeed, any initial process description or procedure must be seen as only the starting point for the real process engineering work. Only by monitoring a process as it is used to perform real work can we see where its inefficiencies hide. Both the people who must enact the process and the data that they produce provide the information that the Analyst needs to make a merely adequate process truly effective and efficient. Listening to people's criticisms or suggestions about the process can show the Analyst where improvements can be made. And the data will clearly show where people's effort is being spent, and where mistakes are generated. The first version of a devise or program that an engineer builds is rarely the final product. These initial items are the basis for the ongoing electronic or program engineering work. In the same way, the heart of process engineering lies not in creating that first version of a process, but in refining it until it meets the needs of the organization and the users of the process.

Ensuring Consistency
The last part of Quality Assurance is to ensure that people are doing their work consistently. This part of QA is the closest to Quality Control, but it is still quite different in its focus. Where QC evaluates the product of people's actions, QA evaluates the actions themselves. QC includes reviewing a system design to ensure it satisfies the system requirements and adheres to good Engineering principles. QA includes evaluating the design activities. Was the design methodology executed as expected? Does the Design specification include all of the required information? Was an effective design review performed? Were all of the appropriate players included in the design activities? Some people see this part of QA as enforcement. If someone is not doing their job the "right" way, then they are to be rebuked and forced into compliance. While there is a place for enforcement, it should be a minor role at best. When people avoid doing their job in the prescribed way, it is almost always because they believe that the prescribed way is deficient. The first reaction of a QA analyst to a violation of consistency is to find out why it happens. Why does the person believe he or she knows a better way? What does that person believe to be the best approach? In some cases, that person may have a great idea on which we should capitalize to improve the process. In many cases, people do not understand the value of the steps they are skipping or changing, and so they merely need to be educated. And sometimes it is a matter of showing them that they must do things that do not provide value to them personally in order to make the over-all process work well. When it is determined that the process is indeed appropriate, but that the person chooses to compromise it for whatever reason, only then is enforcement appropriate. This is needed because the effectiveness of the over-all process depends on the compliance of everyone involved.

Start Doing QA Today
At this point, many of us can see that we do little or no Quality Assurance in our organizations. But how do we get started? How do we get out of the rat race of build-and-test, build-and-test? How do we begin to take a step back and look at what we do from a QA perspective? QA is an investment in improving our organization. Once we decide to invest, it is simply a matter of freeing up the resources to make the investment, and deciding on first things to do with them. Start by using your data to find the most troublesome problems, either problems that keep repeating themselves, or those that are most costly. With that sort of problem corrected, you will have the necessary momentum to make QA an integral part of your organization. Quality Control helps us to understand the level of quality that we produced on a project. When we supplement QC with Quality Assurance, we improve the level of quality we will produce on all future projects. That is an investment well worth making!


Alan S. Koch, PMP, author of Agile Software Development: Evaluating the Methods for your Organization, speaks, writes, and consults on effective software development. He is an SEI-Authorized PSP Instructor, and he welcomes your feedback and questions; send e-mail to Road2Quality@ASKProcess.com. Visit http://www.askprocess.com/ to learn how to improve the return on your software investment by focusing on the quality of both your software products and the processes you use to development them.

 

Trackback(0)
Comments (15)add comment
Paul (spistuff.blogspot.com): ...
These terms are rarely used properly even by the best-known software process consultants. Good article! let's spread the word.

Paul (PPQA auditor)
1

report abuse
vote down
vote up
December 06, 2007
Votes: +0
Alan S Koch: ...
On 24 Apr, Anon wrote:
> But I wish ...

You don't see much written about the failures because both the subject companies and their consultants are loathe to advertise the projects that were not resounding successes! But, we "process improvement" types are very careful to learn from the failures we observe, and there are a plethora of good process improvement models out there that are based on the analysis you suggest.

> I have a suspicion that process improvement is a much more difficult thing
> than the authors of process-improvement articles would want you to believe.

Yes and no. It all boils down to why the PI project was attempted in the first place. Most failures occur when the company is required to "do" PI, or achieve some goal (like ISO or CMMI). Unless the light bulb goes on and managers begin to do PI for the "right" reasons, they are unlikely to end up with lasting improvements (my definition of "success").

When the PI effort is started precisely to make things better, they are almost guaranteed to be successful. Yes, some companies are accidentally successful, but even those who wait until things are getting bad can make good progress, because the right reasons facilitate taking the right actions.
2

report abuse
vote down
vote up
April 28, 2007
Votes: +0
anon: ...
I've read an awful lot of "testing vs. process improvement" articles. Sure, it makes sense to split things into testing activities (QC) and process-improvement activities (QA) and discuss how QA is more leveraged and therefore a good investment choice.

But I wish I could read more articles -- perhaps case studies or summaries of case studies or something along those lines -- that discuss software projects where process-improvement efforts succeeded and failed in practice. Maybe, from reading enough of these case studies, we could formulate useful models of process improvement and use those models to guide how we actually try to improve the specific process we're working on.

I have a suspicion that process improvement is a much more difficult thing than the authors of process-improvement articles would want you to believe. I have a suspicion that successful software companies either accidentally or intentionally evolved a pretty good process from the start, such that future improvement is a natural and easy thing to do. I suspect that, on most projects, by the time people blink and say "hey, things aren't going so well -- let's start talking process improvement", it is already too late.

I have to admit a bit of a chip on my shoulder about this kind of thing. It seems that too many "process improvement" types don't know enough about the specific process they're working with, to improve it.
3

report abuse
vote down
vote up
April 24, 2007
Votes: +0
Carlos Varela: ...
Outstanding information. With this text I don't need to do any more research on this tricky subject matter. Thank you very much for sharing your knowledge.
cvarelas@avantel.net (PMP)
4

report abuse
vote down
vote up
March 28, 2007
Votes: +0
Alan S Koch: ...
M Thota wrote:
Not sure on the purview of QC. I would expect reviews, audits and inspections of scope, requirements, methodology/process compliance, etc. to be outside QC. These involve stakeholders, end users, architects, etc. Not just QC.

The definition of what is QC is not goverened by *who* is involved. It is a matter of *what* is being done and *when* it is being done relative to the work product being created. Anything that is done after the work product is substantially complete is QC, becuase it is checking the product to assess its quality. (As opposed to QA activities which are done *before* the product is substantially complete.)

M Thota continued:
Monitoring their compliance ought to be a QA responsibility - these are "assurance" activities meant to prevent errors from getting into the system.

Yes. Process compliance audits are regarded as QA activities. Although they happen *as* the product is being created (rather than before), they are not considered to be QC because they do *not* assess the quality of the product; only process compliance. Even when the audit looks at whether appropriate standards were followed, they are still not assessing the quality (goodness) of the product -- only standard compliance.

5

report abuse
vote down
vote up
March 20, 2007
Votes: +0
M Thota: ...
Not sure on the purview of QC. I would expect reviews, audits and inspections of scope, requirements, methodology/process compliance, etc. to be outside QC. These involve stakeholders, end users, architects, etc. Not just QC. Monitoring their compliance ought to be a QA responsibility - these are "assurance" activities meant to prevent errors from getting into the system.
6

report abuse
vote down
vote up
March 20, 2007
Votes: +0
Alan S Koch: ...
Joe Jilini wrote, "... quality control, testing and related activities are there to assure quality are they not?"

That is exactly my point. These activities do *not* assure quality. The only thing they assure is that if the product is of insufficient quality, it will not be released. They *control* quality. For an activity to be considered "assurance", it must preceed whatever is being assured. (Check the dictionary!)
7

report abuse
vote down
vote up
March 15, 2007
Votes: +0
Joe Jilini: ...
I think this guy is totally confused, quality control, testing and related activities are there to assure quality are they not? Duh.
8

report abuse
vote down
vote up
March 14, 2007
Votes: +0
Rob C.: ...
This is a concise, comprehensive, and precise description of Quality Assurance. My experience certainly supports the notion that many organizations think of QC as QA. Additionally, there are some organizations that believe that the QA function is really a component of CM. I will certainly make use of this article to add clarity to discussions and planning in my workplace. Thank you.
9

report abuse
vote down
vote up
March 14, 2007
Votes: -1
Muhammad Ausajah: ...
nice article... thx for sharing your valuable info with us.
10

report abuse
vote down
vote up
March 05, 2007
Votes: +0
SEEMA: ...
Wonderful article, It really enlightens the testers with the fact that they are not the QAs. Thanks again
11

report abuse
vote down
vote up
January 19, 2007
Votes: +0
BN: ...
A very insightful article. thank you
12

report abuse
vote down
vote up
December 16, 2006
Votes: +0
asifkhan75025: ...
good Article
13

report abuse
vote down
vote up
November 20, 2006
Votes: +0
sagar: ...
Indeed the article is very crisp and useful.
14

report abuse
vote down
vote up
November 16, 2006
Votes: +0
Sitab Singh Bhandari: ...
Sir, This is the best description I ever read over the internet. This is the one of the most frequently asked testing question in interview. And most of the tester are not actually aware about the difference between these two term QA vs QC.


Thanks once again for sharing this valuable information.
15

report abuse
vote down
vote up
November 16, 2006
Votes: +0

Write comment
smaller | bigger

security image
Write the displayed characters


busy
 

Video News