Skip to content

Software Quality Assurance

Software quality assurance (SQA) is the system of practices that makes desired quality more likely throughout delivery and operation. Quality control checks outputs; assurance improves the process that produces them. Testing is one source of evidence within both.

Define Quality for the Product

“High quality” is not measurable. Translate it into stakeholder outcomes and risk scenarios:

  • functional suitability and correctness;
  • reliability, availability, and recoverability;
  • performance efficiency and capacity;
  • security and privacy;
  • usability and accessibility;
  • compatibility and interoperability;
  • maintainability, testability, and deployability;
  • portability and adaptability;
  • safety and compliance where applicable.

The current ISO/IEC 25010 product quality model provides a vocabulary, not universal priorities. Select characteristics from the product context and make them observable.

During peak traffic, 99% of eligible checkout requests complete within 500 ms; no confirmed order is charged twice; a regional dependency failure does not prevent customers viewing existing orders.

Quality Planning

For each material risk, record:

  • affected stakeholder and possible harm;
  • likelihood, impact, and detectability;
  • prevention and detection controls;
  • acceptance or release evidence;
  • operational signal and response;
  • owner and residual-risk decision.

Apply more rigor to irreversible, security-sensitive, safety-critical, and high-blast-radius changes. A universal checklist wastes effort on low-risk work and misses product-specific hazards.

Build Quality into the Lifecycle

Discovery and Requirements

Validate the problem with users and evidence. Define normal, boundary, misuse, failure, recovery, migration, accessibility, and decommissioning behavior. Ambiguous requirements cannot be tested reliably.

Design

Review boundaries, data ownership, invariants, threats, overload, partial failure, and recovery. Prototype the most uncertain assumption. Record consequential trade-offs.

Implementation

Use small changes, review, static analysis, dependency controls, reproducible builds, and tests at faithful boundaries. Keep warnings actionable; a permanently ignored warning is not a control.

Delivery

Promote one verified artifact, maintain compatibility during rollout, use progressive exposure when risk warrants, and define abort and recovery criteria before release.

Operations

Monitor user outcomes, learn from incidents and support cases, test restoration, manage vulnerabilities, and remove obsolete code and controls. Production evidence should update requirements and risk priorities.

See SDLC, Software Testing, and CI/CD.

Reviews

Review the artifact most able to prevent the defect:

  • requirement and example review for misunderstood behavior;
  • design review for boundaries and expensive decisions;
  • code review for correctness, security, and maintainability;
  • threat review for abuse and trust boundaries;
  • operational review for deployment, monitoring, and recovery;
  • independent assurance for regulated or high-harm decisions.

A reviewer should understand the objective, risk, evidence, and change—not approve a large diff under time pressure. Automate formatting and mechanical checks so people focus on judgment.

Audits and Traceability

An audit evaluates conformance to an explicit policy, standard, or contract. Preserve only evidence needed to show what changed, who approved it, what was verified, which artifact shipped, and how exceptions were authorized.

Traceability is valuable when failure cost or regulation requires it. Connect a critical requirement to its design decision, implementation, verification, and release evidence. Do not create a complete document graph for low-risk work nobody will use.

Exceptions need scope, rationale, compensating control, owner, approval, and expiry.

Static Analysis and Automated Gates

Static tools can find type errors, unsafe APIs, vulnerable dependencies, policy violations, secrets, and maintainability risks. Configure them for the language and threat model, establish a baseline, prevent new high-risk findings, and remove suppressions when their reason expires.

A quality gate should block only on evidence trusted enough to justify stopping delivery. Unowned noisy gates train teams to bypass controls.

Metrics

Use metrics to answer questions and improve the system, not rank individuals.

Useful outcome and flow signals include:

  • user-visible failure and support burden;
  • escaped defects by risk and detection point;
  • incident impact and recurrence;
  • time from detection to safe correction;
  • flaky checks and feedback delay;
  • vulnerability and exception age;
  • change failure and recovery performance;
  • reliability against service objectives.

Defect counts, test counts, coverage, complexity, and review comments are diagnostic inputs, not standalone quality scores. Targets attached to proxy metrics invite gaming.

Continuous Improvement

Use a small feedback loop:

  1. choose an observed quality or delivery problem;
  2. form a causal hypothesis;
  3. make the smallest process or engineering change;
  4. measure whether the outcome improves;
  5. keep, revise, or remove the control.

Incident actions should address contributing system conditions and have owners and verification. Adding ceremony after every failure without deleting ineffective controls makes delivery slower, not safer.

Quality Governance

Product, engineering, security, operations, and compliance share quality ownership, but each decision still needs a named accountable owner. A central quality team is most useful when it supplies expertise, independent assurance, reusable controls, and organization-wide learning—not when it becomes the final testing phase.

Checklist

  • Are quality goals specific to users and risks?
  • Are critical scenarios measurable and testable?
  • Is prevention placed at the earliest effective decision point?
  • Are reviews small enough for real judgment?
  • Do automated gates have low noise and clear owners?
  • Is high-risk evidence traceable to the released artifact?
  • Are production failures feeding back into priorities?
  • Are metrics used for improvement rather than quotas?
  • Do exceptions and temporary controls expire?

Quality assurance succeeds when teams can change software quickly without making its outcomes unpredictable.