qa exploration

From symptom to root cause, mapped as a network

How I think through an issue once it's reported: a symptom feeds forward through the categories most likely to explain it, then through the tools I use to confirm which one it actually is.

Nodes are stages of investigation, not literal weighted connections — read left to right.

input
Reported
issue
signal class
4xx
client error
5xx
server error
logic &
data bug
diagnostic method
Sentry
payload trace
Datadog
service trace
Manual &
automated repro
outcome
Root cause
confirmed
Regression
coverage added

Client-side errors (4xx)

→ Sentry payload trace

400 Bad Request 401 Unauthorized 403 Forbidden 404 Not Found 409 Conflict 422 Unprocessable Entity 429 Too Many Requests

Usually a sign the request itself was malformed, unauthenticated, or rate-limited before it reached business logic. I check auth tokens, payload shape, and headers first, using Sentry to see exactly what the client sent.

Server-side errors (5xx)

→ Datadog service trace

500 Internal Server Error 502 Bad Gateway 503 Service Unavailable 504 Gateway Timeout

These point further upstream — a crashed process, an unhealthy dependency, or a timeout somewhere in the chain. I use Datadog traces and logs to isolate which service actually failed, rather than assuming it's the one that returned the error.

Logic & data bugs

→ Manual & automated repro

Race condition Off-by-one error Null reference Stale cache Data corruption

Harder to catch, because the request often succeeds and the response is just wrong. These need careful reproduction — same data state, same sequence of actions, same timing — until the bug shows itself reliably.

Testing & diagnostic approaches

→ Root cause confirmed / regression coverage added

Manual exploratory testing Regression suite (Playwright) Smoke testing Bug triage & reproduction Claude-assisted test drafting

How I actually catch the categories above before release: manual exploratory sessions on new features, a Playwright regression suite for known-critical paths, and Claude to help draft and maintain test cases as coverage grows.