Lucy Liu
October 2026 · Directing AI

How to Verify AI-Generated Code Without Coding

Watercolor illustration of a small paper receipt with a check mark beside a smooth gray stone

You test AI-built software by watching what it does. Send a real test record through the live front door, then open every place it should land. Break it on purpose with blank fields, a phone screen and signed-out access. Ask the AI what it ran and what it saw. When it says "fixed", rerun the test that failed.

I have never written production code. I have shipped our company's website, a lead pipeline and the client onboarding email system by directing AI tools. Everything below comes from that work, including the parts I got wrong.

What is the pre-ship checklist?

  1. Write down what "working" means. One sentence per job the thing must do. "A visitor submits the form, the team sees it in Slack, a row lands in the sheet, and the visitor gets an email." If you can't write that sentence, the AI has no target either.
  2. Push a real test record end to end. Use the live form, not a preview. Submit it the way a stranger would.
  3. Check every place it should land. Slack, the sheet, the inbox. Open each one.
  4. Try the unhappy paths. Blank fields. A malformed email. The same form submitted twice. A page you shouldn't reach while signed out.
  5. Load it at phone width. On a real phone if you have one.
  6. Have a different model review the work. A second model has different blind spots. Treat what it flags as leads to check.
  7. Ask for the receipt. What did you run, and what did you see? Then retest anything it called fixed.

Steps 2 and 3 catch the most, and they cost five minutes.

Why does "done" from an AI mean so little?

Early on, an AI tool told me a task was done. The message was confident and specific, the kind a good contractor sends. The code had never been run at all, not even with a bug in it. I had accepted a description of a finished job as the job.

The model produces plausible text, and "done" is plausible. Saying it costs the model the same whether the work exists or not. A contractor who claims a job is finished can be embarrassed when you drive past the building. The model can't.

I wrote the full story up in Verification Is the Job. This post is the routine that came out of it.

How does AI-built software fail quietly?

I've seen three patterns. None of them shows up on the screen you're looking at.

It fails silently

Nothing crashes and no error appears. The thing doesn't happen.

The first version of our lead pipeline worked as designed. Submissions landed in a Google Sheet. Nobody opened the sheet, because nothing told them to. I found the gap by submitting a test lead and going to look for it. It surfaced nowhere a person would see it. The fix was a Slack alert, and the story is in The Lead Pipeline That Runs While I Sleep.

A scheduled agent of mine did worse. My morning briefing pulled from Notion. The Notion token expired, the job still exited cleanly, and it posted an empty briefing to Discord. I went three days before noticing. That one is in Putting AI Agents on a Schedule.

You catch these by checking the destination. The chat window said success both times.

It only works on the happy path

AI tools write the case you described. The case you didn't describe is where they break.

When something works, I try the request nobody would put in a demo: the empty form, the missing setting, the expired login, the second click. Then I ask what the AI assumed would be there and what happens when it isn't. A tool that was only ever shown the case it was built for will pass every demo, because demos run the happy path.

AI-written tests don't save you here either. Rafaela Azevedo's report on testing AI-coded apps for Ministry of Testing found the agents' tests basic and built on wrong assumptions, with mocks so tangled into the code that her team had to work out by hand what was real. If the AI wrote the test, its passing proves little.

It fixes the symptom

You report a bug. The AI changes something and the error message goes away. The problem may still be there with no error message. Rerun the exact test that failed, on the live system, and look at the destination again. If you can't reproduce the original failure, you can't confirm the fix.

What should you ask the AI for?

The AI makes a decent witness if you ask the right questions:

My AI agents work under a written protocol, and one line in it carries most of the weight: an empty or vague completion receipt is a protocol violation. "Task complete" fails. "Updated the form handler, submitted a test lead, watched it arrive in Slack" passes. A tool that never ran the code has nothing true to put in that field.

The same setup covers step 6. Cheaper models do the typing, and a stronger model reviews their receipts before I do.

How is this different from other testing guides?

Most advice for non-coders is sound and stops early. Vibe Coder's guide to testing what you can't read covers core actions, an incognito window, unhappy paths and a test log. Use it. It checks that a signup email arrives, but it doesn't push you to confirm a record reached every system behind the form. It also skips a second model as reviewer and asking the AI for proof it ran anything.

My failures lived in those gaps. The screen looked fine and the destination was empty.

When is this routine not enough?

If your software takes payments, holds health records or stores anyone's login, treat this as the minimum. It catches failures that show up where you can look. It won't find a hole that only opens when one user asks for another user's data. For that, pay a technical reviewer to go through it once before launch.

What to do this week

Pick one thing an AI built for you that's live right now. Write one sentence saying what it must do. Send a test record through the real front door, then open every place that record should have landed. If one of them is empty, you've found a quiet failure, and you found it before a customer did.

FAQ

Can I test AI-written code if I can't code?

Yes. You judge the result, the way you would check a contractor's work. Submit real test data, confirm it arrives everywhere it should, and try inputs the builder didn't plan for.

How do I know the AI actually ran its tests?

Ask for the command it ran and the output it got. If you get a summary instead of output, assume nothing ran. Then run the key test yourself and check the destination.

Is a second AI model worth the trouble?

It's cheap, and a different model has different blind spots. Paste the work in and ask it to list what's wrong. Verify each finding before you act on it.

Shipping AI-built tools?

If you're a founder shipping tools an AI built and you want an operator to own the checking, book a call. I'll run this routine on your build and tell you what I find.

← All writingBook a call