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.