AI-Powered Regression Testing with Natural Language Test Case Generation

duolingo · Education · 2025 · source Agentic: yes · promotional bias: low · source-backed · extracted with prompt 0.5.4 (schema v2)

Generated from extraction.json — do not edit by hand. Every claim cites verbatim source evidence; stated means the quote directly asserts the claim, implied means it supports it indirectly.

Problem

Domain: Mobile app quality assurance

Duolingo needed regression testing that could keep up with weekly releases, extensive A/B variants, and fast product iteration without consuming large amounts of QA team time or requiring brittle code-heavy automation.

Constraints:

Architecture

Duolingo adopted MobileBoost's GPT Driver as a natural-language regression testing layer. QA authors describe target test goals in plain language, GPT Driver interprets each mobile screen on a virtual device, decides the next action needed to reach the goal, and records the live run for human review. The strongest design shift was moving from brittle step-by-step button instructions to goal-oriented prompts such as progressing until a success screen appears, which lets the LLM adapt to variant flows while keeping QA reviewers in the loop through stored recordings.

Diagram confidence: reconstructed (reconstructed from prose).

flowchart LR
  natural-language-test-authoring["natural-language-test-authoring"] --> gpt-driver-screen-interpreter["gpt-driver-screen-interpreter"]
  gpt-driver-screen-interpreter --> virtual-device-runner["virtual-device-runner"]
  gpt-driver-screen-interpreter --> software-layer-checks["software-layer-checks"]
  virtual-device-runner --> run-recording-store["run-recording-store"]
  run-recording-store --> qa-review-workflow["qa-review-workflow"]
Drag to pan · scroll or use +/− to zoom · reconstructed from the source's described component topology

Components

Component Role Interacts with
natural-language-test-authoring QA-facing interface for writing test intent without coding each UI interaction. gpt-driver-screen-interpreter
gpt-driver-screen-interpreter GPT-based executor that interprets each app screen and chooses actions toward the test goal. natural-language-test-authoring, virtual-device-runner, software-layer-checks
virtual-device-runner Runs the mobile test in a browser-visible virtual device environment. gpt-driver-screen-interpreter, run-recording-store
run-recording-store Captures and stores live test recordings for QA review. virtual-device-runner, qa-review-workflow
software-layer-checks MobileBoost checks or deterministic bypasses used when GPT interpretation behaves strangely or a clear next action can be executed directly. gpt-driver-screen-interpreter
qa-review-workflow Human review of stored runs to verify workflows and catch issues the LLM may work around. run-recording-store

Data flow

A QA team member writes a natural-language test case, runs it in GPT Driver, and watches execution on a virtual device. GPT Driver uses GPT-based interpretation of each screen to choose the next mobile action toward the stated success criteria. The run is recorded and stored, then QA reviews the recording to confirm that the workflow completed as expected and to spot bugs that did not strictly block progress.

3 supporting quotes
“GPT Driver is a toolset that can take natural language instructions and act on them on a virtual device.”article, stated
“have them type out a description of the test case they sought to fulfill, hit run, and watch the test play out in a browser in real-time.”article, stated
“GPT Driver records live test runs and stores them for easy review. Reviewing these runs has become core to our regression testing workflow.”article, stated

Why this architecture

Duolingo chose goal-directed natural language execution because its product variants made fixed scripts brittle. Letting GPT reason from the end goal made tests more reliable across uncertain flows, while recordings and QA review compensated for the risk that the LLM could work around non-blocking bugs. MobileBoost's software-layer checks added a deterministic escape hatch for cases where GPT interpretation was unreliable.

3 supporting quotes
“the Duolingo experience presents so many different variables and variants regarding our features and A/B testing methodology”article, stated
“we learned that our tests could be more robust and reliable if we allowed GPT to be more creative in its solutions to our goals.”article, stated
“introducing checks in their software layer or avoiding the GPT layer altogether where a clear next step can be directly executed.”article, stated

Models used: GPT · GPT Driver

Scale

Alternatives considered (roads not taken)

manual regression testing as the primary workflow

Rejected because: It consumed weekly QA bandwidth that Duolingo wanted to redirect toward bug fixes and new feature testing.

“which would allow the team to focus more on higher ROI tasks like supporting bug fixes and testing new features.”article, stated

rigid step-by-step UI automation

Rejected because: Specific button-by-button scripts broke down as screens and variants changed.

“rather than telling GPT Driver to tap on a particular button on a screen and then tap a different button on the next screen and so on (buttons that might change over time or scenario)”article, stated

enumerating every UI eventuality in prompts

Rejected because: The test cases ballooned after weeks of trying to handle every variant explicitly.

“After weeks of playing wack-a-mole and watching our tests quickly balloon into large lists of eventualities, we knew there had to be another way.”article, stated

Patterns

tool-use-orchestration (agent-architecture)

GPT Driver turns a natural-language testing goal into UI actions on a virtual mobile device, effectively using the app interface as the tool surface.

“GPT Driver is a toolset that can take natural language instructions and act on them on a virtual device.”article, stated

human-in-the-loop-gate (reliability)

Human QA reviewers remain responsible for auditing recorded test runs because successful completion does not guarantee that no bug occurred.

“Many bugs do not strictly block progress, so we need to know what occurred.”article, stated
“Reviewing these runs has become core to our regression testing workflow.”article, stated

fallback-degradation (reliability)

MobileBoost mitigates unreliable GPT interpretation by adding checks or bypassing the model where a deterministic next step is clear.

“introducing checks in their software layer or avoiding the GPT layer altogether where a clear next step can be directly executed.”article, stated

Tradeoffs

Use goal-oriented prompts instead of exact step scripts.

Chose broader success-criteria prompts over button-by-button UI instructions.

Rationale: Goal prompts were more robust to uncertain screen sequences but required recording review because the LLM might work around bugs.

“this natural language reframing of test cases allowed for more reliable runs even in the face of uncertainty.”article, stated
“Though more reliable, it can also introduce the potential for missing issues that GPT Driver was simply able to work around.”article, stated

Keep human review in the loop rather than fully trusting pass/fail automation.

Chose scrubbing stored recordings over treating automated completion as sufficient.

Rationale: The review step preserved visibility into non-blocking bugs while still reducing execution time from hours to minutes.

“Many bugs do not strictly block progress, so we need to know what occurred.”article, stated
“rather than manually running through these workflows, a process that previously took several hours for numerous QA Team members every week”article, stated

Gotchas (what bit them)

Specific step prompts made tests brittle across A/B variants.

Root cause: The app's weekly changes and variant flows made it hard to know which screen a test user would see next.

Resolution: Rewrite tests around broader end goals instead of enumerated button sequences.

“knowing what screen will be next for a user is often difficult to say with certainty.”article, stated
“if we instead wrote tests to achieve a broader goal like “Progress through the screens until you see XYZ””article, stated

LLM-driven tests can hide bugs by navigating around them.

Root cause: A goal-directed agent may complete the task even when intermediate defects occurred.

Resolution: Store recordings and make review of the run itself a core QA step.

“Though more reliable, it can also introduce the potential for missing issues that GPT Driver was simply able to work around.”article, stated
“GPT Driver records live test runs and stores them for easy review.”article, stated

GPT interpretation sometimes behaved unpredictably.

Root cause: Prompt directions can be misinterpreted, and the model can go rogue in ways that are hard to troubleshoot.

Resolution: Add software-layer checks or bypass GPT for clear next-step actions.

“interpretation from GPT can, at times, “go rogue” in ways that are difficult to troubleshoot or understand.”article, stated
“introducing checks in their software layer or avoiding the GPT layer altogether where a clear next step can be directly executed.”article, stated

Some content types remained hard for GPT-based testing.

Root cause: Complex challenge types involved nuanced translations or timed interactions.

Resolution: Treat those cases as limitations while waiting for LLM speed and accuracy to improve.

“GPT can struggle with our app's most complex challenge types due to long and nuanced translations or performing timed and complex interactions.”article, stated

Evaluation

Duolingo evaluated the system through operational regression-testing results: how quickly QA could create and review tests, whether runs completed expected workflows, and how much manual workflow time was reduced.

Metrics: tests for key scenarios generated within a few hours · recording review reduced a several-hour workflow to minutes · manual regression testing workflows reduced by up to 70%

“Within a few hours, we were able to generate tests for key scenarios like session progression, onboarding, and social features.”article, implied
“This process has reduced manual regression testing workflows by as much as 70%.”article, implied

Outcomes

The article reports weekly release testing, several-hour manual workflows for numerous QA team members, and up to 70% reduction in manual regression testing workflows.

“With little training, we could put the tool in front of any team member, regardless of coding knowledge”article, stated
“GPT Driver has sped up regression testing we feared might never be automatable”article, stated