Many people and organizations are confused about the difference between quality assurance (QA) and quality control (QC). They are closely related, but they are different concepts. Since all three are necessary to effectively manage the risks of developing and maintaining software, it is important to understand the differences.
A little bit of theory
Quality Assurance (QA) — A set of activities aimed at ensuring the quality of the product at all stages of its creation. QA focuses more on processes, their optimization to minimize the number of bugs at the very beginning of product development. QA aims at finding defects in the finished product, to make sure that the product meets the requirements and specifications and is ready for transmission to the user (customer). This is quite effective as all aspects are analyzed at the outset, not when the product is ready and it turns out that it is not convenient to work with it, or it is possible to implement functionality in another way.
Quality control (QC) measures specific project/product results against standards that were defined by customers or end-users. A major activity to inspect and verify the project’s product, defect repair, and measuring whether the quality indicators are improving or not. Quality Control refers to quality-related activities associated with the creation of project deliverables. Quality control is used to verify that deliverables are of acceptable quality and that they are complete and correct. Examples of quality control activities include inspection, deliverable peer reviews and the testing process.
In the ISO 9000 standard, clause 3.2.10 defines Quality Control as:
“A part of quality management focused on fulfilling quality requirements”
Clause 3.2.11 defines Quality Assurance as:
“A part of quality management focused on providing confidence that quality requirements will be fulfilled”
Let’s look at these terms deeper
As it was said before, Quality assurance is a set of measures covering all technological stages of development, release, and operation of any product to ensure the quality of the product. If a little easier, then this is the brain center of decision-making in teams to ensure the quality of products.
The quality assurance process consists of:
- Checks specifications and software requirements.
- Risk assessment.
- Planning tasks to improve product quality.
- Preparation of test documentation (time limit, approach, test plan, the checklist), test environments and data. Compared to QC and testing at this stage, an effective model and sequence of conducting various product tests are being developed, and tools and scenarios are described that will provide the necessary level of functionality coverage.
- Testing and verification of requirements and specifications.
- Product testing process.
- Analysis of test results, reporting, and other acceptance documents
The QA Engineer should understand exactly at what point the tester will connect to the project, and have time to prepare a testing plan, test documentation, environment by this time. In addition, he must have a couple of skills of other team members:
From the marketer — an understanding of the target audience and the market.
From the programmer — at least a superficial understanding of the code and technical limitations for the implementation of the functional.
From PM — a holistic perception of all parts of the project, an understanding of the timing, milestones, and iterations of the project life cycle.
Thus, we found out that QA, in addition, to directly testing and evaluating the quality of a product, is a series of both organizational measures for planning and shaping the approach, and preparatory activities. All this allows achieving a high quality of the product, artifacts and directly the whole process of attracting the testing team.
It should be noted that QC is part of QA. The QC engineer analyzes the test results and is responsible for identifying and eliminating defects in the project. In other words, they are responsible for the results of what the developers or QA Teams have done.
As defined by Investopedia, it is a “process through which a business seeks to ensure that product quality is maintained or improved and manufacturing errors are reduced or eliminated”. This activity is applied to the finished product and performed before the product release. In terms of the manufacturing industry, it is similar to pulling a random item from an assembly line to see if it complies with the technical specs.
Before launching QC, you must define quality standards for the final product. Next, we need to determine the scope of the testing process. For example, in the food industry, it may be several units from a batch that will be accepted for testing. The next step is to analyze statistics in real life. For example, in the mobile communications industry, this is the percentage of units that break down over a certain period of time. Only then can someone decide what further action should be taken. If we are talking about a product that has broken down, it either needs to be repaired or replaced. When it comes to the IT industry, we must save the result of the project development until all defects are eliminated and the final product satisfies the needs of the client.
Ultimately, QC is a continuous process aimed at eliminating defects and providing a quick response to emerging problems.
What do we have?
Here is the comparative table for better understanding:
- QA includes actions that ensure the implementation of processes, procedures, and standards in the context of validating the developed products. QC includes activities that provide verification of the product for documented (or not in some cases) requirements.
- QA focuses on processes and procedures, rather than on actual tests in the system. QC focuses on actual testing, running product to detect errors/defects through the implementation of procedures and processes.
- QA — Process-oriented activities. QC — Product-oriented activities.
- QA — Preventive activity. QC– This is a corrective process.