On this page
A test case is a set of preconditions, steps, and an expected result that together prove one behavior works. Well-written cases let anyone on the team run the same checks and get the same answer, which is what makes testing repeatable rather than personal. This guide gives you a template, a worked example, and the habits that keep a test case library useful months after it was written.
Anatomy of a good test case
Every case you write should carry the same fields. Consistency is what lets a spreadsheet, a test management tool, or a plain markdown file all do the job.
- Test ID: a stable identifier like LOGIN-004 that never changes when the wording is edited.
- Module and feature: the screen or flow the case belongs to.
- Title: what behavior is being verified, written as an outcome rather than a task.
- Preconditions: app state, account type, network condition, and data needed before step one.
- Steps: numbered, one action per step, in the exact order a tester follows.
- Expected result: what the screen must show or do after the steps complete.
- Priority: how bad it is if this case fails.
- Test data: the specific inputs used, so runs stay comparable.
- Type: manual or automated, so automation work can be planned from the same list.
Writing the parts that matter most
Titles and expected results cause most of the confusion. A title should name the behavior, not the screen: "login rejects an expired password" tells you what failed, while "test login" tells you nothing. Expected results must be observable: a tester should be able to decide pass or fail without asking anyone what was meant.
Prioritize so the suite fits the schedule
You will rarely have time to run everything before a release. Priorities let the team decide what runs first when the clock is short.
- P0: core flows without which the app is broken, such as sign-up, main content, and payment. These run on every release candidate.
- P1: important paths and common error handling, such as password reset and empty states. These run in full regression passes.
- P2: edge cases, unusual device states, and cosmetic checks. These run when time allows or when the affected area changes.
Keep the library maintainable
Test cases drift out of date as features change, which eventually erodes trust in the whole document. Link each case to the requirement or ticket it came from, review cases for any module that ships a change, and retire cases for features that no longer exist instead of leaving them to fail confusingly.
Want the test cases written for you?
AppsTestLab builds test case libraries for Android apps, covering your core flows with priorities and reusable regression suites, ready to run on every release.
Discuss a test case libraryFrequently asked questions
Frequently asked questions
How many test cases does an app need?
There is no right number. Start with every P0 flow and the error paths around it, then add cases whenever a bug escapes, because each escaped bug is a case that was missing.
Should automated tests and manual cases live in the same list?
Yes, with the type field distinguishing them. When one list covers both, you can see at a glance which cases automation already handles and which still need a person before each release.
Sources
Sources & references
Official Google documentationThese links open Google's official Play Console Help pages used to verify this guide. AppsTestLab guidance is independent and not affiliated with Google.
Get help doing this
