Quality assurance
Quality assurance (QA) is a systematic approach to ensuring that products and services meet defined quality standards, encompassing processes, procedures, and activities designed to prevent defects and verify that quality requirements are consistently satisfied (Juran J.M., Godfrey A.B. 1999, p.34)[1]. The software shipped with a critical bug that crashed the application for 10% of users. Customer support overwhelmed. Reputation damaged. A proper QA process would have caught this before release. Quality assurance exists to prevent exactly these failures—building quality into the process rather than inspecting it in at the end.
Organizations invest heavily in QA—approximately 23% of annual IT budgets, according to recent studies. The investment reflects a fundamental truth: fixing bugs early costs far less than fixing them in production. A defect caught during requirements analysis might cost hours to resolve; the same defect discovered by customers costs days of support, patches, and reputation repair. QA processes aim to shift defect detection leftward—finding problems as early as possible.
QA versus QC
Related but distinct concepts:
Quality assurance
Process-focused. Ensures processes are adequate to produce quality outputs[2].
Preventive. Aims to prevent defects from occurring.
Systematic. Establishes procedures, standards, and guidelines.
Quality control
Product-focused. Verifies that outputs meet quality requirements.
Detective. Identifies defects that have occurred[3].
Operational. Testing, inspection, measurement activities.
QA processes
Core activities include:
Requirements analysis
Early involvement. QA participates from project initiation to understand what quality means for this product[4].
Testability. Ensuring requirements are clear enough to be verified.
Test planning
Strategy. Defining what types of testing are needed, in what sequence, using what tools.
Coverage. Determining how thoroughly different areas will be tested[5].
Resources. Allocating people, environments, and tools.
Testing execution
Static testing. Reviewing documentation, code, and designs without executing software.
Dynamic testing. Executing software to observe behavior under various conditions.
Automation. Using tools and scripts for repetitive tests, especially regression testing.
Documentation
Traceability. Linking requirements to test cases to ensure coverage.
Reporting. Communicating quality status to stakeholders[6].
Metrics. Tracking defect density, test coverage, cycle time.
Methodologies
Different approaches structure QA work:
Test-driven development (TDD). Writing tests before code—ensuring everything is tested from the start.
Agile QA. Integrated throughout development rather than a separate phase[7].
Risk-based testing. Prioritizing testing effort based on risk of failure and impact.
Contemporary trends
QA practice continues evolving:
Shift-left. Moving testing earlier in the development cycle.
AI-driven testing. Using artificial intelligence to generate test cases and predict defects[8].
Continuous testing. Automated testing integrated into continuous integration pipelines.
Security focus. Incorporating security testing throughout the QA process.
| Quality assurance — recommended articles |
| Quality management — Quality control — Software testing — Continuous improvement |
References
- Juran J.M., Godfrey A.B. (1999), Juran's Quality Handbook, 5th Edition, McGraw-Hill.
- Galin D. (2018), Software Quality: Concepts and Practice, Wiley.
- ISTQB (2023), Certified Tester Foundation Level Syllabus.
- ASQ (2024), Quality Assurance.
Footnotes
- ↑ Juran J.M., Godfrey A.B. (1999), Juran's Quality Handbook, p.34
- ↑ Galin D. (2018), Software Quality, pp.45-62
- ↑ ISTQB (2023), Foundation Level Syllabus, pp.12-18
- ↑ ASQ (2024), Quality Assurance
- ↑ Juran J.M., Godfrey A.B. (1999), Juran's Quality Handbook, pp.134-148
- ↑ Galin D. (2018), Software Quality, pp.178-192
- ↑ ISTQB (2023), Foundation Level Syllabus, pp.89-104
- ↑ ASQ (2024), Quality Assurance
Author: Sławomir Wawak