What is Quality?
Software quality is the degree to which a product meets explicit and implicit requirements and user expectations. ISO 25010 defines eight quality attributes: functional suitability, performance efficiency, compatibility, usability, reliability, security, maintainability, and portability.
QA vs QC
| Aspect | QA (Quality Assurance) | QC (Quality Control) |
|---|---|---|
| Focus | Process | Product |
| Purpose | Prevent defects | Detect defects |
| Technique | Standards, reviews | Testing |
| When | Throughout lifecycle | After development |
Verification vs Validation
Verification — are we building the product right? Reviews, inspections, static analysis.
Validation — are we building the right product? Testing, user acceptance.
Testing Levels
- Unit testing — individual functions or classes; usually automated with JUnit/pytest.
- Integration testing — interactions between modules.
- System testing — end-to-end against requirements.
- Acceptance testing — by the customer; UAT, alpha, beta.
Testing Methods
- Black-box — test based on specification without knowing internals.
- White-box — test based on code structure (statement, branch, path coverage).
- Gray-box — combination.
Test Case Design Techniques
- Equivalence partitioning — group inputs with same behavior, test one per group.
- Boundary-value analysis — test at and around boundaries.
- Decision tables.
- State-transition testing.
- Use-case testing.
Types of Testing
- Functional, non-functional, regression, smoke, sanity, performance, load, stress, security, usability, compatibility, accessibility.
The V-Model
The V-model maps each development phase to a testing phase: requirements ↔ acceptance, design ↔ integration, module ↔ unit, implementation at the bottom.
Defect Management
- Find defect (during testing or review).
- Log in defect tracker (Jira, Bugzilla) with steps to reproduce, severity, priority.
- Triage: accept, reject, defer.
- Developer fixes.
- Tester verifies fix.
- Close.
Quality Standards
- ISO 9001 — generic quality management.
- ISO/IEC 25010 — software product quality.
- CMMI — capability maturity (levels 1-5).
- IEEE 829 — test documentation.
Reviews and Inspections
Reviews catch defects cheaply, before coding is complete. Types: walk-through (informal), peer review, formal inspection (Fagan), and audit.
Summary
Quality is built in through good process (QA) and verified through systematic testing (QC). Use both black-box and white-box techniques, test at all levels, and track defects through a disciplined process.
Important Questions
- List ISO 25010 quality attributes.
- Differentiate QA and QC.
- What is the difference between verification and validation?
- Explain the testing levels.
- Compare black-box and white-box testing.
- Explain equivalence partitioning and boundary-value analysis.
- Describe the V-model.
- Outline the defect life cycle.