QA FOR WEBSITES, iOS AND ANDROID APPS

Describe the test. We run it. You get the proof.

For small teams shipping with coding agents. Describe your release check in plain English. Testsy runs it in Chrome or on iPhone, iPad and Android phones and tablets, and returns the verdict, evidence, replay and a fix prompt your coding agent can act on.

10 free runs, no card First verdict in about 3 minutes
PREVIEW
A Testsy run, from requirement to proof 1 Define2 Run3 Result
Chapter 3 · The result: verdict, values, replay, hand-off0:20 / 0:20

01 · YOU DEFINE THE REQUIREMENT

Write it like you'd tell a colleague.

No scripts, no selectors, no recorder. One box: what to do, and what must be true to pass. Testsy drafts the steps and checks, and you review them before anything runs.

  • A website address, or an iOS / Android build uploaded from your pipeline
  • Sign-in accounts stored once; the password never goes in the box
  • Files for uploads and imports, attached to the test
  • Test sign-up end to end: receive the confirmation email and follow its link
  • Or let your coding agent write the test over MCP
PREVIEW
PREVIEW

02 · WE RUN IT, FOR REAL

A real browser, or your app on iPhone, iPad and Android — live on your screen.

Testsy works the app the way a person would: it reads the screen, decides the next action and records the value it sees at every check. Watch it live, or let CI wait for the verdict.

  • Chrome on desktop, tablet and phone screens
  • iPhone and iPad on iOS 27, 26, 18 and 17 · Android phones and tablets on Android 16 to 10, upright or on their side, reset before every run
  • Choose from the network regions available in your workspace
  • Most first runs finish in about 3 minutes; repeat runs replay the learned path

03 · YOU GET THE RESULT, THE PROOF AND THE REPLAY

A green tick is a claim. A value is proof.

Every check shows the value it was decided on and where on the screen it was read. A failure comes with expected versus seen, the step, steps to reproduce, and a fix prompt you paste straight into your coding agent.

  • See the proof: the exact screen region each value was read from, outlined in the replay
  • Copy fix prompt: the failure, values and steps as one prompt for Cursor, Claude Code or Codex
  • Five tabs on every result: Replay, Video, Values seen, Console and Network (plus the device log for apps)
  • Share a read-only link, copy it as an issue, or fetch the same result as JSON and JUnit
PREVIEW

Four honest outcomes. Blocked is never a run you pay for.

These are the verdicts exactly as they appear at the top of a result.

PassedAll 3 checks passed
Every check passed.

Each check confirmed against a value the tester actually saw, with where it was read.

Counts as a run
Failed1 of 2 checks failed
A check failed.

Expected versus seen, the step it was judged at, steps to reproduce and the moment in the replay.

Counts as a run
Blocked2 of 3 checks could not be confirmed
The site stopped the tester, so some checks could not be done.

A bot wall or sign-in got in the way. The result says where, instead of calling it your bug.

Not billed
Inconclusive1 of 3 checks could not be confirmed
The tester could not tell for sure.

The evidence wasn't on screen to decide. The result says what was missing; nothing is rounded up to a pass.

Counts as a run

FOR DEVELOPERS

The same three steps, from your CI or your coding agent.

Run a project's tests after every deploy and choose which outcomes fail the build. Or let Claude Code, Cursor or Codex define, run and read Testsy tests over MCP, so your agent verifies its own work in a real browser.

  • GitHub Actions, GitLab CI or any CI through a one-file CLI
  • JUnit report, a GitHub step summary, exit code 1 on a failed check
  • A REST API and an MCP server that do everything the app does with tests and runs
  • Every result shows the CI job, branch and commit that started it

Read the docs: CI, MCP and the API →

.github/workflows/testsy-ai.yml · from Integrations in the app
name: Testsy
on:
  deployment_status:
  workflow_dispatch:
jobs:
  qa:
    if: github.event_name == 'workflow_dispatch' || github.event.deployment_status.state == 'success'
    runs-on: ubuntu-latest
    steps:
      - name: Run Testsy tests
        env:
          TESTSY_AI_API_KEY: ${{ secrets.TESTSY_AI_API_KEY }}
          TESTSY_AI_URL: https://app.testsy.dev
        run: |
          curl -fsSL "$TESTSY_AI_URL/cli/testsy-ai.mjs" -o testsy-ai.mjs
          node testsy-ai.mjs run --project p_workspace --junit testsy-ai-junit.xml
      - uses: actions/upload-artifact@v4
        if: always()
        with: { name: testsy-ai-junit, path: testsy-ai-junit.xml }
$ node testsy-ai.mjs run --project p_workspace --junit testsy-ai-junit.xml
started j_8f2k4 (cold) https://app.testsy.dev/o/launchpad/runs/j_8f2k4
started j_8f2k5 (warm) https://app.testsy.dev/o/launchpad/runs/j_8f2k5
started j_8f2k6 (warm) https://app.testsy.dev/o/launchpad/runs/j_8f2k6
✅ passed Sign in shows the account name — Every check passed.https://app.testsy.dev/o/launchpad/runs/j_8f2k5
✅ passed Email confirmation opens the dashboard — Every check passed.https://app.testsy.dev/o/launchpad/runs/j_8f2k6
❌ failed Project title survives a reload — The saved project title reverted to Untitled.https://app.testsy.dev/o/launchpad/runs/j_8f2k4
JUnit report: testsy-ai-junit.xml

2 passed, 1 failed · exit code 1

PRICING

Pay per run. No seats, no minutes.

One run is one test on one platform. Web, Android and iOS share the same allowance. Every run stops at 20 minutes and never costs more than one run.

WHICH PLAN FITS? MOVE THE SLIDERS

Platforms
About 346 runs a month
Team
$149 a month
500 runs included, 154 to spare.
about $0.43 per run at your volume
Start with Team

Free trial

Fits your numbers
$0once

Try it on your own site or app.

  • Runs10, once
  • Web runs at once1
  • App runs at once1
  • Projects1
  • Extra 50 runs—
Start free

Starter

Fits your numbers
$49/month

$0.49 a run

  • Runs100 / month
  • Web runs at once5
  • App runs at once1
  • Projects2
  • Extra 50 runs$30
Choose Starter

Team

Fits your numbers
$149/month

$0.30 a run

  • Runs500 / month
  • Web runs at once10
  • App runs at once3
  • Projects5
  • Extra 50 runs$20
Choose Team

Growth

Fits your numbers
$299/month

$0.25 a run

  • Runs1,200 / month
  • Web runs at once20
  • App runs at once10
  • Projects15
  • Extra 50 runs$15
Choose Growth
Every plan includes Live view Replay, video and screenshots Values behind every check CI, CLI, REST API and MCP Web, iOS and Android

Need more than Growth?

More than 1,200 runs a month, more runs at the same time, invoicing, a security review or a dedicated region — we set it up for you.

Contact sales

Questions

What counts as a run?

One test executed on one platform. Running the same test on the web and on Android is two runs. Web, Android and iOS runs come out of the same allowance. A run the site blocked is not billed.

What happens if a run takes long?

Every run stops at 20 minutes. There are no duration extensions and no charges for time: a run is one run however long it takes.

Do I need to write code or selectors?

No. You write what should happen in plain English and review the steps and checks Testsy drafts. Developers can still drive everything from CI, the CLI, the REST API or MCP.

How is this different from other AI testing tools?

Every verdict shows the value it was decided on, where it was read and on which step, with the screenshot and the moment in the replay. And a site that blocks the test is reported as blocked, not as a bug in your app.

Can it test pages behind a sign-in?

Yes. Add a sign-in account to the project once and name it in the test. The password never goes in the test text, and never appears in results.

How do I test my mobile app?

Upload an Android .apk or a zipped iOS .app from the dashboard, the CLI or CI, then write the test against that build. Choose iPhone or iPad, an Android phone or tablet, and the OS version: iOS 27, 26, 18 or 17; Android 16 to 10. A new test runs on a phone with the latest version, held upright; it can start on its side instead, and a test can turn the device during the run. Every run starts on a device that has been fully reset.

What does the free trial include?

10 runs, once, on one project with one run at a time. Web, Android and iOS are all included. No card needed.

Describe one test. See the proof in three minutes.

Start with the flow that would hurt most if it broke. We run it; you get the verdict, the values and the replay.

Run your first test free Contact sales
10 free runs. No card needed.