This is a guest post by Meenal Balajiwale.
“If QA (Quality Assurance) is done then why do we need to perform QC (Quality Control)?”, This thought may come to our minds at times and it seems to be a valid point too. This means, if we have followed all the pre-defined processes, policies & standards correctly and completely then why do we need to perform a round of QC?
In my opinion, QC is required after QA is done. While doing ‘QA’, we define the processes, policies & strategies, establish standards, develop checklists etc. that needs to be used and followed throughout the life cycle of a project. And while doing QC we follow all those defined processes, standards and policies that we laid down in QA to make sure that the project is maintaining high quality and the final outcome of the project at least meets the customer’s expectations.
QC looks at the end of the line while QA looks further down the line. QC aims at detecting & correcting the issues while QA aims at preventing the issues to occur.
QA does not assure quality, rather it creates and ensures the processes are being followed to assure quality. QC does not control quality, rather it measures quality. QC measurement results can be utilized to correct/modify QA processes which can be successfully implemented in new projects as well.
Quality control activities are focused on the deliverable itself. Quality assurance activities are focused on the processes followed to create the deliverable. QA and QC are both part of Quality management and these are the powerful techniques which can be used to ensure that the deliverables are of high quality and meet expectations of the customers.
When we talk about the software testing, it falls in the domain of quality control because it focuses on the product or application. We test the quality in order to control it. Furthermore, quality assurance makes sure that we are doing the testing in the right way.
E.g.: Suppose we need to use an Issue tracking system to log the bugs during the testing of a web application. QA would include defining the standard for adding a bug and what all details should be there in a bug like a summary of the issue, where it is observed, steps to reproduce the bugs, screenshots etc. This is a process to create a deliverable called ‘bug–report’. When a bug is actually added in issue tracking system based on these standards then that bug report is our deliverable. This activity is a part of QA process.
Now, suppose some time at a later stage of the project, we realize that adding ‘probable root cause’ to the bug based on tester’s analysis would provide some more insight to the Dev team, then we will update our pre-defined process and finally, it will be reflected in our bug reports as well. Adding this extra information in the bug report to support faster & better resolution of the issue is a part of QC Process. So, this is how QC gives its inputs to QA to further improve the QA and final deliverables.
Following is an example of a real-life scenario for QA / QC:
Suppose our team has to work on a completely new technology for an upcoming project. Our team members are new to the technology. So, for that, we need to create a plan for getting the team members trained in the new technology. Based on our knowledge, we need to collect pre-requisites like DOU (Document of Understanding), design document, technical requirement document, functional requirement document, etc. and share these with the team. This would be helpful while working on the new technology and even would be useful for any newcomer in the team. This collection & distribution of documentation and then kicking off the training program is a part of QA process.
Once the training is completed, how can we make sure that the training was successfully done for all the team members? For this purpose, we will have to collect statistics e.g. number of marks the trainees got in each subject and the minimum number of marks expected after completing the training. Also, we can make sure that everybody has taken training in full by verifying the attendance record of the candidates. If the marks scored by candidates are up to the expectations of the trainer/evaluators, then we can say that the training is successful otherwise we will have to improve our process in order to deliver high-quality training. Another way to improve the training process would be collecting feedback from the trainees at the end of the training program. Their feedback will tell us what was good about the training and what are the areas where we can improve the quality of training. So, such activities are a part of QA process.
Hope this explains the difference between QA and QC.
Takeaway: QA & QC both are different from each other and required as part of quality management. They should not be misunderstood as interchangeable terms. QA is process focused while QC is end-product focused.
Quality control is inspecting something (a product or a service) to ensure that it is working fine. If the product or service is not working fine, then the issue needs to be fixed or eliminated in order to meet conformance standards. So, it aims at detecting and correcting issues.
Quality assurance, on the other hand, aims at preventing the issues from occurring in future by improving the process.
To summarize, we can say that Quality assurance does not eliminate the need of Quality control as QC lies at the very core of Quality management.
About Author: Meenal is Team Lead specialized in overall QA process for performing functional, data testing, performance testing and security testing for various projects. She is also worked on Waterfall and Agile models.
I would like all of you to please join this discussion and add more valuable points to it. Thanks.