NotQuality.com
Start free

Hunt by bug type

Pick a bug you've met before.

Every card is a defect that ships in real software, framed the way a ticket would describe it. Choose one, then choose which app to hunt it in — the same mistake looks different in a hospital chart, a bank transfer, and a shopping cart.

Or start from the app collection →

Bug packs — stack a session

Several bug types that belong together, hunted in one app as a single graded session.

The money pack

“Finance says the numbers don’t reconcile.” Precision, rounding, and boundary mistakes that only show up where money moves.

3 bug types2 appschoose app →

The broken-trust pack

“A customer saw something that wasn’t theirs.” Object-level authorization and payload exposure, hunted together.

2 bug types1 appchoose app →

The retry-storm pack

“It was fine until traffic spiked.” Duplicate writes, lost updates, and stale reads — what concurrency and retries do to state.

3 bug types2 appschoose app →

The pipeline pack

“The dashboard disagrees with the source system.” Types, units, dates, and cardinality — everything a transform can quietly ruin.

4 bug types1 appchoose app →

The AI-under-audit pack

“The AI sounds right. Prove it.” Grounding, contradictions, thresholds, and stale context in an assistant's output.

4 bug types2 appschoose app →

Common UX bugs

“I did the thing, and the number at the top didn’t change until I refreshed the whole page.”

Derived value never invalidates

blue belt2 appschoose app →

“I sorted the column and 9 comes after 100.”

Sort uses the wrong comparator

yellow belt1 appchoose app →

“My screen reader just says ‘button’. Button for what?”

Control has no accessible name

white belt1 appchoose app →

Common API bugs

“I changed the id in the request and got somebody else’s record back.”

Object-level authorization missing

orange belt2 appschoose app →

“I asked for something that doesn’t exist and the app told me the whole service crashed.”

Failure mapped to the wrong status

blue belt1 appchoose app →

“Open devtools — the response is carrying fields customers were never meant to see.”

Internal field leaks into a public payload

green belt1 appchoose app →

Data & math bugs

“It says there are 34 results, but no matter how I page through I can only ever see 24.”

Pagination drops a page

blue belt3 appschoose app →

“The value displays perfectly, but everything that compares against it acts like it isn’t a number.”

Number carried as a string

blue belt1 appchoose app →

“The books are off by a cent and nobody can say where it went.”

Money handled as floating point

orange belt2 appschoose app →

“It says 5.6. …5.6 what?”

Value shown without its qualifier

yellow belt1 appchoose app →

Validation bugs

“I typed zero — honestly I fat-fingered a minus — and it just… went through.”

Zero or negative amount accepted

white belt2 appschoose app →

“It’s sitting exactly on the limit and the system treated it like it’s under.”

Threshold set at the wrong boundary

green belt2 appschoose app →

Reliability & concurrency bugs

“My connection dropped, I hit retry, and now there are two of it.”

Idempotency key accepted but ignored

black belt2 appschoose app →

“Two of us submitted at the same moment and one of our changes silently vanished.”

Concurrent writes lose an update

black belt2 appschoose app →

Pipeline & data-flow bugs

“I sent ten. Only the first one arrived.”

Only the first of a repeating group is kept

green belt1 appchoose app →

“After the migration, everyone’s birthday moved by one day.”

Transform shifts a date

green belt1 appchoose app →

AI quality bugs

“The AI’s summary states something that simply isn’t anywhere in the record.”

AI asserts something not in the record

orange belt1 appchoose app →

“The AI recommended stopping exactly the thing the data says is still needed.”

AI recommendation contradicts the record

black belt1 appchoose app →