Sample content. FoodCart is a fictional app, and nothing on this page is a real project.

What a finished QA pack looks like

One release sign-off report for the people who decide, and every document behind it. Open any section to see the detail.

The app that was tested

FoodCart checkout v2 is a fictional app, built for this page. Use it like a tester: try a promo code, change the cart, or tap Place order and sign in with the wrong password. The tester’s panel compares what the app did with what the requirement says.

Try a test:
Checkout2.4.0-rc2
Bangkok KitchenThai · 25–35 min · 1.2 mi
Deliver to Home123 Market Street, Apt 4

Your order

Promo code

Try SAVE10, SAVE80 or SPRING24

Payment

Subtotal
Discount
Delivery
Total

Sample app for illustration. Nothing here is saved or sent anywhere.

Test case map

How the four requirements fan out into test cases, and where the gaps are. It is the traceability matrix below, drawn as a map.

FoodCartcheckout v2BR-1Sign-in lockoutTC-001 Locks after 5 failed sign-insPassTC-002 Lockout lifts after 15 minutesPass4 attempts and counter resetNo test yetBR-2Delivery feeTC-009 Free at exactly $30.00PassTC-011 Fee applies at $29.99Not runBR-3Promo capTC-005 Discount capped at 50%BUG-102FailTC-006 Expired code rejectedPassStacked promos and the feeNo test yetBR-4Cash limit$100 cash limitNo test yet
  • Pass
  • Fail
  • Not run
  • No test yet

The finished deliverable

A release sign-off report. It takes the work from every document below and answers one question: can we ship?

QA release sign-off report

FoodCart checkout v2, build 2.4.0-rc2

HOLDDo not ship yet

Recommendation

  • One Critical defect is open: promo discounts can exceed the 50% cap (BUG-102).
  • The $100 cash-on-delivery limit (BR-4) has no tests yet.
  • Ship once BUG-102 is fixed and retested, BR-4 tests pass, and regression is green on the fixed build.
24 / 30test cases passed
3failed, 3 not run
1 of 4requirements fully covered
1open Critical defect

Exit criteria

  • 100% of High priority test cases executed
  • No open Critical or High defects without an approved workaround
  • Every requirement has at least one passing test
  • Regression suite green on the release candidate

Open defects

IDSummarySeverityStatusDecision
BUG-102Promo discount exceeds the 50% capCriticalOpenMust fix before release
BUG-104Lockout message is misaligned on small phonesLowOpenAccepted for this release, fix next sprint

Risks still open

  • Business rule unclear: whether the 50% cap applies before or after the delivery fee. Tests assume before. Needs written confirmation.
  • Stacked promo codes have not been tested because the requirements do not say whether they are allowed.

Sign-off

QA leadPending, waiting on the fixed build
Engineering leadPending
Product ownerPending, needs to answer the cap question

The documents behind it

Each one is a QA deliverable QA GoGo can draft. Open one to see a realistic example.

1Requirement reviewFinds unclear, missing and conflicting requirements before testing startsNeeds clarification

Read by the product owner and business analyst. Every finding comes with the question to ask.

ReqIssueWhy it mattersQuestion to askSeverity
BR-3Cap on promo discounts does not say what it is a percentage ofChanges the expected total in every promo testIs the 50% cap applied before or after the delivery fee and tax?High
BR-4$100 cash limit does not say whether discounts countThe boundary test would use the wrong amountIs the limit checked on the amount before or after discounts?Medium
BR-1Lockout counter scope is not definedAffects how the security tests are designedIs the counter per account or per IP, and does it reset after a successful sign-in?Medium
BR-2Free-delivery threshold does not say whether tax is includedThe $30.00 boundary could shift by a few dollarsDoes the $30 include tax and promo discounts?Low
2Test planScope, risks and the exit criteria that make the release call objectiveApproved

In scope

  • Sign-in and account lockout
  • Cart, delivery fee and promo codes
  • Payment: card and cash on delivery
  • Order confirmation email

Out of scope

  • Restaurant partner portal
  • Courier app
  • Load testing beyond a smoke check

Approach

  • Functional and boundary testing on every pricing rule
  • Security tests for lockout and promo abuse
  • Regression suite run on each release candidate

Top risks

RiskLikelihoodImpactMitigation
Promo and delivery-fee rules interact in ways the requirements do not defineHighHighBoundary tests, and ask the business about the cap
Lockout counter resets incorrectly after a successful sign-inMediumHighSecurity cases for 4, 5 and 6 failed attempts
Cash limit enforced on the wrong amountMediumMediumBoundary tests around $100.00

Exit criteria

  • 100% of High priority test cases executed
  • No open Critical or High defects without an approved workaround
  • Every requirement has at least one passing test
  • Regression suite green on the release candidate
3Test casesSteps, data and expected results, each linked to a requirement30 written

Showing 6 of 30. Filter by priority or type in the app, and export to CSV or Jira.

IDReqTitleTypePriorityStepsExpected resultResult
TC-001BR-1Account locks after 5 failed sign-insSecurityHigh
  1. Open sign-in
  2. Enter a wrong password 5 times
  3. Enter the correct password
Account is locked and a lockout message is shown; the correct password is rejected for 15 minutesPass
TC-002BR-1Lockout lifts after 15 minutesFunctionalMedium
  1. Lock the account
  2. Wait 15 minutes (or advance the test clock)
  3. Sign in with the correct password
Sign-in succeeds and the failure counter is resetPass
TC-005BR-3Promo discount is capped at 50% of subtotalBoundaryHigh
  1. Add items totalling $40.00
  2. Apply code SAVE80 (80% off)
  3. Open the order summary
Discount shows $20.00, not $32.00; total is $20.00 plus feeFail
TC-006BR-3Expired promo code is rejectedNegativeMedium
  1. Add any item
  2. Apply expired code SPRING24
Clear message that the code has expired; total is unchangedPass
TC-009BR-2Delivery fee is free at exactly $30.00BoundaryHigh
  1. Add items totalling $30.00
  2. Go to checkout
Delivery fee shows $0.00Pass
TC-011BR-2Delivery fee applies at $29.99BoundaryMedium
  1. Add items totalling $29.99
  2. Go to checkout
Standard delivery fee is addedNot run
4Traceability matrixWhich requirement is covered by which tests, and where the gaps are2 gaps
ReqRequirementTest casesCoverageGap
BR-1Account locks after 5 failed sign-ins for 15 minutesTC-001, TC-002PartialNo test for 4 attempts or a counter reset after success
BR-2Free delivery on orders of $30 or moreTC-009, TC-011CoveredNone
BR-3Promo discount cannot exceed 50% of subtotalTC-005, TC-006PartialStacked promos and the fee interaction are untested
BR-4Cash on delivery is limited to $100 per orderNoneNot coveredNo tests written
5Coverage checkDraft cases for the gaps the matrix found4 cases proposed

For each gap, the coverage check proposes new cases. A QA engineer reviews them before they are added.

GapProposed caseTypePriority
BR-4Cash on delivery is allowed at exactly $100.00BoundaryHigh
BR-4Cash on delivery is blocked at $100.01 with a clear messageBoundaryHigh
BR-1Four failed sign-ins do not lock the accountBoundaryMedium
BR-1Failure counter resets after a successful sign-inFunctionalMedium
6Test dataThe accounts, codes and amounts the tests rely onReady
ItemValueUsed for
Verified accountuser1@test.exampleSign-in and lockout tests
Promo code, 80% offSAVE80Discount cap tests
Promo code, expiredSPRING24Negative promo test
Cart totals$29.99, $30.00, $40.00, $100.00, $100.01Boundary tests for delivery fee and cash limit
7Automation frameworkFolder structure and starter scripts for the regression suiteDraft

Structure

tests/
  checkout/
    promo-cap.spec.ts
    delivery-fee.spec.ts
  auth/
    lockout.spec.ts
pages/
  cart.page.ts
  checkout.page.ts
fixtures/
  test-data.ts
playwright.config.ts

Example script for TC-005

// tests/checkout/promo-cap.spec.ts
import { test, expect } from '@playwright/test';
import { CartPage } from '../../pages/cart.page';

test('TC-005 promo discount is capped at 50% of subtotal', async ({ page }) => {
  const cart = new CartPage(page);
  await cart.open();
  await cart.addItemsTotalling(40.0);
  await cart.applyPromo('SAVE80');

  await expect(cart.discount).toHaveText('$20.00');
  await expect(cart.discount).not.toHaveText('$32.00');
});
8Bug reportA defect written so a developer can reproduce it without asking a questionCritical, open
BUG-102Promo discount exceeds the 50% capCriticalOpen
Requirement
BR-3 (found by TC-005)
Environment
Staging, build 2.4.0-rc2, Chrome 130 on macOS
Steps to reproduce
  1. Add items totalling $40.00 to the cart
  2. Apply promo code SAVE80
  3. Open the order summary
Actual result
Discount is $32.00 (80%). Order total is $8.00 plus fee.
Expected result
Discount is capped at $20.00 (50% of subtotal). Order total is $20.00 plus fee.
Impact
Customers can get up to 80% off, which is revenue loss on every order that uses the code.
Notes
Confirm with the business whether the cap applies before or after the delivery fee, then retest with TC-005 and TC-014.
9Test execution summaryWhat was run, what passed and what is left3 not run
30test cases
24passed
3failed
3not run

Failures

  • TC-005 and TC-014 fail because of BUG-102 (Critical).
  • TC-022 fails because of BUG-104 (Low, accepted for this release).

Get drafts like these from your own requirements

QA GoGo writes the first version of each document. You review, edit and decide.