Quality Assurance (QA)
Quality Assurance (QA) in software development is a systematic process that ensures a product meets defined quality standards through planning, testing, and process improvement. It focuses on preventing defects, not just finding them.
§ 1 Definition
Quality Assurance (QA) encompasses the systematic activities and processes implemented throughout the software development lifecycle to ensure the final product meets specified quality standards. QA is proactive: it focuses on preventing defects by improving development processes, establishing standards, and conducting reviews early in the lifecycle. This distinguishes QA from Quality Control (QC), which is reactive and involves testing the finished product to find bugs. Effective QA integrates testing at every stage: requirements review, design review, code review, automated testing, manual testing, and user acceptance testing. The goal is not zero bugs (an unrealistic target) but predictable, acceptable quality levels delivered consistently.
§ 2 QA vs QC vs Testing
These three terms are often used interchangeably but have distinct meanings: * Quality Assurance (QA): Process-oriented. Focuses on preventing defects by improving how the work is done. Example: establishing coding standards and code review processes. * Quality Control (QC): Product-oriented. Focuses on identifying defects in the finished product. Example: inspecting the final build for bugs. * Testing: The act of executing software to find defects. A subset of QC. Example: running test scripts against the application.
§ 3 Levels of Software Testing
Comprehensive QA involves multiple testing levels: * Unit Testing: Testing individual functions or components in isolation. Usually automated. Caught by developers. * Integration Testing: Testing how different modules interact. Catches interface and data flow issues. * System Testing: Testing the complete, integrated application. Covers functional and non-functional requirements. * Regression Testing: Re-running tests after changes to ensure existing functionality is not broken. * User Acceptance Testing (UAT): End users test the software in real-world scenarios to validate it meets their needs.
§ 4 Automation in QA
Test automation is critical for modern software delivery, especially for organizations practicing continuous integration and continuous delivery (CI/CD). Automated tests provide rapid feedback, catch regressions instantly, and free human testers for exploratory and usability testing. Common frameworks include Selenium (web UI), Playwright (cross-browser), Cypress (modern web apps), Jest (JavaScript unit tests), and pytest (Python). The test automation pyramid (UI tests at the top, integration tests in the middle, unit tests at the base) recommends having many fast, reliable unit tests and fewer slower, brittle UI tests.
§ 5 Common questions
- Q. How is QA different from testing?
- A. QA is a process-oriented approach focused on preventing defects. Testing is a specific activity focused on finding defects. QA includes testing but is broader.
- Q. Can QA be fully automated?
- A. No. Automation excels at repetitive, predictable checks. Exploratory testing, usability testing, and accessibility testing still require human judgment.
- Q. When should QA start in a project?
- A. Day one. QA should be involved during requirements definition and design, not just at the end before release. Early involvement prevents defects at the source.
- QA is a process-oriented approach that aims to prevent defects, not just find them.
- QA differs from QC (product inspection) and testing (defect detection).
- Automated testing is essential for CI/CD but cannot replace exploratory human testing.
- QA should be integrated throughout the development lifecycle, not tacked on at the end.
QA is built into our workflow from day one, not bolted on at the end. We test at every stage to prevent defects, not just find them. See our Web Development process or get in touch.
Get in touchQuality Assurance (QA) in software development is a systematic process that ensures a product meets defined quality standards through planning, testing, and process improvement. It focuses on preventing defects, not just finding them.
Category: General (also: Software Engineering, Business)
Author: Atomic Glue Technical Team
## Definition
Quality Assurance (QA) encompasses the systematic activities and processes implemented throughout the software development lifecycle to ensure the final product meets specified quality standards. QA is proactive: it focuses on preventing defects by improving development processes, establishing standards, and conducting reviews early in the lifecycle. This distinguishes QA from Quality Control (QC), which is reactive and involves testing the finished product to find bugs. Effective QA integrates testing at every stage: requirements review, design review, code review, automated testing, manual testing, and user acceptance testing. The goal is not zero bugs (an unrealistic target) but predictable, acceptable quality levels delivered consistently.
## QA vs QC vs Testing
These three terms are often used interchangeably but have distinct meanings: * **Quality Assurance (QA):** Process-oriented. Focuses on preventing defects by improving how the work is done. Example: establishing coding standards and code review processes. * **Quality Control (QC):** Product-oriented. Focuses on identifying defects in the finished product. Example: inspecting the final build for bugs. * **Testing:** The act of executing software to find defects. A subset of QC. Example: running test scripts against the application.
## Levels of Software Testing
Comprehensive QA involves multiple testing levels: * **Unit Testing:** Testing individual functions or components in isolation. Usually automated. Caught by developers. * **Integration Testing:** Testing how different modules interact. Catches interface and data flow issues. * **System Testing:** Testing the complete, integrated application. Covers functional and non-functional requirements. * **Regression Testing:** Re-running tests after changes to ensure existing functionality is not broken. * **User Acceptance Testing (UAT):** End users test the software in real-world scenarios to validate it meets their needs.
## Automation in QA
Test automation is critical for modern software delivery, especially for organizations practicing continuous integration and continuous delivery (CI/CD). Automated tests provide rapid feedback, catch regressions instantly, and free human testers for exploratory and usability testing. Common frameworks include Selenium (web UI), Playwright (cross-browser), Cypress (modern web apps), Jest (JavaScript unit tests), and pytest (Python). The test automation pyramid (UI tests at the top, integration tests in the middle, unit tests at the base) recommends having many fast, reliable unit tests and fewer slower, brittle UI tests.
## Common questions
Q: How is QA different from testing?
A: QA is a process-oriented approach focused on preventing defects. Testing is a specific activity focused on finding defects. QA includes testing but is broader.
Q: Can QA be fully automated?
A: No. Automation excels at repetitive, predictable checks. Exploratory testing, usability testing, and accessibility testing still require human judgment.
Q: When should QA start in a project?
A: Day one. QA should be involved during requirements definition and design, not just at the end before release. Early involvement prevents defects at the source.
## Key takeaways
- QA is a process-oriented approach that aims to prevent defects, not just find them.
- QA differs from QC (product inspection) and testing (defect detection).
- Automated testing is essential for CI/CD but cannot replace exploratory human testing.
- QA should be integrated throughout the development lifecycle, not tacked on at the end.
## Related entries
- [UAT (User Acceptance Testing)](atomicglue.co/glossary/uat-user-acceptance-testing)
- [Staging vs Production](atomicglue.co/glossary/staging-vs-production-devops)
- [Technical Debt](atomicglue.co/glossary/technical-debt)
Last updated July 2025. Permalink: atomicglue.co/glossary/quality-assurance