# Test strategy

## Test layers

- **Domain unit tests:** progress, dashboard summaries and chronological ordering.
- **Storage unit tests:** valid round-trip, corrupt JSON recovery, unsupported schema and orphaned-task rejection.
- **Component tests:** seeded dashboard, form validation/creation and task filtering.
- **Browser tests:** persisted CRUD journey, task interaction and horizontal-overflow checks.
- **Visual evidence:** seeded dashboard at all required viewports plus matching Chromium/Firefox captures.
- **Manual sessions:** Microsoft Edge developer tools and two real computers using the same scenario/data.

## Responsive matrix

| Viewport | Expected behaviour | Automated assertion | Visual evidence |
|---|---|---|---|
| 1920×1080 | Four summary cards, two-column dashboard, full navigation | Core journey and no horizontal overflow | `responsive-1920x1080-dashboard.png` |
| 1680×1050 | Balanced 2×2 summary grid, compact gaps, usable modal | Core journey and no horizontal overflow | dashboard, dialog and before/after fix |
| 1920×1200 | Four cards and two-column dashboard with more content visible vertically | Core journey and no horizontal overflow | `responsive-1920x1200-dashboard.png` |
| 768×900 | Top navigation, single-column content and wrapped controls | Core journey and no horizontal overflow | Automated robustness check only |

At every required resolution also verify 100%/125% zoom, focus visibility, long content, dialogs, validation, menus, persistence and a clean application console.

## Browser matrix

| Browser | Automated | Manual developer tools | Status |
|---|---|---|---|
| Google Chrome installed stable channel | Yes | Automated functional comparison | Pass |
| Chromium 151 test build | Yes | Console reviewed in local preview | Pass |
| Firefox 153 Playwright build | Yes | Automated functional comparison | Pass |
| Microsoft Edge current stable | Configured manual protocol | Required on Windows | Pending |

Compatibility risks include date-control rendering, font metrics, Grid/Flexbox sizing, sticky positioning, focus outlines, downloads/uploads, `localStorage` and `crypto.randomUUID`. The implementation uses system fonts, standards-based CSS, feature detection with an ID fallback, reduced-motion handling and no experimental API dependency.

## Defect policy

Record the environment, steps, expected/actual behaviour, severity and screenshot. Fix at the lowest safe layer, add a regression check where practical, rerun the affected matrix and retain before/after evidence. The first recorded responsive defect is RWD-01 in the decision log.
