ISTQB-aligned · IEEE 829 §8 reference

Test Case Template — Field-By-Field Format with Examples

The fields that go in a usable test case, with worked examples across positive, negative, boundary, and equivalence-class types. Built so the case still makes sense to the tester who runs it six months from now.

Test Case fields

Required fields gate execution. Optional fields support reporting + traceability.

FieldRequiredDescription
Test Case ID YesUnique, traceable identifier — e.g., TC-CO-001 for Checkout case 001. Used in RTM + defect references.
Title / Summary YesOne-line action-oriented summary. "Verify checkout completes with expired test card declines gracefully" beats "Test 1".
Module / Feature YesThe system area being exercised. Maps to a feature ID from the Test Plan.
Requirement ID (RTM link) YesSource requirement or acceptance criterion. Without this, you cannot prove coverage.
Priority YesP0 / P1 / P2 / P3. Drives execution order in time-boxed cycles.
Type YesFunctional / Non-functional / Regression / Smoke / Exploratory / Negative / Boundary / Security / Accessibility.
Preconditions YesState the system must be in before execution — logged-in user, seeded data, feature flag on, etc.
Test DataOptionalSpecific inputs the case uses — email addresses, card numbers, file uploads. Reference data sets in test-data fixtures.
Test Steps YesOrdered, atomic actions. One verb per step. "Click Pay" not "Click Pay then check email then verify webhook".
Expected Result YesThe observable, verifiable outcome. "Order is created" is weak; "Order #ABC123 appears in /orders with status=PAID within 5s" is verifiable.
Actual ResultOptionalPopulated at execution time — what actually happened. Used for pass/fail determination + defect reproduction.
StatusOptionalNot Run / Pass / Fail / Blocked / Skipped. Updated per execution cycle.
Severity (if defect)OptionalSeverity of the defect raised, if any. Often distinct from priority.
Automation StatusOptionalAutomated / Manual / Candidate. Drives automation-investment prioritisation.
Notes / AttachmentsOptionalScreenshots, logs, edge-case observations. Especially important for exploratory cases.

Worked examples

Four real test cases across the most common test types. Steal, modify, ship.

Positive (Happy Path) · TC-CO-001

Verify successful checkout with valid card and registered user

Preconditions: User logged in; cart contains 1 item; valid test card on file.

Steps

  1. Navigate to /cart
  2. Click "Proceed to Checkout"
  3. Verify default shipping + billing address loaded
  4. Click "Place Order"

Expected: Order confirmation page renders with order ID; order appears in /account/orders with status=PAID within 5s; confirmation email sent to user@example.com (webhook delivered).

Negative · TC-CO-007

Verify checkout rejects expired card gracefully

Preconditions: User logged in; cart contains 1 item; expired test card (exp 01/2020) on file.

Steps

  1. Navigate to /cart
  2. Click "Proceed to Checkout"
  3. Click "Place Order"

Expected: Decline message "Your card has expired. Please use a different card." rendered inline; user remains on /checkout; no order created in DB; no webhook fired; PaymentAttempt logged with reason=expired_card.

Boundary · TC-CO-014

Verify checkout at maximum order total (USD 999,999.99)

Preconditions: User logged in; cart total = USD 999,999.99 (largest supported); valid high-limit test card.

Steps

  1. Navigate to /cart
  2. Click "Place Order"
  3. Confirm Stripe sandbox accepts amount

Expected: Order created with total=999999.99; Stripe charge.amount = 99999999 (cents); no integer overflow; receipt PDF renders amount correctly formatted.

Equivalence-class · TC-CO-019

Verify checkout for users in EU VAT zone applies correct tax

Preconditions: User logged in with billing country=DE (any EU member state — representative of the EU VAT equivalence class).

Steps

  1. Add EUR 100 item to cart
  2. Proceed to /checkout

Expected: Tax line item = EUR 19 (19% DE VAT) shown before placing order. Order total = EUR 119. Invoice PDF shows VAT-ID field.

Five rules for usable test cases

Atomic steps

One verb per step. Steps must be reproducible weeks later by a tester who didn't write the case. "Click Pay and verify email" hides two things that can fail independently.

Verifiable expected results

Replace "works correctly" with observable conditions — DB row created, status=X, timestamp within Y seconds, email sent to Z. If you can't verify it deterministically, the test isn't useful for regression.

Cover the failure space

For every happy-path case, write 2-3 negative + boundary cases. Production bugs come from inputs nobody thought to test — invalid Unicode, daylight-saving edges, zero-quantity orders, expired tokens at 23:59.

Stable IDs

Once assigned, never reuse a Test Case ID. Even deprecated cases retain their ID with status=Deprecated. Audit traceability depends on it.

Map to requirements

Every case must reference a requirement or acceptance criterion. Orphan test cases either expose a missing requirement (good — file it) or are testing the wrong thing (worse — delete).

Frequently Asked Questions

What's the difference between a Test Case and a Test Scenario?

A Test Scenario is high-level — "Verify checkout with valid card". A Test Case is the specific, executable form — TC-CO-001 with preconditions, ordered steps, specific test data, and a verifiable expected result. Scenarios feed test-design workshops; test cases get executed.

How detailed should test steps be?

Detailed enough that a tester who joined the team yesterday can run the case correctly. For automated cases, less verbose (the code is the spec); for manual cases, more verbose. A useful rule: if execution requires reading external docs to know what "click submit" means, the steps are not detailed enough.

Should every test case be automated?

No. Exploratory cases, accessibility audits, multi-stakeholder UAT, and one-off regulatory sign-offs are typically manual. Aim to automate the cases that run every release (regression + smoke + critical-path E2E) and accept manual execution for cases that run occasionally or require human judgment.

How does the RTM (Requirement Traceability Matrix) use these test cases?

The RTM maps each requirement to one or more test cases by ID, tracking execution status per cycle. "REQ-CO-007 (decline expired card) → TC-CO-007, last executed 2026-05-14, status=Pass." That mapping is the artifact you hand the auditor when asked to prove coverage.

What tools does Testriq use to manage test cases?

Whatever the client uses — Xray (Jira native), TestRail, Zephyr Scale, qTest, Polarion (for regulated industries), or simple Markdown/CSV when the team is small. Tool choice doesn't change the template fields; it changes how they're stored and exported.

Need a starter case library for your product?

Talk to a Testriq QA lead — we'll seed a case library for your critical paths and hand it off in your test-management tool of choice.

Get a starter case library