goGreenlit
Back to the blog
Case Studies

Our QA Process When a Codebase Is Mostly AI-Generated

Mohammad Khan · August 31, 2026 · 7 min read

Co-founder and Lead Automation QA Engineer at GoGreenlit, builds Playwright and Selenium suites that run inside the CI pipeline.

A growing share of the codebases we get embedded in now have a majority of their code drafted by an AI assistant rather than typed line by line. This is not a hypothetical shift, it is simply what a normal engagement looks like more often than not at this point. The pattern we apply has not changed. What that pattern looks for, and where it looks first, has.

Does our QA process actually change for an AI-heavy codebase?

The order stays identical to every engagement we run: a structured audit before any new testing begins, coverage built for the highest-risk gaps first, automation layered on once paths are stable, and release sign-off criteria added last. What changes is what the audit specifically looks for, since an AI-heavy codebase concentrates risk in different, more specific places than a codebase written primarily by hand.

The pattern still starts the same way: audit first

Skipping straight to automation or a sign-off checklist is the mistake we watch for in every engagement, and it is a more expensive mistake specifically in an AI-heavy codebase, since the volume of change moving through it is usually much higher than a hand-written codebase produces in the same window. External research on teams with high AI coding adoption has found code churn increasing by roughly 861% and per-developer defect rates climbing from around 9% to 54%, numbers that make skipping the audit step a meaningfully bigger risk here than in a slower-moving, hand-written codebase.

What the audit looks for differently in this kind of codebase

  • Whether review has quietly become a rubber stamp, the specific habituation pattern where scrutiny declines the more consistently fine recent AI-generated changes have looked
  • Whether an independent quality gate actually exists, or whether the only check on AI-generated code is a test suite written by the same tool that wrote the feature
  • Where AI-generated tests pass for the wrong reason, encoding the same misunderstanding as the code they are supposed to be checking
  • Whether coverage volume has outpaced coverage quality, a large number of tests that collectively verify very little about actual risk

Where risk concentrates differently in an AI-generated codebase

Hand-written bugs tend to fail loudly and obviously. AI-generated defects tend to be quieter: edge cases the model's training data underrepresented, security and authorization assumptions baked in by a system with no real knowledge of a product's actual permission model, dependencies pulled in because they were common in training data rather than what the team actually standardized on. None of these are new categories of risk, they are the same categories any QA strategy for AI-generated code has to account for, just concentrated more heavily and appearing more often once the majority of a codebase was produced this way.

What the first 90 days actually looks like here

Weeks 1 to 2: mapping where review scrutiny has actually held versus quietly eroded

This is the part specific to an AI-heavy codebase: alongside the usual coverage map, we look specifically for signs of review habituation, PRs approved unusually fast, reviewers who approve nearly everything from the same tool, defects surfacing in code that already had an approving review attached to it.

Weeks 3 to 6: closing gaps ordered by risk, with extra weight on low-scrutiny areas

Coverage gets built for the highest-risk areas first, same as any engagement, with the areas that received the least real review scrutiny going in weighted higher than their raw feature importance alone would suggest, since that is exactly where a defect is most likely to have already slipped through undetected.

Weeks 7 to 12: an independent gate becomes a standing part of the process, not a one-time fix

By this point, a real, independent quality gate is running as part of the release process, not as a one-time cleanup exercise. This is the step most teams skip under deadline pressure and the one that keeps the volume of AI-generated change from quietly outrunning the process meant to catch its mistakes, the same discipline behind the 45% average reduction in escaped defects and climbing release coverage we track across engagements generally.

A composite picture of what this actually finds

The specific details below are a composite, generalized across the shape of what this kind of audit tends to turn up, not one identified client. A team that had adopted an AI coding assistant across most of its feature work eight months prior to an audit typically shows the same pattern: engineers genuinely pleased with shipping velocity, a test suite that looks reasonably large on paper, and almost nobody who can say with confidence what percentage of recently merged AI-assisted code actually got a real, traced review versus a fast approval. The audit's coverage map usually confirms what the review-pattern sampling already suggested, gaps cluster in exactly the areas where approval speed was highest and review depth was lowest, not evenly across the product.

This is not a surprising finding once you know to look for it, but almost nobody is looking for it specifically before an outside audit names it. Shipping velocity and review habituation move together, and a team living inside that velocity day to day rarely notices the second thing happening because the first thing feels like unambiguous progress.

What stays exactly the same

Risk-based prioritization, an audit before automation, sign-off criteria added once coverage is honest, none of that changes just because the code's origin did. See the pattern behind every successful QA engagement for the underlying mechanism this all traces back to. What an AI-heavy codebase changes is where that same discipline needs to look first, not whether the discipline itself still applies.

Frequently asked questions

Ready to put this into practice?

Tell us what you're building and where testing is falling through the cracks. We'll scope an engagement in one call.