Quality Assurance, Quality Control & Software Testing

Hi All,

Most of the people are confused with the difference between Testing, QA and QC Engineer. Below are the definitions showing difference between these three:-

Quality Assurance (QA): A set of activities designed to ensure that the development and/or maintenance process is adequate to ensure a system will meet its objectives.

Quality Control (QC): A set of activities designed to evaluate a developed work product. These activities can always include the audits conducted by the QA team to assess the cost of correcting defects, documentation etc.

Testing: It is process of finding defects by executing a system/software. (Note that the "process of executing a system" includes test planning prior to the execution of the test cases.)

Quality Assurance (QA):

- QA is planned and systematic way to evaluate quality of process used to produce a quality product.

- The goal of a QA is to provide assurance that a product is meeting customer’s quality expectations.

- QA deals with how to prevent bugs from occurring in a product being developed.

- Software Quality Assurance Engineer’s main responsibility is to create and implement methods and standards to improve development process.


- QA is associated with activities like measuring the quality of process used to develop a product, process improvement and defect prevention.

- It consists of auditing and reporting procedures related to development and testing.

Quality Control (QC):

Quality control name comes from manufacturing industry where QC inspector evaluate sample products taken from the manufacturing line, test them & if the products fail the test they have the authority to shut down the whole production line.

- QC in software industry is evaluating software product, find the defects & suggest improvements.

- QC implements the process established by QA.

- Software tester is responsible for QC.

- If required, personnel involve in QC have to carry out QA tasks as well.

Software Testing :

- Software testing is a planned process that is used to identify the correctness, completeness, security and quality of software.

- Testing is generally done to demonstrate that the software is doing what it is supposed to do as well as the software is not doing what it is not supposed to do.

- The goal of testing or software tester is to locate defects and make sure that they get fixed.

These are the basic differences between the three concepts. Sometimes there is an overlap of duties between tester, QA Engineer and QC Engineer. As per the need, some testers might be required to perform certain QA activities & some QA-ers perform testing of product.