Skip to content
QA Knowledge Hub

Test cases for checkout

Updated 2026-11-13 · 6 min read

Thirty cases for a physical-goods checkout from address entry to order confirmation. Covers quote changes, duplicate submissions and late payment after stock reservation expiry.

How to answer in an interview

Ask whether guest purchase is supported, when stock is reserved, what fixes the final price and which payment state allows fulfilment. Explain one complete order, then a failed payment and a retry. Keep address validation, order creation and payment confirmation separate so failures can be traced.

Scope and test data

Assume physical goods, guest or signed-in checkout and a server-calculated quote. The arithmetic fixture has ₹1,000 merchandise, a ₹100 discount, ₹40 shipping and ₹90 fixture tax, giving ₹1,030 payable. This is test arithmetic, not a tax rule. Use [email protected] and synthetic addresses in a stubbed serviceability dataset. Stock is reserved on order creation for a configured period; only a server-confirmed captured payment permits fulfilment. Payment-provider details belong in the separate gateway suite.

The 30 cases below are a test design, not an execution report. Replace the example rules with approved requirements before recording pass or fail. Performance budgets and supported device versions must be agreed before execution.

Identity, address and delivery

IDCategoryTest caseExpected result
K01FunctionalComplete guest checkout with a serviceable fixture addressOne guest order records the supplied contact and delivery address
K02FunctionalChoose a saved address while signed inReview and order use the selected address snapshot
K03NegativeLeave a mandatory address field blankField-specific error prevents progression without losing other fields
K04NegativeSupply a postcode absent from the stub serviceability listDelivery is refused with an actionable serviceability message
K05FunctionalUse an apartment name with spaces and local-script textAccepted text survives review and order storage without corruption
K06FunctionalChange address after choosing shippingServiceability and shipping are recalculated before final confirmation
K07FunctionalChoose a different billing addressBilling and shipping values remain distinct in the order
K08NegativeDelete the selected saved address in another tabCheckout requests a valid selection rather than silently using another address

Quote and stock

IDCategoryTest caseExpected result
K09FunctionalReview the stated arithmetic fixturePayable total is ₹1,030 with all four components visible
K10FunctionalRemove the ₹100 discount before confirmingQuote is recalculated and user sees the new amount before paying
K11NegativeExpire a coupon between review and confirmationStale discounted quote cannot create a payable order without updated review
K12FunctionalSwitch shipping to a ₹70 fixtureTotal becomes ₹1,060 with the new method recorded
K13SecuritySubmit a lower total from the browserServer rejects or replaces the tampered quote; no underpriced order is created
K14NegativeMake one item unavailable after reviewOrder creation is blocked with the affected item identified
K15FunctionalCreate an unpaid order with available stockExactly the ordered quantities are reserved for the configured duration
K16BoundaryReach the reservation expiry with no confirmed paymentReservation is released and an expired order cannot proceed using stale stock

Submission and recovery

IDCategoryTest caseExpected result
K17FunctionalConfirm once and complete a captured sandbox paymentOne order becomes paid and one fulfilment action is recorded
K18FunctionalDouble-click final confirmationOne logical submission creates one order and one payment attempt
K19NegativeDrop the response after order creationRetry recovers the existing order instead of duplicating it
K20NegativeReceive a definitive payment failureOrder remains unpaid and retry is offered without claiming success
K21FunctionalRetry payment after a definitive failureNew attempt links to the same order and only confirmed payment fulfils it
K22NegativeClose the browser after paying but before returningServer confirmation updates the order; reopening shows its actual state
K23SecurityOpen another customer order-confirmation URLOrder details are denied to the unauthorised session
K24FunctionalRefresh a successful confirmation pageSame order appears without another charge or fulfilment
K25NegativeReceive late payment success after reservation expiryOrder enters reconciliation; unavailable goods are not silently promised
K26SecurityChange delivery address after payment without reauthorisationServer blocks the change or applies an explicitly authorised amendment flow

Accessibility and operational checks

IDCategoryTest caseExpected result
K27UISubmit an invalid form using only the keyboardError summary or field focus leads to the errors and entered data is retained
K28UIReview totals on a narrow screen with zoomTotal, delivery choice and final payment action remain readable and reachable
K29PerformanceMeasure quote and order creation under agreed peak checkout loadEach meets its budget without overselling the last reserved item
K30CompatibilityRepeat guest checkout and Back navigation across supported devicesValues survive navigation and final order matches the reviewed values

Evidence and prioritisation

Prioritise K09, K14, K18, K19 and K25. Store quote version, reservation expiry, order ID and payment attempt IDs as evidence. The usual mistake is treating a thank-you page as proof of a paid order; inspect the order state and fulfilment record too. The follow-up is what to do with late success: that is a reconciliation policy requiring product agreement, not an automatic second stock reservation.

Downloads

Quick answers

Is checkout testing the same as payment testing?

No. Checkout also covers identity, delivery, quote agreement, inventory and order creation.

Should a failed payment delete the cart?

Not in this example. Preserve enough state for recovery, and agree when cart contents should be cleared.

Sources

Want a project you can show in interviews?

The portfolio project kit walks you through testing a deliberately buggy app with Selenium or Playwright and API tests, then explaining it. The app itself is free.