What is the difference between QA, QC and testing?
60-second answer
Quality Assurance is process-oriented: it prevents defects by improving how we build software, such as defining standards, reviews and the test process. Quality Control is product-oriented: it finds defects in the actual product by inspecting and testing it. Testing is one activity inside quality control, where we execute the software to find bugs. So QA is about the process, QC is about the product, and testing is the hands-on execution part of QC.
Explanation
- QA (prevention): process definition, audits, coding standards, review checklists, training, choosing a test strategy. Responsibility of the whole team.
- QC (detection): reviewing deliverables and testing the product to find defects.
- Testing: designing and executing tests, logging defects. A subset of QC.
In industry, the job title "QA engineer" usually means someone who does both: improves the process and tests the product.
Example
QA: the team agrees every user story must have acceptance criteria before development starts.
QC: a tester reviews a build against those acceptance criteria.
Testing: the tester runs the "forgot password" flow and finds the reset email is never sent.
Sample code
QA -> "Every PR needs one reviewer and passing unit tests" (process)
QC -> "Inspect release 2.4 against its acceptance criteria" (product)
Testing -> "Run test case TC_101: reset password email arrives" (execution)