Software testing checklist

A software testing checklist.So you know what to test.

The checks worth running before every release, and the ones only phones need. Each has steps anyone can follow and the result you should see. Take it as a spreadsheet, or work through it in qarunbook.

Free to download. No email, no sign-up.

01Checks
37

Across the release and mobile checklists together.

02Each check
5 fields

ID, journey, preconditions, steps and expected result.

03Platforms
Web · Android · iOS

A result column for each, N/A where it doesn't apply.

04Download
Free

Excel, CSV or Markdown. No email, no sign-up.

Testing isn't the hard part.Knowing what to test is.

Most bugs that reach users weren't hard to find. Nobody had written down that they needed looking for.

01Problem

Everything feels worth checking

An app has hundreds of things that could break. Without a list, testing is whatever someone remembers to try that day.

02Problem

The steps live in one person's head

“Check the checkout” means something different to everyone. If the steps and the result aren't written down, nobody else can repeat the test.

03Problem

Fixed gets mistaken for checked

A bug marked fixed is a claim, not a result. Unless someone checks it again, on the platform it was found on, it ships on trust.

The checklist.Two templates, on one page.

There's no single list that fits every app, so this one is built from two of our templates: the release checklist, for any app, and the mobile app testing checklist, for apps on Android and iOS.

Both are below in full. Add your own app's features as new checks in the same shape.

01Checklist

Release checklist

16 checks · 4 sections · Web, Android, iOS

Run it on every app, before every release. It covers web, Android and iOS.

Why these checks: What to test before you ship an update

Fixes from last round FIX

  • FIX-01
    Every issue marked fixed is checked again
    The original steps no longer produce the bug, on the platform it was reported on.
  • FIX-02
    The fix did not break its neighbours
    Nothing next to the fix has changed behaviour.

What changed CHG

  • CHG-01
    The new feature, happy path
    It does what the release notes claim.
  • CHG-02
    The new feature, refused path
    It fails clearly, without losing the user's work.
  • CHG-03
    The screen the change sits on
    Everything else on it still works.

Never ship broken CORE

  • CORE-01
    Sign up
    Account created, verification arrives, app opens.
  • CORE-02
    Sign in and sign out
    Both work; sign-out clears the session.
  • CORE-03
    Password reset
    The new password works, the old one does not.
  • CORE-04
    The one thing the app is for
    It completes, with the result the user expects.
  • CORE-05
    Take a payment
    Payment succeeds, receipt matches, nothing is charged twice.
  • CORE-06
    Upgrade over the previous build
    Still signed in, data intact, no re-onboarding.
    N/A on Web

Before you press publish SHIP

  • SHIP-01
    Build number and version raised
    Both raised from the last release.
  • SHIP-02
    Crash reporting reaches the dashboard
    It appears in the dashboard within minutes, with a readable stack.
  • SHIP-03
    Emails go out, and not to spam
    Both arrive, in the inbox, with working links.
  • SHIP-04
    Links in the app work
    Each opens the right page.
  • SHIP-05
    Rollback plan exists
    Someone knows how, and it is written down.
02Checklist

Mobile app testing checklist

21 checks · 5 sections · Android, iOS

Add it when the app runs on a phone. It covers what only Android and iOS do.

Why these checks: Mobile app testing checklist

First run and permissions ONB

  • ONB-01
    First launch after install
    It opens without a crash, on the intro or sign-in screen. Nothing flashes and disappears.
  • ONB-02
    Permission asked in context
    The prompt appears only when the feature needs it, with a line saying why.
  • ONB-03
    Permission denied is survivable
    The app keeps working with a manual alternative. No loop of prompts, no crash.
  • ONB-04
    Permission granted later
    The app notices without a restart, or says clearly to restart.
  • ONB-05
    Notifications denied
    The app continues, and never asks again on every screen.

Interruptions and state INT

  • INT-01
    Phone call mid-task
    The form still holds what was typed.
  • INT-02
    App backgrounded for 30 minutes
    The app restores where it was, or signs out deliberately with a message. It does not show a blank screen.
  • INT-03
    Rotation
    Nothing is lost and nothing is cut off.
  • INT-04
    Low battery mode
    Animations may drop, but the journey completes.
  • INT-05
    Killed and reopened
    Still signed in, and the last screen or the home screen opens.

Network NET

  • NET-01
    No connection
    A clear "no connection" state with a retry, not an endless spinner.
  • NET-02
    Slow connection
    A progress state appears within a second, and the action is not sent twice.
  • NET-03
    Connection drops mid-submit
    The app says the action may not have completed, and retrying does not create a duplicate.
  • NET-04
    Back online
    Queued work completes or is clearly discarded. Nothing is silently lost.

Devices and display DEV

  • DEV-01
    Small screen
    No text cut off, no button off-screen, nothing under the notch or home bar.
  • DEV-02
    Largest text size
    Text reflows and stays readable. Buttons still show their labels.
  • DEV-03
    Dark mode
    Every screen follows, with readable contrast. No white flash on launch.
  • DEV-04
    Keyboard covers the field
    The field scrolls above the keyboard, and the submit button is reachable.

Updates and store REL

  • REL-01
    Upgrade over the old version
    Still signed in, local data intact, no forced re-onboarding.
  • REL-02
    Deep link from outside
    The right screen opens, signed in or with a sign-in that returns there afterwards.
  • REL-03
    Store listing matches the build
    Screens shown in the store exist in this build.

What each check holds.Enough for anyone to repeat it.

A line like “test the upgrade” is a reminder, not a check. Each row in the checklist says what has to be true first, what to do, and what you should see, on each platform.

Here is CORE-06, taken straight from the release checklist.

ID
CORE-06
A short reference, with the section's code in front, so a check can be talked about without describing it.
Journey
Upgrade over the previous build
What is being checked, in a few words a person would say out loud.
Preconditions
Previous version installed, signed in
What has to be true before you start: the account, the data, the setting.
Steps
1. Install this build over it.
Numbered, so anyone can follow them — not only the person who wrote them.
Expected result
Still signed in, data intact, no re-onboarding.
What you should see. A check passes or fails against this line, not against a feeling.
Platforms
WebN/AAndroidto testiOSto test
One column per platform the app ships to, for the result. N/A where a check does not apply, so nobody tests it there.

Download it.In the format you work in.

Excel and CSV give one row per check, with the section in the first column. Markdown keeps a heading per section.

Every file imports straight into qarunbook as it is.

01Download

Release checklist

16 checks · 4 sections · Web, Android, iOS

02Download

Mobile app testing checklist

21 checks · 5 sections · Android, iOS

Rather have it by email?

Optional. We’ll send both checklists, with a link to every format.

You’ll get the file, plus occasional product news. Unsubscribe any time. See the privacy policy.

Need a full plan rather than a checklist? The template library also has a UAT test plan and a blank import template.

Work through it in qarunbook.With your team, or with AI.

A spreadsheet tells you what to test. It doesn't keep track of who tested it, on which platform, or whether a fix was ever checked again.

Import the checklist and every check gets a result on each platform, with a name against it.

01Step

Create a free workspace

No card needed. You can download the templates without one; you only need it to work through them here.

02Step

Add an app and choose “Use our template”

Upload the file — Excel, CSV or Markdown, whichever you edited. It is read exactly as written, with no AI and nothing guessed.

03Step

Work through it

Every check becomes a row with a result for each platform. Issues stay on the check that found them, and a fix waits for a retest before it counts as a pass.

Questions,answered.

The release checklist guide and the mobile testing guide explain the checks in more depth.

Is this checklist complete for my app?
No list is. This one covers what tends to break between releases and what only phones do. Your app's own features need their own checks: add them as new rows in the same format, with steps and an expected result.
Where did these checks come from?
They are two of the qarunbook templates, shown together: the release checklist and the mobile app testing checklist. Each has its own guide explaining why the checks are there.
Does it cover automated tests?
No. It's a checklist for people to work through by hand, the way you test a release or run user acceptance testing. qarunbook is a workspace for that kind of testing; it doesn't run automated tests.
Can I use it without qarunbook?
Yes. Download it as Excel, CSV or Markdown and use it however you like. Importing it into qarunbook adds a result per platform, issues on the checks that found them, and retests for fixes.
What does N/A mean in a platform column?
That the check doesn't apply there, so nobody needs to test it. Upgrading over the previous build, for example, is N/A on the web.

Know what to test.Then get it tested.

Create a workspace, add your app, and upload the checklist. Free to start.

Free plan available — no card required.

Works with your AI and every platform you ship to

Claude
Codex
Cursor
Any MCP client
Web
Android
iOS