Edge case testing · Web, iOS & Android

Ship the Edge Case.
Not the Bug.

Get your edge cases out of the backlog and into the suite. Describe one in a sentence. Pie tests it and shows you what broke.

Fi
Tilt
Red Points
Dick's Sporting Goods
Lumo
Prado
Focal
Fairway
Teams shipping with Pie
More customers →

With and without Pie

Your Team Knows the Edge Case. It Keeps Losing to the Backlog.

Stop arguing over which edge cases earn a day of scripting. Describe one in a sentence and Pie drafts the test.

hours to clear that backlog
240
what that costs
$15,600
weeks of one engineer
6

Book a demo → We’ll walk through your backlog with you.

Based on what we hear from customers.

h
How we count

Hours = edge cases × hours to write one.

Cost = hours × hourly cost.

Weeks = hours ÷ 40.

This counts writing each test once and leaves out keeping it working. We quote Pie separately.

Edge cases by flow

Pick a Flow. See What Usually Breaks It.

Start with the cases that cost you most. Each line reads the way you’d write it for Pie, and each flow links to our long guide.

Checkout

  1. Pay with a test card that gets declined.

    Check the error says why, then pay with a good card.

  2. Pay with a test card that has no funds.

    Check the message differs from a decline.

  3. Apply a promo code, then remove the last item.

    Check the total isn’t negative.

  4. Go back from the confirmation page.

    Check you can’t pay for the order twice.

What you set up

Your payment provider’s test mode, for the flows Pie supports, and test data like a coupon or a saved card.

What stays with your team

Apple Pay and Google Pay sheets on a phone, and the one live charge you run before a release.

How to test payment and checkout flows

Sign-in

  1. Enter a wrong password.

    Check the message doesn’t say which field was wrong.

  2. Leave the email blank and submit.

    Check for a clear error, not a server page.

  3. Sign out, then press the browser’s back button.

    Check the dashboard doesn’t come back. A real run, see below

  4. Fail the password past your lockout limit.

    Check even the right password gets the generic error.

What you set up

A dedicated test login, and an account you can lock and reset.

What stays with your team

Proving the session ended on the server, and live SMS or authenticator codes. For those, use a fixed test code, a script that reads your test inbox, or a test account with 2FA off.

How to test login and authentication flows

Password Reset

  1. Use a reset link twice.

    Check the second try is rejected.

  2. Request two resets in a row.

    Check the first link no longer works.

  3. Reset the password.

    Check the old one no longer signs in.

  4. Open a link past its expiry.

    Check for a clear expired-link message.

What you set up

A script that reads your test inbox, and a test-only hook that ages the token.

What stays with your team

Whether your mail reaches real inboxes. Pie reads a test inbox.

How to test email verification and password reset

Long Lists

  1. With no orders, open Orders.

    Check for an empty state, not “Page 1 of 0”.

  2. With exactly one page of orders, open Orders.

    Check Next is off and there’s no empty page 2.

  3. With 23 orders at 10 a page, go to the last page.

    Check it lists 3.

  4. Sort the list while on page 2.

    Check paging starts over with no repeats.

What you set up

A script that seeds the records through your test API before the run.

What stays with your team

ID-by-ID totals and your API’s own paging. Those stay in your test code.

How to test pagination

Multi-Step Forms

  1. Fill two steps, go back, then go forward.

    Check your values held.

  2. Leave a required field blank.

    Check you can’t reach the next step.

  3. Refresh the page on step two.

    Check it resumes or restarts cleanly.

  4. Change your answer on step two.

    Check the right steps follow.

What you set up

Your decision on what a refresh should do. Write it in the test.

What stays with your team

Whether an abandoned form left a half-saved record. A screen can’t show that, so add a script that asks your test API.

How to test multi-step forms

File Uploads

  1. Upload a file over the size limit.

    Check for a clear message, not a hang.

  2. Upload an empty file.

    Check it’s rejected cleanly.

  3. Upload a PDF where an image belongs.

    Check for a clear message about the file type.

  4. Upload a corrupt image.

    Check it fails cleanly, not with a crash.

What you set up

On web apps, register each test file once in Pie.

What stays with your team

Cutting the connection mid-upload, and checking what an exported file actually holds.

How to test file uploads and downloads

How you add one

Say It in a Sentence. Pie Drafts the Test.

Turn the case your team just thought of into a test. No test code to write, no locators to break, and the test runs when you say so.

  • Say it like a teammate would.One sentence is enough to start.
  • Read it before it runs.Every step and check is there in plain words. Ask for a change until it’s right.
  • You say when.Pie creates the test and runs it when you press the button.
Pie’s Chat with a real request: draft a test that signs in, signs out, presses the browser back button and checks that the dashboard does not come back. Pie’s Drafted test case card lists the objective, four steps and two checks, with Login and Setup scripts menus and a Create test case button.

Draft a test: sign in, sign out, press the browser back button, and check that the dashboard does not come back.

Drafted test case

Objective

Verify that signing out clears the session and prevents returning to the dashboard via the browser back button.

What Pie will do

  1. Sign in to the application using the default authentication credentials.
  2. Locate and click on the user profile or settings menu to access the sign-out option.
  3. Click ‘Sign out’ to terminate the current user session.
  4. Click the browser back button to attempt to return to the dashboard.

What should be verified

  • The user is successfully signed out and redirected away from the dashboard.
  • Pressing the browser back button does not restore the authenticated dashboard session.
Create test case
Not sure what to test next? Pick Explore edge cases in Chat and Pie answers from your own tests, runs and issues. On our own app it suggested removing a suite’s last test and naming a suite with odd characters.

What comes back

It Worked on the Happy Path. Here’s Where It Didn’t.

See what your customer would see, with every step to get there. This one’s from a real run. Pie signed out of a test app, pressed back and the dashboard returned.

A real Pie run on a test app. After signing out and pressing the browser back button, the screen shows the app’s Dashboard again, with the user still shown in the top right. The app’s name and the test login are hidden.

Failed

Verify User Sign-Out and Session Termination

  1. Enter the user email.
  2. Enter the password.
  3. Tap the Sign in button.
  4. Open the user profile section.
  5. Select the sign-out option.
  6. Click the browser’s back button.

What it checked

Performing a back-browser action does not grant access to the dashboard.

What Pie saw

The Dashboard, with the user still shown as signed in, after going back from the login screen.

Cached page or live session? That’s your team’s call. Track it and Pie re-checks it on every run, or dismiss it.

A real run on a test app we keep for this. We hid the app’s name and the test login.

The basics

New to Edge Case Testing? Start Here.

Get up to speed in eight short answers, from what an edge case is to which ones earn a test.

Edge case testing checks what your app does when someone leaves normal use behind. They leave a field empty, paste a 10,000-character name, press back after signing out or remove the last item from a cart.

The happy path never goes there, so a green suite says nothing about it. Each case is rare on its own, but together they reach real customers.

Our guide to test coverage shows where these cases fit in the rest of your testing.

A shopper applies a promo code, then removes the last item from the cart. The total should read $0.00. Instead it reads −$50.00, and Pay stays on.

Here’s a real one, the run shown on this page. A user signs out, presses the browser’s back button and lands on the dashboard again.

An edge case pushes one condition to its limit, like a name at the maximum length. A corner case needs several at once, like that name on an expired session during a slow upload.

Boundary testing is a way to find them. For a field that takes 1 to 10, you try 0, 1, 10 and 11.

Negative testing sends what the app should reject and checks that it fails cleanly. Teams use these words loosely, so agree on what yours mean.

Start with bugs you’ve already shipped and your support tickets. Then walk each flow and ask what happens at none, one, the maximum and one past it, and what happens if someone goes back, refreshes or leaves halfway.

A person exploring the app finds the ones nobody thought to list. In Pie, you can also ask Chat “What edge cases should I be testing?” and it answers from your own tests, runs and issues.

Rank each one by what it costs when it breaks and how often real users get there. Money, sign-in and lost data go first.

Add every odd case that has already reached a customer, so it can’t come back unnoticed. A rare case that does no harm can wait.

It can suggest them and it can run them, but it can’t tell you which ones matter to your business. That call stays with your team.

Pie’s agents explore the flows they can reach and write tests, and Chat can suggest where to look next. Neither promises every odd input on every form, so write down the cases you can’t afford to miss. Here’s what AI testing can and can’t do.

Automate the ones you’d hate to ship twice and the ones a person forgets to retry. Keep by hand what needs judgment or real hardware.

With scripts, that choice is expensive. Each case takes time to write and more time to keep working. Written in plain English, a case costs a sentence, so more of them earn a place in the suite.

You get more ways to interrupt a flow, like a denied permission, an old OS version or an app sent to the background.

Pie tests iOS apps on the iOS Simulator and Android apps on the Android Emulator, so a bug that only shows on real hardware needs a physical device. Keep a short pass on your lowest and highest supported OS versions. Here’s when each one fits.

Customers

Faster Releases, Without Breaking What Works.

Days → Hoursrelease testing
“As we scale our products and offerings it’s really important to make sure we don’t ship something that breaks the existing experience for our users.”
Jonathan Bensamoun Jonathan BensamounCEO, Fi
Read the Fi case study →
0 Manual Regression5 apps · 3 markets
“After evaluating multiple vendors, Pie was the only solution that consistently executed our most complex end‑to‑end workflows with reliability across builds.”
Anil Kumar LekkalapudiDirector of QA & Automation, Tilt
More customer stories →

Security

Yes, Security Will Ask. Here’s What to Tell Them.

  • You Pick the Test Account.Pie signs in with the test login you give it. A setup script can call your test API to create the data first.
  • We Never Use Your Source Code to Train AI Models.Source code here means the files and code changes in your repositories.
  • Logins Reach Pie’s Agents Only While a Test Runs.You keep them in Pie’s credential settings.
  • Pie Has a SOC 2 Type 2 Report.Our most recent report is available on request. Data is encrypted in transit.
Security at Pie →

FAQ

Did we miss a question?
Email us directly →

Does Pie Find Edge Cases on Its Own?

Some. Point Pie at a URL or a build and its agents explore the flows they can reach and write tests, and some of those leave the happy path.

That’s no promise about every form or every odd input, so name the cases you can’t afford to miss. Not sure where to start? Ask Chat “What edge cases should I be testing?”

How Do We Know We’ve Covered Them All?

You can’t, and no tool can tell you. Edge cases have no complete list.

What you can know is what you’ve tested. Every test reads in plain English, so your team can scan the list and spot the gaps. When a bug gets through, add it as a test so it can’t come back unnoticed.

Will Pie Catch a Bug That Only Shows on Physical Devices?

No. Pie tests iOS apps on the iOS Simulator (a simulator .app build), Android apps on the Android Emulator (an .apk), and web apps in a browser. A freeze that only shows on real hardware can pass on a simulator.

A device cloud or a short manual pass catches those. We’d keep one on your lowest and highest supported OS versions, alongside Pie.

What Can’t Pie Test?

Load and performance, security and penetration testing, and real hardware like NFC, Bluetooth and GPS. Pie also doesn’t read live SMS or authenticator codes, so use a fixed test code, a script that reads your test inbox, or a test account with 2FA off.

For a dropped network or a date change, Pie needs a control on your side, like an offline switch or a test hook.

Do We Have to Write the Tests?

No. Describe the case in plain English and Pie drafts it, then your team confirms it. There’s no test code to write and no locators to maintain.

Prefer code? Playwright and Cypress are free and give you full control, and they’re a good home for a case you need to pin exactly, like two clicks a few milliseconds apart. Your engineers write and maintain those scripts.

How Do We Set Up the State a Case Needs?

Give Pie a test login for each kind of user. For anything harder to reach, a setup script can call your test API first to seed the records, age a token or turn a flag on.

Pie then uses the screen the way a customer would and checks the result. Our guide covers how to write the prompt.

How Do We Know a Failure Is Real?

Read it. Every failure shows what Pie expected, what it saw and a screenshot of each step.

A failed test only becomes an issue when Pie confirms it points to a real product bug, and related findings land in one issue. A test that hits a blocker fails at that step, so a stop never reads as a pass.

You make the final call on each one.

What Happens When the UI Changes?

If a button’s ID or text changes, Pie can still find it by its context, position and function. When a redesign changes the flow itself, update the test in plain English or ask Pie to fix it.

Where Do the Results Go?

To your report in Pie, steps and screenshots included. Connect Jira for issues and Slack for run status and alerts.

With Fix PRs, Pie opens proposed fixes as pull requests in repositories you connect, and merging stays your team’s call.

Pie also works with GitHub, GitLab, Linear, Asana, Bitbucket, CircleCI, Jenkins and Bitrise, and has an API and an MCP server.

How Is It Priced?

Book a demo. We’ll walk through your suite and release schedule and give you a quote.

Your Customers Will Find the Edge Case. Get There First.

Describe it once, add it to your suite and Pie keeps checking it.