This is not a theory essay. It is the order we use when time is limited and the cost of being wrong is high. You can run it yourself with staging access. You can also use it as a shared language with whoever owns the release.

TL;DR
  • Test the product journey and the model behavior as one system, not two separate hobbies.
  • Start with the highest-cost failure modes: wrong answers with confidence, unsafe tool calls, data exposure, and weak fallbacks.
  • Golden prompts and a polished demo are not coverage.
  • Use a simple order: map risk → probe journeys → probe model edges → check safety → check failure states → rank severity → decide ship / wait / block.
  • If you cannot answer basic coverage questions, that is a finding, not a vibe.
  • Write down what “good enough” means before you run cases. Otherwise every result becomes a debate.

Who this guide is for

You will get the most from this if:

You may not need a full independent engagement yet. You still need a sequence that is more serious than “the demo looked good.”

Who this is not for

Why AI launches fail after a clean demo

AI demos impress fast. Production fails quieter.

A common pattern looks like this:

  1. Leadership sees a walkthrough with three known prompts and a friendly account.
  2. Engineering confirms the happy path in staging.
  3. Someone notes “we should add more evals later.”
  4. Launch happens.
  5. Real users paste messy language, ask outside the corpus, trigger a tool on a weird permission path, or hit a timeout that shows a blank state.

None of that means the model vendor failed you. It means coverage was thin. The demo optimized for clarity. Production optimizes for whatever a distracted person types on a phone.

Classical QA still matters here. Auth bugs, billing bugs, and permission bugs do not become less important because there is a model in the middle. AI adds another layer: the model can be fluent while the product is wrong.

The principle: one system, not two hobbies

Teams often split work badly:

Treat the product as one system:

A finding can live in any of those layers. Your test plan has to touch all of them.

What to test (in order)

1. Map what “bad” costs you

Before writing cases, spend thirty honest minutes on a half page:

Rank the top three “if this goes wrong, we have a bad week” scenarios. Those go first. Everything else waits.

Example (generic product pattern, not a client story): if the assistant can send email on the user’s behalf, “wrong recipient / wrong body / no confirmation” outranks “tone is slightly off.”

If you skip this step, you will spend hours polishing low-cost issues and miss the expensive ones.

2. Walk the product journeys that matter

Treat this like serious product QA, not only prompt play.

Minimum journey set:

What to watch for:

If the UI lies about what the model did, that is a product bug even when a raw model response looked “fine” in isolation.

3. Probe model behavior on purpose

Golden prompts are necessary. They are not sufficient.

Build a small set you can re-run after every prompt or model change. Include:

Before you run the set, write the pass rule in one line per case. Example: “Must refuse and offer human handoff” or “Must cite a source or say it does not know.” If you skip that, every answer becomes a meeting.

Depth tip: ten well-specified cases beat fifty vague ones.

4. Check safety and permission edges

At minimum, for products that see private data or can act:

You do not need a novel-length red team. You need a documented set you can re-run. Undocumented “we tried a few jailbreaks once” disappears the week someone changes the system prompt.

5. Failures and fallbacks

Ask one blunt question: when the model times out, refuses, or returns junk, what does the user see?

Strong patterns:

Weak patterns:

Fallbacks are features. Test them like features. Force timeouts and empty retrieval in staging on purpose.

6. Rank what you found

Not every issue is a launch blocker. Ranking prevents two failure modes: shipping Critical issues because “everything is a finding,” and delaying forever because “everything is Critical.”

A simple language that works:

If you want a shared helper for that language, use our severity classifier.

7. Decide with a gate, not a feeling

End with one of three outcomes:

“We feel ready” is not a gate. Neither is “sales needs it Friday” without a named person accepting residual risk.

Helper: go / no-go tool. Longer write-up: go / no-go criteria guide.

A one-week self-run schedule (if you are alone)

If you have five focused half-days before launch:

  1. Day 1: Risk map + journey list + pass rules for ten model cases
  2. Day 2: Journey testing (auth, core AI action, billing gates, mobile)
  3. Day 3: Model set + RAG miss cases + structured output
  4. Day 4: Safety / permission probes + forced fallback tests
  5. Day 5: Severity rank, owners, ship / wait / block, and a short written note to the team

If Day 5 still has Critical items open, the calendar is the problem, not the method.

What “good enough” evidence looks like

You do not need a hundred-page report to trust a launch. You do need artifacts someone else can re-check:

If those five things exist, you have a conversation. If they do not, you have optimism.

How GenCodeQA approaches it

We test. We do not build. That boundary matters: the job is an accurate picture of risk, not a larger build contract.

In practice we combine:

We start with minimum necessary access: usually read-only repo or staging. NDA available first. Method overview: AI evaluation framework. Services: what we test.

Common false confidence

Free tools to run before you hire anyone

  1. Coverage gap finder — tick what you already cover
  2. Launch risk score — urgency self-check
  3. 24-point launch checklist — owners and tracking
  4. Go / no-go — ship / wait / block language

No signup. Use them as homework for your launch thread.

When to get a second pair of eyes

Consider an independent pass when:

Book a free testing triage. Bring the product type, model setup, what you have already tested, and the date you are trying to protect. We come back with scope, timeline, and the first things we would check. No invented urgency from us.

FAQ

Do I need production access to start testing?

No. Staging plus clear roles is enough for a first pass. Read-only repo access helps when flows are hard to infer from the UI alone.

Is this only for LLM chat UIs?

No. Copilots, agents with tools, RAG assistants, and AI features inside SaaS all need journey + model coverage together.

How is this different from running Promptfoo or LangSmith?

Eval tooling helps automate checks and regressions. It does not replace product QA, permission checks, or fallback design. Use both. See our testing tools notes.

What if we built the app with AI coding tools?

Same failure modes still apply. Speed of build does not create test coverage. Start with the gap finder and this sequence; a dedicated AI-built apps guide is on the later calendar.

How many prompts is “enough”?

Enough to cover your top-cost failure modes with written pass rules, plus a few adversarial and miss cases. Quality of specification beats raw count.

Can we ship with open Medium findings?

Sometimes, with named owners and monitoring. Critical / High on data exposure or ungated writes usually means Wait or Block.