Web app testing

Every web ticket testedin a real browser.

Smoketest reads the ticket and the pull request, signs in with your test accounts, and works through the change in a cloud browser. You get the result, the recording, and every step on the ticket, from an AI teammate that did not write the code.

Book a callTalk to our founder. Test a real ticket the same day.
Acme › ACM-436In Progress
Show proration on the invoice PDF
Adding a seat mid-cycle shows the proration on the invoice preview and in the downloaded PDF. Both show the same amount.
Activity
SKSara K assigned this to Smoketest
Smoketest  Read the ticket, 6 comments, and PR #1204. The change touches the invoice PDF and the Billing page.
Ticket6 commentsPR #1204Playbook, 3 rules
Test plan2m 38s
1Sign in as a workspace AdminEmail codePassed
2Add one seat on the Billing pageStagingPassed
3Invoice preview shows the prorationOn screenPassed
4Invoice PDF shows the same amountDownloadFailed

Failed · 3 of 4 checks passed on PR #1204 · 2m 38s

The invoice PDF leaves out the proration line. The preview says $312.40 and the PDF says $294.00. Step 16 in the recording.

Not tested: other invoice languages, because the ticket only covers English.

RecordingStepsReasoning

Smoketest moved this to In Progress and assigned Kevin
StatusIn Progress
Assignee
KKevin
Pull request#1204
RecordingSaved
Failed on check 4

You get the result and the recording on the ticket.

It signs in, reads the email, and opens the PDF.

It works through the slow steps of a test the way a person on your team would.

Sign in as
Workspace AdminSigned in
MemberSigned in
Billing ownerSigned in

Logins and roles

Save a sign-in once for each test account. It refreshes after every run, so tests start signed in.

Test account inboxJust now
Your Acme sign-in code482913

Email codes and magic links

A test account can own an inbox, so it receives codes and links the way a real user does.

PDFinvoice-2041.pdf84 KB
Plan, 5 seats$294.00
Proration, 1 seat$18.40
Total due$312.40

Downloads and PDFs

Every download is recorded. It reads the name, size, and contents, including PDF text.

Goal: add one seat
Last weekAdd seat
This weekAdd a teammate
StepPassed

Screens that change

It works from the goal, the way a person would, so a renamed button does not fail the test.

Start URL for this run
pr-1204.preview.acme.dev
EnvironmentStaging EU
HTTP Basic AuthEncrypted

Staging and previews

Set a start URL for each board, or pass one for a single run from the API, CLI, or MCP.

Billing
Seats6
Proration$18.40
Billing
Seats6
Proration$18.40

Desktop and mobile widths

Choose desktop, mobile, or both, and every ticket on that board runs at those widths.

You move the ticket. Smoketest does the rest.

Your columns, assignees, and workflow stay as they are. People only step in where a person is needed.

1 Hand off
2 Read
3 Plan
4 Test
5 Report
Developer
Moves the ticket to Ready for QA
Fixes what failed, with the recording in hand
Smoketest
Reads the ticket and the pull request
Writes the checks and picks a test account
Runs them in a cloud browser
Posts the result and moves the ticket
QA lead
Sets the rules it plans from
Answers when a ticket needs a look
  1. 1 Hand off
    DeveloperMoves the ticket to Ready for QA
  2. 2 Read
    SmoketestReads the ticket and the pull request
  3. 3 Plan
    SmoketestWrites the checks and picks a test account
    QA leadSets the rules it plans from
  4. 4 Test
    SmoketestRuns them in a cloud browser
  5. 5 Report
    DeveloperFixes what failed, with the recording in hand
    SmoketestPosts the result and moves the ticket
    QA leadAnswers when a ticket needs a look

Every ticket comes back Passed, Failed, or No Result.

If a person moves a ticket while it is testing, it stops and never moves it back.

Acme › ACM-436In Progress
Show proration on the invoice PDF
The invoice preview and the downloaded PDF show the same amount.
Smoketest3 min ago
Failed 3 of 4 checks passed on PR #1204, 2m 38s
  • Signed in as a workspace Admin
  • Added one seat on the Billing page
  • Invoice preview shows $18.40
  • Invoice PDF shows the same amountExpected $312.40, the PDF says $294.00. Step 16 in the recording.
  • Not tested: other invoice languagesThe ticket only covers English.

RecordingStepsReasoning

Smoketest moved this issue to In Progress and assigned Kevin

Keep a passed ticket as a regression test.

Your coverage grows with every sprint, and nobody writes it by hand.

  1. Ticket test

    Written from the ticket and its acceptance criteria. Lives for the sprint.

    When a ticket reaches QA
  2. Regression

    Save it to your library and run it on deploys, pull requests, and pushes.

    On every deploy
  3. Production monitor

    Point it at production and get an alert when a flow breaks or recovers.

    Hourly, daily, or weekly

A QA teammate with no queue.

QA team memberSmoketest
Picks up a ticketWhen it reaches the top of their queueAs soon as it reaches QA
Logins and email codesSigns in and checks their inboxSaved sign-ins and its own inbox
PDFs and downloadsOpens them and compares by eyeReads them during the test
When the screen changesNotices and adaptsFollows the goal and adapts
Proof on the ticketA comment and maybe a screenshotResult, recording, and steps
Judgment callsMakes themLeaves a note and waits for a person

Your QA team stays in charge. Smoketest takes the first pass, and they keep the calls that need a person.

See what the first pass costs you each year.

Someone checks every ticket today. Move the sliders to see what those hours add up to, and what Smoketest gives back.

Back in your budget each year$52,0001,040 hours a year at $50 an hour
Book a call

Valued at $50 per hour, the U.S. median wage for QA analysts and testers (BLS, May 2025), over 26 two-week sprints. First pass only, before your Smoketest plan.

One team member for everything you ship.

When a ticket touches more than your web app, the same ticket runs on the other surfaces too.

SurfaceSandboxWhat it checksProof you get
Web appsSandboxCloud browser at any widthWhat it checksFlows, forms, logins, downloadsProof you getVideo, steps, transcript→
Mobile appsSandboxiOS simulator, Android emulatorWhat it checksScreens, gestures, deep linksProof you getVideo, steps, device log→
APIsSandboxAPI runner against stagingWhat it checksStatus, contracts, auth, side effectsProof you getRequest and response log→
MCP serversSandboxMCP client with a real modelWhat it checksSchemas, auth, real tool callsProof you getTool-call transcript→
AI agentsSandboxYour agent's real interfaceWhat it checksReplies, tool calls, side effectsProof you getConversation transcript→

Building something else? One team asked us to test their voice agent, so we are adding it. Propose your surface

Testing a web app comes down to five checks.

Whether a person or an agent does it, a good pass covers the same ground. Smoketest works out which of these a ticket needs, then runs them.

  1. 1

    The main flow

    Follow the path the ticket describes, from the first click to the saved result.

  2. 2

    Sign-in and roles

    Repeat it as each kind of user, including one who should not have access.

  3. 3

    Forms and bad input

    Try empty fields, odd characters, and the errors people see when something fails.

  4. 4

    Browsers and screen sizes

    Check the layout at phone width and on the browsers your users run.

  5. 5

    What happens behind the screen

    Confirm that the email arrived, the file downloaded, and the data saved.

Questions about testing web apps

No. It writes the test from the ticket, or from a sentence you give it. A renamed button does not fail the test, and nobody has to keep it up to date.

Yes. Capture a sign-in once and connect it to a test account. It refreshes after every completed test. If a session does expire, the ticket says so and waits for a new sign-in.

Give a test account its own inbox, or turn on inbound email for a test. It reads the message and carries on, the way a user would.

Yes. Set a start URL on the board, or pass one for a single run from the API, CLI, or MCP. HTTP Basic Auth credentials are stored encrypted.

It works with the test accounts you give it, the same as a person would. A test can include a cleanup section that runs after the result, and the run page warns you if cleanup did not finish.

Claude Code is good for a quick check while you build. The catch is that the agent that wrote the change is then grading its own work. Smoketest starts from the ticket, did not write the code, and leaves the proof where your team reviews it.

Every result links to the recording, the steps, and the reasoning, and says what it did not test, so you can check its work the way you would check a teammate's.

It starts at $399 a month for 1,000 runs. Each run is up to 10 minutes, and a longer test counts as two runs or more, one for every 10 minutes. If your team needs more, we design a Scale plan with you, so you stop buying extra runs.

Your next web ticket comes back tested.

Book a call and we will run one ticket on your staging site with you. You get the result and the recording the same day.

Ready for QA
Done
ACM-436
Show proration on the invoice PDF
Passed, recording