Difference Between Quality Assurance and Quality Control
QA vs QC
People often use QA and QC to describe the same processes so it's not surprising that we still confuse these concepts. The difference between quality assurance and quality control isn’t obvious, and in practice, they are quite similar. Sometimes, even in test plans, QC is defined as QA Engineering. Nevertheless, theoretically, a QC engineer tests the development process of the product, while the main goal of QA is to ensure the implementation of all the procedures that can improve the quality of software in general. But with their similarities, quality assurance and quality control have become synonymous.
The differences in meaning between these two concepts can be described this way. Quality Control is the routine performance of the same tests for each item (or a subgroup of the items, such as 1 in 10/100/1000), that descends from the ‘conveyor’. A key challenge of these tests is to verify the appropriateness of the tested component and its compliance with standard norms. In this case, one could say that these rules are the set of restrictions provided by the client (or someone else), which must be followed strictly, regardless of our own opinion.
In other words, if we consider the production of a light bulb, we might expect to get at least half of a batch of serviceable quality. These expectations are achieved through strict quality control. But, at the same time, there are other people in a light bulb industry that concentrate on completely different tasks:
How can we increase the number of serviceable light bulbs in a batch?
How can we minimize the number of checks during bulb development?
How can we make sure that there are no faulty light bulbs on the shelves?
How can we make perform more accurate screenings of product specifications?
These are exactly the type of problems that QA engineers focus on.
Unlike QA testing, the length of the QC process is proportional to the project’s volume. If you need to check 100 light bulbs, you need to have a certain number of testers. If you need to check 1000 bulbs, be prepared to hire more testers. At the same time, nobody can guarantee that light bulb number 1001 is ok, so someone needs to check that one too.
On the other hand, for QA testing it makes no difference how many light bulbs were produced. It is much more important to establish quality criteria for the whole light bulb development process. In order to make the difference even more obvious, we made this short manual.
Let’s draw a distinction between QA and QC and the tasks each performs. We’ll also try to note the advantages and disadvantages each process has.
Benefits of Quality Assurance
The objective of QA is, first and foremost, to make sure that product development is carried out according to all the stated standards of quality. From the idea and the general plan to the assembly of the end product the QA-engineer focuses on the software development process, improves it, and prevents defects and problems.
The QA management means:
Checking the specifications and software requirements
Development of ideas that will improve the quality of the product
Analysis of the test results
One of the main benefits of QA management is that you know exactly at what stage and at which point the QC engineers need to begin their work. Of course, it requires the establishment of a test plan, test documentation, and a test environment.
The QA specialist is responsible for:
The analysis and specification of requirements with client or with the business analysts
Scheduling the testing processes
Writing test cases (scenarios to test)
Identification of problem areas
Discussing changes and different fixes with the developers
Tracking the life cycle of each error
Re-testing fixed defects
Analysis of the test procedures
Testing process optimization
The analysis of the processes in a team
Test documentation management
A good QA specialist understands the overall product logic and has thorough knowledge of the project. This includes what is required at each stage of development. The QA may have to answer specific questions from developers that are only familiar with their specific aspect of the project and tasks.
Advantages of Quality Control
It should be noted that QC is a part of QA. A QC engineer analyzes the test results and is responsible for the identification and elimination of defects in the project. In other words, they make sure that the results of what the developers have done are what we expected to see.
QC simply checks the current quality level of the tested object with the help of such criteria as:
Front end loading measurement
Conformity to requirements
Compliance of the project to the stated quality
Before QC can start, you need to decide what the standards of quality for the end product are. Next, we need to define the volume in which the test process will be carried out. For example, in the food industry, it might be a number of units from the batch to be taken for testing. The next step is the analysis of real-life statistics. For example, in the mobile industry, it is the percentage of units that break down before a given time. Only then can someone decide what further action to take. If we are talking about a product that is broken, it must either be repaired or replaced. If we are talking about the IT industry, we need to keep fixing the project until all defects have been corrected and the end product will satisfy the client’s needs.
If there is a large percentage of errors, you need to make a decision to possibly change the development plan. After that, you need to refine the plan from the very beginning.
In the final analysis, QC is a continuous process, which aims to eliminate defects and provide quick responses to emerging problems.
The Bottom Line
Both concepts are closely related and complement each other. The difference only becomes obvious when you begin to implement these sets of measurements: QA at the stage when the product has not yet been implemented, so the process itself is connected with analytics; QC comes up later, when we have something to test.
It’s hard to determine the pros and cons of quality control and quality assurance because QA and QC are so similar.
If we are talking about the IT industry, then the presence of QA and QC plays a key role. Why? Software engineers (SE) and QA/QC engineers think in different ways. The programmer (SE) is looking for the quickest solution to reach the goal, and then looks for a new challenge. But QA and QC engineers deal with the specific situations that haven’t been taken into account in detail and also check how each component works together once assembled together as a whole.
Experience shows that there are quite small chances that a software engineer will make a mistake in the implementation of a component. SE’s are confident that everything that they do works right with just a few exceptions.
The QC tester in confident that everything the programmer didn’t think about, doesn’t work.
We don’t need to check how well the program works. We need to check out how the program fails.
If we compare it to healthcare or medical technologies, then QA would be connected with a prevention and QC- with diagnostics.
This is a general comparison between QA and QC. Of course, there are major differences between quality assurance and quality control, but that’s not the point.
Compliance with quality standards has always been an important part of product development. It does not matter whether it is applicable to a light bulb, healthcare systems or aircraft software. Ultimately, a lot of processes depend on the quality of the end product or project.
This is why we don’t focus our work on developing a product that works, but developing a product that satisfies all the client’s requirements. Therefore, when developing a new product in our company we pay specific attention to the QA and QC processes. We know that high-quality standards are the key to the success of the final product. Anyone can provide IT solutions. But only a few can provide quality IT solutions. We are lucky to have many years of experience and a team of professionals, which has allowed us to take a leading role in the market. If you have any questions about your specific case, new ideas for development, or projects you would like to collaborate on write or call us. We are open to discuss anything with you.
Archer has a Quality Assurance (QA) department which provides all types of testing.
Department objective: to establish and improve well-managed quality control systems.
Test methodology: Each project is unique, so test methods are selected by considering every aspect of the project environment, product and quality criteria. For each project we choose an appropriate level of testing to maintain efficiency.
Our testing methods:
• Communication (with developers and producer)
• Functionality testing
• Smoke testing
• Regression testing
• Hands-off testing
• Stress testing
• Compatibility testing
• Focus testing
• “Bad idea” testing
• Security testing
• Approval of documentation
Our testing cycle:
• Requirements analysis: during the design phase, testers work to determine what aspects of a design are testable and with what parameters those tests work.
• Test planning: test strategy and test plan.
• Test development: use cases, checklists, test cases, test datasets, and test scripts to use in testing software.
• Test execution: testers execute the test suite based on the test plan and test documents, then report any errors found to the development team (we use a JIRA for defect tracking)
• Test reporting: once testing is completed, testers generate metrics and make final reports on their tests and whether or not the software tested is ready for release.
• Test result analysis: or defect analysis, is done by the development team, usually along with the client, in order to decide what defects should be assigned, fixed, rejected (i.e. software found to be working properly) or deferred to be dealt with later.
• Defect Retesting: once a defect has been dealt with by the development team, it is retested by the test team.
• Regression testing: It is common to have a small test program that performs a subset of tests, for each integration of a new, modified, or fixed piece of software, in order to ensure that the latest delivery has not cause new problems, and that the software product as a whole is still working correctly.
• Test Closure: once the test meets the exit criteria, activities such as capturing the key output, lessons learned, results, logs, and documents related to the project are archived and used for reference for future projects.
• For manual testing and analysis we use tools such as PICT, All Pairs, Jing, Firebug, xMind, LinkScan, and HTML Validator.
• For automated testing we use Selenium for all web-apps.
• For load testing we use LoadUI/SoapUI.
• For performance testing we use Apache JMeter
• For security testing we use ZAP, Skipfish.
Check out our full portfolio here.