Differences Between QA and Testing, and the Roles of QA, QC, and QM
This article explains the distinction between quality assurance (QA) and software testing, clarifies the meanings and responsibilities of QA, QC, and QM, and outlines typical QA tasks and skills needed in software development.
Introduction
Recently, readers of a WeChat public account asked about the differences between QA and testing, as well as the distinctions among QA, QC, and QM and the responsibilities of QA.
1. Difference between QA and testing
QA stands for Quality Assurance, which is the overall process of ensuring product quality, while software testing (Software Testing) focuses specifically on verifying software functionality. QA encompasses testing as a subset, so the scope of QA is broader than that of testing.
In practice, companies define these roles differently: some equate QA with testing, others consider QA to be a higher‑level function that includes process improvement in addition to testing, and some have both QA and testing teams, where QA handles processes and product quality and testing concentrates solely on test execution.
2. Relationship and differences among QA, QC, and QM
From the English terms:
QA – Quality Assurance
QC – Quality Control
QM – Quality Management
Definitions:
QA: Activities and techniques applied to meet quality requirements.
QC: Planned, systematic activities that provide confidence that a product meets quality requirements.
QM: Management functions that define quality policies, objectives, and responsibilities, and implement them through planning, control, assurance, and improvement.
Responsibilities:
QA focuses on system‑level improvements, preventing problems, investigating root causes, and implementing corrective actions.
QC concentrates on monitoring finished products.
QM ensures a quality‑focused environment at the organizational level.
Skill requirements:
QA professionals need comprehensive knowledge of organizational processes and the engineering techniques used in projects.
QC includes both senior test designers and junior testers.
QM requires both QA/QC skills and professional management capabilities.
QA, QC, and QM are interdependent; together they form a quality management system that includes planning, control, assurance, and improvement.
In the software industry, the terms become SQA (Software Quality Assurance), SQC (Software Quality Control), and SQM (Software Quality Management), each with specific roles in ensuring product and process quality.
3. QA work content and responsibilities
In the author's experience, QA work often mirrors testing work: understanding requirements, participating in requirement reviews, writing and reviewing test cases, executing functional and interface tests, producing test reports, performing risk assessments, conducting online verification, and handling automation, performance, and other specialized testing.
The core responsibility of QA is to ensure the software product’s quality, adapting methods to the specific product characteristics. For newcomers, the advice is to diligently complete assigned testing tasks, continuously learn, and maintain a passion for the work.
Conclusion
Readers are invited to share any additional questions or thoughts about software testing.
DevOps Engineer
DevOps engineer, Pythonista and FOSS contributor. Created cpp-linter, commit-check, etc.; contributed to PyPA.
How this landed with the community
Was this worth your time?
0 Comments
Thoughtful readers leave field notes, pushback, and hard-won operational detail here.