---
name: Regression Testing
description: Ensure fixes do not break existing behavior.
---
# Regression Testing

Every change can break something that worked. Regression testing re-runs the existing test suite to catch exactly this — the change's unintended consequences.

## Principles
- **Automate it.** Manual regression doesn't scale and gets skipped under pressure. The suite runs on every change in CI.
- **Fast feedback.** A suite that takes hours gets run less often or abandoned. Optimize for the unit/integration balance; parallelize.
- **Maintain the suite.** Flaky tests erode trust — fix or remove them. Tests that always pass without checking anything (false confidence) are worse.
- **Risk-weighted.** Run critical-path tests on every change; deep regression on release cadence.

## Avoid
- Retaining tests for behavior that no longer exists. They add runtime, never fail, and mislead about coverage.