testing-strategy
Installation
SKILL.md
Testing strategy
For any new backend feature, test it twice, in this order:
- HTTP-level test first — real app, real DB, no browser. In Python:
httpx.AsyncClient(transport=ASGITransport(app=app))against a live route. Cheapest way to lock down request/response shape, status codes, and permission checks. - Playwright e2e for the same flow — drives the actual UI against a live
backend (see playwright-python), so it
also catches wiring bugs the HTTP test can't see (wrong field name in the
frontend, a button that never fires the request). Select elements via
data-testidattributes (page.getByTestId(...)), adding one to the component if it's missing.
Both tiers earn their place — the HTTP test is fast and pinpoints backend regressions precisely; the e2e test is the only one that proves the feature actually works end to end. Don't write only one.