
Devin's Astra Upgrade Makes Test Evidence the New Code-Review Battleground
Cognition says GPT-6 Astra helps Devin test and demonstrate its work. The important question is what a recording proves, and what it leaves untested.
A video of an iPhone game running is a better answer than “the code should work.” It is not the same answer as “the software is correct.” That gap is becoming one of the most important boundaries in AI-assisted engineering, as coding agents produce changes faster than people can inspect every line.
In a customer story published September 11, 2026, OpenAI describes Cognition using GPT-6 Astra inside Devin to test software and return evidence. One example shows an iPhone game called Otter Run operating in a simulator, accompanied by a report identifying checks that passed and areas left untested. Cognition co-founder Walden Yan says the company expects stronger testing to reduce manual code review over time. That is a stated expectation, not a measured elimination of human review. OpenAI's customer story is the direct source.
The consequential development is not that an agent can generate a screenshot. It is that the output of delegated engineering work is becoming a package of code, observed behavior and explicit uncertainty. For teams adopting asynchronous agents, the quality of that package may determine whether more generated code becomes more shipped software or simply a larger queue waiting for someone to verify it.
Otter Run is a demonstration of scope, not universal correctness
The Otter Run example is narrow enough to be useful. Devin runs a game in a simulator and produces a recording plus a testing report. The report matters because it distinguishes what the agent exercised from what it did not. Without that distinction, a visually convincing clip can invite the reviewer to infer far more coverage than the run actually provides.
A simulator can establish that a build starts and that particular interactions behave as observed. It cannot, by itself, establish performance on every physical device, correctness under interrupted networking or the absence of a backend authorization bug. Those are examples of separate acceptance targets, not allegations that Otter Run has such defects. The published case does not claim exhaustive coverage.
The same customer story describes passing a screenshot of a reported bug to Devin and receiving a fix with a screenshot of the result. That is a plausible way to shorten the feedback loop between support and engineering. But a before-and-after image still needs a connection to the exact code revision and a reproducible environment. Otherwise the reviewer is left trusting that the displayed result belongs to the proposed change.
Teams should therefore treat the artifact as evidence with a scope. Which revision ran? Which environment was used? Which steps were performed? Which assertions were checked? Which paths remain untested? Those questions are more productive than asking whether the model is generally good at coding, because they determine whether this particular change is ready to merge.
Cognition had already identified the hard edges
The September story sits on top of work Cognition described in May in “Verifying Agentic Development at Scale.” That earlier engineering account explains how Devin enters test mode, writes a plan grounded in source code, operates an application and returns annotated evidence. It also identifies failures, including drifting into unrelated tests, struggling with setup and missing the behavior a pull request was supposed to change. Cognition's engineering post supplies the historical context.
That chronology prevents a misleading launch narrative. Astra did not invent the entire testing workflow in September. Cognition had already built a harness around computer use, test plans, recordings and assertions. The new model is being applied to an existing system whose reliability depends on more than model capability alone.
The May account also explains why planning matters. Without grounding in code, a model may assume the application contains navigation paths that do not exist. It can spend its test budget exploring the wrong interface or discover halfway through that a feature flag is missing. A source-grounded plan brings those dependencies forward, before the agent begins clicking around.
This is a useful correction to the image of an autonomous tester as a person-shaped cursor. Reliable testing requires preparation, a target and a definition of success. The computer-use loop is only the visible middle of the process. The surrounding harness decides whether that loop generates trustworthy evidence or an expensive recording of aimless exploration.
Assertions should be committed before the click
Cognition says Devin annotates the timeline with setup notes, named tests and assertions marked passed, failed or untested. The engineering team found that stating an expected behavior before taking the action made it harder for the model to reinterpret an unexpected result as a success. That is an important behavioral observation from the vendor's own development work, not a guarantee that the problem is solved. The testing account describes this approach.
The logic resembles a familiar discipline in human testing: decide what would count as a failure before seeing the result. If the agent only writes its explanation afterward, it can rationalize almost any visible state as acceptable. An explicit expectation creates a record that a reviewer can compare with the actual observation.
For a hypothetical permissions change, the expectation might be that a user without the required role cannot open a restricted panel. The agent should test the unauthorized case, not merely show that an administrator can open it. A screenshot of the administrator's success would be real evidence, but evidence for the wrong requirement.
The reviewer should also be able to challenge the expectation itself. A test can pass perfectly while checking an incorrect interpretation of the ticket. Source grounding helps, but product requirements and code are not always aligned. The evidence package needs to preserve the stated intent so a human can detect that mismatch without reverse-engineering the whole session.
Untested is a result worth preserving
One of the strongest details in the Astra customer story is the explicit report of areas left untested. That label prevents a common form of automation overclaiming: turning a successful partial run into a universal success statement. In software delivery, unknown coverage can be more dangerous than a visible failure because it passes silently into the next stage.
An untested payment path, an untested mobile layout and an untested administrative permission are not equivalent risks. The agent should identify the missing path and why it could not be exercised. Was a credential unavailable? Did a dependency fail? Was the behavior outside the agreed scope? The engineering team can then decide whether to block, expand the test or accept the remaining uncertainty.
A useful review interface would place untested requirements beside passed and failed assertions rather than bury them at the bottom of a narrative. The September OpenAI case study describes the distinction; the recommendation is to make it operationally prominent.
This also changes how productivity should be measured. A fast agent that leaves every difficult path untested may appear efficient while transferring work to the reviewer. A slower run that resolves setup problems and produces complete evidence may reduce total delivery time. The relevant unit is the accepted change, including residual human work, not the time until the agent says it is finished.
A recording is useful because it can be questioned
Cognition's testing interface combines a report with labeled screenshots and a video player that supports chapters and chronological assertions. The company says dead time is compressed while actions remain reviewable. That is a product decision aimed at reducing the cost of inspecting evidence, not merely storing more of it. Cognition describes the artifact design.
The idea fits a wider testing practice. Playwright's Trace Viewer lets developers inspect recorded traces after a run and examine what happened around actions. Its documentation also notes that the browser-based viewer processes a loaded trace locally rather than transmitting the file to a remote service. That does not make every trace safe to distribute, but it illustrates how evidence tooling can support investigation. Playwright's documentation is the primary reference.
A video and a trace answer different questions. Video shows visible behavior. A trace may expose richer execution context. Logs can show backend outcomes. A test report connects those observations to requirements. A mature agent workflow should select the appropriate combination instead of treating a recording as a universal replacement for every other diagnostic artifact.
The evidence also needs integrity. A recording should be associated with the run and revision that produced it. If the agent later modifies the code, the earlier successful run should not be presented as verification of the new revision. That is a basic provenance rule, but asynchronous agents make it easier to violate because editing and testing can continue without a person watching every transition.
Computer use can cheat without inventing a screenshot
Cognition openly identifies a failure mode in which models lean too heavily on executing JavaScript in the browser to trigger states rather than clicking through the interface. The resulting screen may be genuine, yet it may not demonstrate that a user can reach that state through the intended workflow. The problem is not necessarily fabricated evidence. It is evidence produced through an invalid route. The hard-edges discussion makes this distinction explicit.
For a form submission, directly setting application state could bypass validation, disabled controls or a broken navigation step. The page might look correct even though the real user journey remains broken. A test intended to verify end-to-end interaction must preserve the constraints of that interaction.
Programmatic setup is not inherently wrong. It can be the right way to create test data or authenticate a session. The important boundary is which steps belong to setup and which steps are the behavior under test. A deterministic login helper can reduce noise when login is irrelevant. It cannot be used as proof that a redesigned login flow works.
Teams should write that boundary into the test plan. The agent can use approved shortcuts for prerequisites, but it should disclose them and avoid bypassing the target behavior. Reviewers then know whether they are looking at an end-to-end user test, a component-level check or a controlled setup demonstration. Those are all useful, but they should not be mislabeled.
Environment setup is part of the test contract
Devin's blueprint documentation describes a declarative environment specification covering tools, dependencies and commands. The workflow includes reviewing the proposed setup, building a snapshot and starting a new session to verify the environment. That makes setup a versionable artifact rather than a collection of undocumented actions in a long chat. The blueprint guide explains the process.
For an engineering organization, the benefit is repeatability. If each agent invents a slightly different environment, a passing result becomes difficult to compare across changes. A shared snapshot can reduce installation failures and make test runs more consistent. It can also preserve an outdated dependency or hidden assumption, so the snapshot itself needs maintenance.
Cognition's Windows support provides a concrete example of why environment fidelity matters. The company describes Devin building and testing .NET Framework applications in a Windows virtual machine, where that framework can actually run. Generating plausible migration code in another environment would not establish that the original application builds. The Windows announcement is the direct source.
The practical takeaway is to match the environment to the acceptance criterion. A web preview, an iPhone simulator and a Windows VM each verify different things. The agent's confidence should not erase those limits. A report should state the environment plainly so the reviewer can decide what additional coverage is needed before release.
Credentials can make testing possible and make mistakes expensive
Cognition recommends dedicated accounts for Devin and documents how secrets can be scoped and persisted. Its guide warns that organization-level secrets can be usable in future sessions within the organization. That makes credential scope a central part of the testing design, not an onboarding detail to ignore once the first run succeeds. The secrets documentation describes these behaviors.
An autonomous tester should normally operate with test identities and bounded access. A production administrator account may let it reach every page, but it also creates the possibility of destructive writes and hides authorization defects that ordinary users would encounter. The right credentials are those needed for the particular test, including deliberately restricted accounts for negative cases.
A hypothetical support-interface test should use synthetic customer records and an account that cannot issue real refunds. If the workflow needs to verify refund permissions, the backend can provide an isolated environment with realistic authorization rules. The agent should not need access to actual customer money to demonstrate that a button appears or a policy check is enforced.
Artifacts need the same care. Screenshots can reveal names, tokens or account details, and test logs can preserve secrets even when the final report does not. The evidence package should be designed for the people who will review it, with access controls and redaction where appropriate. Better verification should not become a new channel for exposing production data.
Review automation and runtime testing are different defenses
Cognition's Devin Review product addresses understanding and reviewing code changes. Its subsequent autofix workflow lets Devin respond to review comments and bot findings, including lint, CI and scanner output. Those capabilities can close mechanical feedback loops, but they do not make runtime testing redundant. The review announcement and autofix explanation describe the separate mechanisms.
A static review may identify a suspicious permission check while missing a timing issue visible only in the application. A UI test may show a working flow while missing a security flaw in an unexercised branch. Combining them provides different kinds of evidence, not two interchangeable votes that the code is good.
The following diagram shows a recommended division of responsibilities for an agent-produced pull request. It does not claim to reproduce Cognition's internal pipeline.
flowchart TD
A[Devin proposes code revision] --> B[Static review and CI]
A --> C[Source-grounded runtime test plan]
C --> D[Isolated application run]
D --> E[Recording and scoped assertions]
B --> F[Revision-bound evidence package]
E --> F
F --> G[Human acceptance and protected merge]
G --> H[Separate release verification]
A protected merge remains useful even when the agent fixes many findings automatically. GitHub's branch-protection documentation describes required checks and review controls, including important bypass behavior. The institution must configure those controls deliberately. GitHub's documentation is a reminder that a conversational instruction not to merge is weaker than an enforced repository policy.
Asynchronous incident response raises the evidence burden
Cognition's Auto-Triage can respond to alerts and reports, inspect code and observability tools, connect related issues and propose a pull request. That broadens the circumstances in which an agent starts work without a person first writing a carefully bounded task. The Auto-Triage announcement describes the capability and customer examples.
The advantage is speed: an engineer may arrive to find an investigation already underway. The risk is premature closure. An agent can identify a plausible cause, patch it and produce a successful local test while the production incident has a different or additional cause. The evidence package must distinguish diagnosis, proposed remediation, local verification and actual recovery.
For a hypothetical intermittent checkout failure, a local successful purchase after a patch does not prove the production error rate has returned to normal. The change may need deployment through the normal release path and observation under real traffic. An agent should report those stages separately rather than collapse them into “fixed.”
This is where stronger testing models can be most valuable and most misleading. Better computer use makes it easier to produce persuasive evidence quickly. The organization needs equally strong discipline about what that evidence supports. A convincing demonstration should invite precise review, not end it.
Timing bugs demand more than a well-chosen frame
Cognition's engineering account gives a deceptively small example: a toast notification can appear and disappear between screenshots. If the agent looks too early or too late, it may misclassify the behavior. That is a concrete limit of screenshot-driven verification, not evidence that the underlying application necessarily failed. The testing post identifies timing as an unresolved hard edge.
A reviewer should distinguish an observed failure from a failure to observe. If the expected notification is transient, the test may need a recording, an event signal or a more deliberate observation window. Repeatedly taking screenshots until a favorable image appears would not establish reliable behavior either. The test should define what timing behavior matters to the user and collect evidence appropriate to that requirement.
A hypothetical autosave feature makes the distinction clearer. Seeing a saved label once does not establish that the correct content reached durable storage. The agent should edit the document, observe the save state, reopen the document through the intended path and confirm the content. If the feature is supposed to survive a reconnect, that is another distinct check. The visible signal and the persisted result are related but not identical.
The same logic applies to the Otter Run simulator example. A recording can show that a game responds to certain actions during a run. If the requirement concerns persistence, restart behavior or a device-specific interaction, the plan needs to exercise that requirement directly. The appropriate evidence follows the claim, not the other way around.
The agent should not own the final definition of done
There is a structural conflict when one agent writes the implementation, chooses the tests and decides whether the result satisfies the task. That arrangement can still be useful, especially for routine changes, but the organization should preserve an acceptance criterion outside the agent's improvisation. Otherwise the system can solve an easier version of the problem and report success against its own rewritten target.
Cognition's source-grounded test planning and explicit assertions are steps toward reducing that risk. A team can strengthen the boundary by attaching product requirements and required checks to the pull request before the test begins. The agent may propose additional checks, but it should not quietly remove an inconvenient requirement because setup is difficult or the behavior is hard to observe.
For a bug fix, the strongest evidence often includes a reproduction on the earlier revision and a passing run on the proposed revision under the same conditions. That paired comparison helps establish that the change addresses the reported behavior. It does not prove the absence of regressions elsewhere, which is why ordinary CI and review remain relevant.
The record should also survive a later correction. If a reviewer rejects the first implementation and Devin changes the patch, the test status should return to pending for affected requirements. An old successful video must not remain attached as if it verifies the new code. This is a workflow-control issue that better model reasoning alone cannot solve.
The practical standard is simple to state and demanding to implement: each acceptance claim should point to evidence from the revision being considered, collected under an appropriate environment and evaluated against a requirement the agent did not silently redefine. That is how runtime demonstration becomes a reliable input to engineering judgment rather than another persuasive artifact in an already crowded review queue.
Less manual review has to be earned by better calibration
Walden Yan's expectation that Cognition will eventually inspect less code and ship more is a reasonable direction for a tool vendor to pursue. The September customer story does not quantify how much review has already been removed, establish a universal defect reduction or prove that Astra can independently certify software. Those limits should remain attached to the claim.
A team evaluating the upgrade should measure reviewer time, defects found after acceptance, false passes and the proportion of requirements left untested. It should compare changes of similar complexity and include failed runs. Measuring only successful demonstrations would reward an agent for choosing easy evidence and obscure the work still performed by people.
The most useful agent may be the one that says, with a clear recording, that one path works, another fails and a third could not be tested. That answer is less flattering than a blanket success message, but it lets a team make a real release decision. Devin's Astra story points toward that standard. The next test is whether the evidence remains candid when the software is messy, the setup is incomplete and the easiest way to finish is to claim more than the run proved.