Flaky Test Quarantine: Owners, Expiry, and Nonblocking CI Results
A confirmed flaky test can block unrelated changes without providing a dependable release signal. Removing that obstruction is reasonable only if someone still sees…
An AI assistant can open checkout, fill a form, and see a confirmation without leaving behind a regression test that another engineer can review and rerun. For an automation team, the important question is which part of that work becomes a durable artifact and which part remains a live browser interaction.
Playwright MCP provides a browser-tool interface for an MCP client. Playwright Test Agents organize planning, test generation, and repair through agent definitions. They occupy different layers, and the official Test Agents themselves combine instructions with MCP tools. Comparing their responsibilities is more useful than choosing one as a replacement for the other.
Model Context Protocol, or MCP, connects an AI host to tools. Microsoft's Playwright MCP server exposes browser automation through Playwright, using structured accessibility snapshots to represent page state. A host can use that information to select a target and request an action. The host and model direct the sequence; the server carries out browser operations.
That interface can support exploratory interaction or a larger testing workflow. Its outputs are not necessarily temporary: the README documents saving snapshots, session output, and other files, as well as code-generation options. However, a saved observation does not by itself establish a reviewed test plan, adequate assertions, or a repeatable regression suite. Those depend on the workflow built around the tools.
Playwright Test Agents add task-specific instructions and tooling for three roles: planner, generator, and healer. The documentation permits independent use, sequential use, or chained calls in an agentic loop. Their distinguishing contribution is the organization of testing work around plans, test files, and repairs, rather than a different browser engine.
Comparison Point | Playwright MCP | Playwright Test Agents |
|---|---|---|
Role | Browser-tool interface for an MCP client | Planner, generator and healer definitions combining instructions and MCP tools |
Starting Input | Host-selected tool call and current browser state | Task and seed for planning; Markdown plan for generation; failing test for healing |
Retained Output | Tool observations; snapshots or other files when saved | Markdown plans, generated test files and proposed repairs or skips |
Execution Responsibility | Host directs calls; server drives the browser through Playwright | Agent workflow explores, generates or repairs; Playwright Test executes test files |
Review Boundary | Check observed page state and authorized side effects | Review plan coverage, assertions, code changes and every skip |
Combined Fit | Supply live browser interaction to an agent workflow | Organize planning and maintenance around durable, reviewable test artifacts |
The setup boundaries also differ. Configuring the public Playwright MCP server in a compatible client does not automatically install the official Test Agent definitions in a project. Playwright documents a separate init-agents command for generating those definitions and recommends regenerating them after Playwright updates. Check the instructions and available tools for the installed versions rather than assuming that every MCP tool or client setup is interchangeable.
The agent roles provide useful handoff points because a reviewer can inspect intent before code and inspect code before accepting execution evidence. Each handoff still needs application context. A browser session that reaches the right screen cannot supply missing business requirements or decide which omissions are acceptable.
The planner takes a clear task, a seed test, and optionally a product requirements document. It explores the application and produces a human-readable Markdown test plan containing scenarios, steps, data, and expected outcomes.
The seed establishes how the agent reaches a usable application state. According to the documentation, the planner runs it to invoke initialization, fixtures, hooks, and project dependencies. A team's seed therefore deserves the same scrutiny as other setup code: it should establish an understood starting state rather than silently rely on whatever data a previous session left behind.
Treat the plan as reviewable intent. Before generation, compare it with the requirement and check negative paths, prerequisites, and expected outcomes. A well-formatted plan can still miss the condition most likely to expose a defect. Human readability makes that omission easier to find; it does not prevent it.
The generator consumes the Markdown plan and produces executable Playwright Test files. The official workflow describes live verification of selectors and assertions while performing scenarios. That is a documented capability, not evidence that a particular generated suite has already passed in your environment.
Review the files before adopting them. Look for assertions that express the requirement, setup that can be repeated, and selectors that identify the intended elements. A test that clicks the right button but checks only that the page remains visible may provide little evidence about the business operation.
Saved test files then have a separate execution path through Playwright Test. The runner executes them against configured projects and produces results that can be investigated and reported. Its normal headless default also differs from the MCP server's documented headed default, so the presence or absence of a visible browser window does not identify which layer owns the work.
The healer starts with a failing test. The documented process replays failing steps, inspects the current UI, suggests a patch, and reruns until the test passes or guardrails stop the loop. Possible changes include locator updates, waits, or data corrections.
The documented output can also be a skipped test if the healer believes functionality is broken. A skip is not evidence that the requirement works. Retain it as an unresolved coverage decision, with the underlying failure and proposed change available for review.
Review the diff against the requirement, not only the latest test result. A patch that removes the failing assertion may make execution green while discarding the behavior the test was meant to protect.
Consider CHECKOUT-ARCH-1.0, a fictional checkout design used here to compare responsibilities. Nothing in this example was run through a model, MCP server, Test Agent, application, or CI job. The proposed observations and filenames below are illustrations, not generated outputs or universal directory requirements.
The assumed starting state is an authorized, isolated nonproduction environment with one in-stock notebook in the basket. Basket and order data must be reset before each scenario. The requirement packet specifies two paths:
A useful handoff would preserve those same inputs and outcomes across representations:
The empty-email path exposes an important evidence gap. Seeing the validation message does not establish that no order was created. The team needs an approved observable for order creation, such as an application-specific test interface, before it can claim that outcome was checked. This design supplies no real URL, fixture API, reset implementation, or server-side observable, so it is not a deployable tutorial.
Keep a reviewer oracle separate from generation inputs if a later pilot evaluates omissions. For this packet, the oracle requires the negative scenario to remain present, the invalid submission to show the message and create no order, and the valid submission to satisfy all three outcomes. Use it to inspect the plan, generated files, and eventual results without treating agreement with a generated plan as independent validation.
Now apply CHANGE-1: the button's accessible name changes from Place order to Submit order, while checkout requirements stay unchanged. A name-based locator may need updating. The intended repair is to reach the same action through the new UI while retaining the email validation, no-order check, confirmation, order reference, and empty-basket outcomes in their respective scenarios.
A healer could propose that locator change after inspecting the failure. A reviewer should confirm that it targets the equivalent control, preserves the original action count, and leaves the business oracle intact. If checkout itself is broken, changing an expectation to match the defect would conceal the failure. If the test is skipped instead, record the gap rather than reporting coverage restored.
Assertions also need suitable waiting behavior. Playwright's auto-retrying web assertions are asynchronous and must be awaited; they repeatedly check the expected condition until it passes or reaches its timeout. This differs from rerunning an entire test. Waiting for Order confirmed may handle delayed rendering, but it cannot compensate for forgetting to check the order reference or the cleared basket.
The coverage boundary remains the reviewed requirement. Repair should preserve that boundary unless a person explicitly approves a changed requirement and its corresponding tests.
Both live exploration and test generation can cause application side effects. Before allowing either, establish the environment and authority the workflow needs:
Session configuration affects repeatability and exposure. The MCP README describes persistent profiles that retain logged-in information, as well as isolated sessions whose storage state is lost when the browser closes. Isolation can help separate a pilot from a personal session, but it does not establish that the application data was reset or that every operation is safe.
Playwright MCP explicitly states that it is not a security boundary. Its allowed-origin and blocked-origin options also do not cover redirects. Use environment separation, scoped access, and appropriate deployment controls rather than treating those options as a complete sandbox. These are recommendations for an authorized pilot, not a guarantee of secure production use.
Use an MCP interface when the immediate need is live browser interaction within a compatible host workflow. Use the official Test Agents when the missing work is a reviewable plan, generated test files, or investigation and repair of a failing test. Use Playwright Test to execute approved files and retain the resulting evidence. A team may need all of these layers, but it need not invoke every agent for every task.
For a first pilot, choose one bounded workflow and decide in advance what must survive each handoff: requirements, a reviewed plan, reviewed assertions, and an independently inspectable execution report. Evaluate those artifacts before expanding the scope. No speed, token-cost, or reliability ranking follows from this documentation comparison; the practical choice is the workflow that preserves the evidence your team needs to maintain and trust its tests.
A confirmed flaky test can block unrelated changes without providing a dependable release signal. Removing that obstruction is reasonable only if someone still sees…
A tester reviewing a Jira issue may need a fresh smoke run without opening GitLab and choosing pipeline parameters. A manually triggered Jira Cloud…
A regression-results worker receives HTTP 429 while reading Jira issues. Sleeping that worker may be necessary, but it will not help if other workers…
Create traceable test cases, prepare release-specific test runs, and keep approved coverage current as the product changes.