In the world of technology, the terms quality control and quality assurance are often tied together as QA/QC. The term gets thrown around as if QA/QC were a packaged deal with no clear distinction between the roles. It has become common shorthand to describe the entire quality evaluation process as QA/QC.
This can be confusing for someone new to (or outside of) the field as there are clear distinctions between the two when it comes to the actual work they do.
If you’re feeling a bit confused about the difference between quality control and quality assurance, this is for you. Here’s a breakdown of some important distinctions between QA/QC.
The Main Way QA and QC Differ
There is one fundamental difference between QA and QC.
Quality Assurance happens during the development stage.
Quality Control happens once development finishes.
QA VS QC
There are five ways to examine the differences between QA/QC. Those are:
- Stage of Development
- Main Focus
- How They Approach Their Work
- Important Skills
- What Happens When Bugs Are Found?
At each stage, you’ll see how QA/QC differ from each other. By the end of this article, you’ll have a clear understanding of which responsibilities belong to quality assurance and which belong to quality control.
Stage of Development
QA starts early in the development cycle.
Certain forms of QA testing, such as static testing, can be performed before software is fully functional.
By working with developers early in the production cycle they can make sure that mistakes made in the beginning don’t become serious problems as development nears completion. QA tests will take place at every stage of development.
QC starts once development finishes.
QC ensures that the developed product meets the standards and specifications outlined. They are product reviewers, and their aim is to keep the defect rate low when the product launches to the public.
Both quality assurance and quality control are concerned with finding bugs and defects. This is why they are often lumped together as QA/QC. However, although they share the same goal, the reason that motivates their work is different.
QA aims to find, predict and prevent bugs and inefficiencies in the software development process.
QA teams will often work closely with software developers to help fix any bugs. QA analysts, for instance, will work with an assortment of teams ranging from project managers to development leads, in order to figure out the most optimal way to develop the product.
QA is proactive.
QC is concerned with finding bugs and defects in the finished software. They make sure none of the developers or QA analysts or QA testers missed anything.
Quality control is a fundamentally reactive process, as it happens too late in the software cycle to suggest fixes to developers.
How QA/QC Approach Their Work
QA is a proactive approach to finding bugs and inefficiencies.
The QA team often tries to figure out ways to maximize the process and development and testing. QA teams will use methodologies like the Capability Maturity Model Integration (CCMI), which breaks down an organization into several areas and ascribes a number between 1 and 5 to determine that area’s maturity.
By using an approach like the CCMI, QA analysts can identify ways to maximize efficiency and control outcomes.
QC’s reactive approach to catching and findings bugs means they employ different methods to do their job.
QC is hugely concerned with thoroughness. They also play the percentages. QC will have what’s called an acceptable quality limit, which is the percentage of products that are allowed to fail inspection. For most jobs, the acceptable quality limit looks like this:
- Critical Defects: 0%
- Major Defects: 2.5%
- Minor Defects: 4%
That means it’s the job of the QC team to guarantee that none of the products about to be released are going to fail catastrophically.
What Happens When QA/QC Find Bugs?
If a QA tester finds a bug in the software, they’ll document their findings, including how to reproduce the bug, and report it to the development team.
From there, the development team will fix the problem and send it back to QA for further testing. A QA tester is in constant communication with development. Documentation is necessary to tell the developers where a mistake was made and how to fix it.
A QA tester's biggest fear is a bug that was within their testing scope making it to production. They are the buffer between development and production.
By the time QC begins testing for bugs, the product is finished and almost ready to be launched.
The QC team will collect data, such as the percentage of units that fail, and report those results to management. What happens next depends on the results of their tests.
If the defect rate of the software is high, they may call a meeting to put together a plan to improve the production process (this is really the last thing a quality assurance team wants to happen).
Most of the time, if the product is within the acceptable quality limit, the quality control team will offer benefits to any customer having repeated problems.
Quality control is often the buffer between production and the customer.
QA testers must have a strong understanding of popular programming languages. Five important languages are:
Not only that, but they need to know how to use popular QA tools (such as Selenium).
A QA tester needs to have a demonstrated ability to execute test cases and document their findings in an easily understandable way. A QA analyst, though good at executing test cases, must also be good at writing them.
Because the QA team is in constant conversation with developers, QA testers' ability to communicate clearly and precisely is also important.
QC members must have a firm understanding of the seven key QC strategies. Those strategies are:
- Stratification: separates data that’s been gathered from multiple sources so that patterns are unveiled.
- Histogram: A common graph used for showing frequency distributions.
- Check Sheet:
- Cause-and-effect diagram: Organizes ideas and helps reveal relationships between potential causes.
- Pareto chart: Prioritizes the factors that are having the biggest impact on the problem.
- Scatter diagram: Helps visualize the relationship between variables.
- Control chart: Investigates the variation in a process over the course of time.
Additionally, QC needs to be able to gather accurate data samples to make sure the product meets the acceptable quality limit.
Understanding the Difference
There are a lot of terms and roles when it comes to testing. Sometimes things get lumped together and the distinctions become unclear. Do you have a better understanding of the differences between QA and QC? Let me know in the comments!