Understanding the objectives of Quality Assurance, and dealing with the misconceptions as to what Quality Assurance actually means.
What does Quality Assurance Mean?
This is a loaded phrase, and it means many different things to different groups of people.
The most valuable piece of information any software tester can learn is that they themselves cannot Assure Quality.
Go back and reread that last sentence.
Have you done that?
Great. Now go back and read it again.
Quality Assurance is not a department. It is a process an entire company has to practice to actually happen. Software Testers cannot "assure quality". What we can do is:
provide information about quality
inform and alert key individuals that we have found something that concerns us.
if we are sure of the problem, recommend that it be fixed.
Notice the words used there: provide information, inform, alert, investigate, report, recommend
What words are not used?
Words like block, prevent, rewrite, fix, deploy.
Why aren’t they used? Because we who test software rarely, if ever, have the ability to do these things.
Programmers can do these things, as can systems administrators and deployment specialists. Software testers, unless they are the programmers for a particular area, usually do not have the ability to make direct changes. If they cannot make changes, can they rightly say they are able to assure quality? NO!
We can suggest that an issue is significant enough to stop production, but we as testers do not have the final authority as to whether or not a feature gets fixed or doesn’t.
Having said all that, Quality Assurance is a term that is very entrenched in the thoughts and the vocabulary of testing. It’s a short-hand for the things that testers do to help provide information and let programmers and management see and consider what they will do.
We could say that "Q.A." really stands for "Quality Assistance" or "Question and Answer". Those are things that we can control and that we can contribute to the discussion.