Product
Solutions
Pricing
Resources
Customers Support
Company
Book a demo
AI pull request testing

A QA verdict on every merge

Fire Your QA reads the change, the ticket and the code, then tests it in a real browser like a careful QA engineer would. Minutes later your team gets PASS, FAIL or a named blocker, with proof.

$ qa --ticket SHOP-482 Diff: frontend 6 files, backend 3 files Ticket: "Apply discount codes at checkout" Account: fresh test company + user created Slot: qa2 (own copy of the app) Running test script ........... run 1 of 4 Script crashed: selector changed. Repairing. Running test script ........... run 2 of 4 Verdict: PASS 12 steps, 14 screenshots Report → Confluence Evidence → Jira Summary → Slack
Four ways to start a run

Test a branch, a ticket, a pull request or just an idea

Run it by hand when you want a second pair of eyes, or let it watch your main branch and test every merge on its own.

Your branch

Compares your branch with main in every repository and tests what changed.

A ticket

Finds the code for a ticket, even across repositories, and uses the ticket text as the acceptance criteria.

A merged pull request

Finds the merge in your history and tests exactly that change.

A scenario

No code change needed. Describe a flow in plain words and it finds the feature in your code and tests it.

Hands off

It watches your main branch for you

Every 30 minutes it pulls the latest code, builds it once and picks up new merges. Nothing gets lost when the machine is busy or a build is broken: it remembers where it left off and catches up.

  • One run per ticket, even when the frontend and backend were merged separately.
  • Waits for the other half of a feature before testing, so you don't get false failures. After 72 hours it tests the half it has and says so.
  • Filter by author, or test every merge.
Tries to break it

Built to find bugs, not to confirm features

The agent follows a written testing approach: the happy path, real-world data, data that should be rejected, and two or three nearby areas that could have broken. It checks every place in the app that shows the same information, so a total that's right on one screen and wrong on another gets caught.

  • Reports side errors even on a passing run: console errors, error messages, untranslated text and failed requests.
  • Uses earlier runs on the same ticket so it doesn't repeat itself.
  • Reads the product manager's explainer video transcript when the ticket has one.
Honest results

Inconclusive only when something outside the code blocks it

When a test script crashes, the agent reads the output, the crash screenshots and the logs, fixes the script and runs it again, up to four times. It is not allowed to weaken a check to make it pass.

PASS

What was tested, step by step, with a screenshot of every step and the test data it created.

FAIL

Expected against actual, the network calls and console messages behind it, and the file and line in your code. The authors of the change get mentioned.

Blocked

Named outside blockers only, for example a third-party sandbox that is down. Never "the script didn't work".

Small things that matter

Made for a real team's day

Correct a run in plain words

"Also test the empty state." It continues the same session, reruns the test and rewrites the report.

Pauses on AI usage limits

When your AI plan hits its limit, runs wait for the reset instead of failing, then continue. Nothing noisy gets posted.

Runs in parallel

Two to four runs at once, each on its own copy of your app, so one test never changes another's data.

Fire your QA backlog,
not your team

Let agents test every pull request, keep your regression suites green and send your team clear reports, videos and bug tickets.