QA (Quality Assurance) is the term that is most commonly used in the software industry to refer to testing. The truth is that there is a thin line between QA and QC (Quality Control), and people commonly use these terms interchangeably. What is the controversy? Let’s find out here!
Why is testing often called Quality Assurance (QA) in the software industry? When companies look for QA professionals, are they looking for testing services? Wouldn’t they really want a Quality Control (QC) professional, someone more oriented to process quality? Or are they, in fact, looking for a tester with mixed skills? This creates for us, the testers, an identity problem.
There is a very thin line between QA and QC, and people commonly use these terms interchangeably, as if they were referring to the same activity. This confusion is so usual and so much has been said about these terms, that even I began doubting and losing confidence in myself, and all of a sudden, I was not so sure of my understanding of these concepts.
Content related: Software testing: Is the functional tester doomed to disappear?
Due to this, I felt it was my duty to start reading and investigating this subject, and that is why I am writing this article now. I found different definition sources, from Wikipedia, ISO, and NASA, just to name a few, and to my surprise, not all of them were 100% aligned. So, let’s try to reconstruct their definitions and understand their differences together.
Decrypting an enigma
Let’s begin by embracing both concepts under the same term: Quality Management is the act of overseeing all activities and tasks needed to maintain the desired level of excellence of the product, service, or customer satisfaction, and at the same time, it allows us to control processes to obtain a more consistent quality. We are now in a better position to break down Quality Management into Quality Assurance and Quality Control.
Quality Assurance (QA) is process-oriented and is a prevention strategy focused on planning, documenting, and accepting a set of norms needed to ensure quality. QA planning starts at the beginning of the project, and its main goal is to prevent defects appearing in the end product. It is a management measure. Hence, we can all agree that including QA at the beginning of a project is an important tool to mitigate the risks identified during the analysis phase.
Quality Control is, by contrast, product-oriented and is a defect detection strategy via the inspection and experimentation of the product. QC is a reactive measure through which quality is controlled.
Then, what is testing? In a few words, it is the execution process of a system aimed at finding defects. It is also product oriented.
Testing is the process that measures the quality of a product, it is equivalent to QC, while QA is the process that measures the quality of the processes used to create such product.
What exactly does all this mean? While QA teams help us to prevent defects, testing teams help us to find them. QA guarantees that teams follow the standards established by the organization and makes sure the projects have the quality expected.
We can see the QA as a coordinator, a person who helps teams to work in the most efficient way during all the phases of the development life cycle, assuring a high level of quality while keeping in mind the client’s satisfaction.
I made a brief retrospective of the tasks that our testers are engaged in at Hexacta, and I found that we do not exclusively do QC tasks:
- We have agreed that a QA is a quality assurer, a profile mainly oriented to measuring the quality of the processes used to create a quality product whose functions are systematic measurement, standard comparison, and process monitoring, all functions that are aimed at the prevention of defects during the product development process.
- We also share the point of view that a QC is a quality controller, a profile that is quality-oriented, whose functions include the test plan construction, test case design, test case execution, and test data generation, just to name a few. Having said this, I think that, at least here at Hexacta, we are both QC testers and QA testers, as we do many of the QA tasks.
That is why I think it is important that clients know the differences between these concepts, in order to contract the services that each profile really offers. In fact, in Hexacta, we have our own separate QA area that is in charge of all of the subjects mentioned above and is specifically dedicated to assuring the quality of the processes.
Even when we are usually aligned, this does not mean that our tasks and responsibilities overlap. The aims of each area are different and relate to different phases of the life cycle of the software development process.
Do not miss this: What failed? Everything you need on your test reports
To Sum Up
Now that we know all the differences, despite all that has been discussed about QA and QC and the countless articles written explaining their differences, why are there still companies and people that associate testing software exclusively with QA?
Is it their reluctance to accept the fact that Quality Assurance is more of a marketing term than Quality Control because the term assure is more emphatic than control? How long will we have to live under this misconception? Though there is no doubt, testers –at least in Hexacta– can be QA, depending on the skill, urge, and experience each one has. Let’s be clear, in that case, we would be a QC sharing some skills with QA, but never just QA.
Comments? Contact us for more information. We’ll quickly get back to you with the information you need.