99testsStart a job

Test case library · Shopping, delivery & travel

Test cases for e-commerce checkout and order placement

Checkout turns a cart into a paid order: the shopper picks or adds an address, chooses a delivery slot and a payment method, and checks the final amount. It fails in the field when a budget phone kills the app while the shopper approves in a UPI app, when the network drops after money has left the account, or when coupons and fees are recalculated differently from what the summary showed.

39 test cases14 release-blocking (P1)14 need a real phoneUpdated 2026-10-29

From the reviews. Most failed-payment reviews in our India App Quality Report came from apps other than UPI and banking apps, where paying is one step inside an order, booking or other purchase: 34 of 42.

category page · India App Quality Report

In scope

  • Saved and new addresses, PIN codes and map pins
  • Delivery slot selection
  • UPI, UPI ID and cash on delivery
  • Order summary maths and coupon re-validation
  • Payment failure, retry and back navigation
  • Order confirmation and notifications

Out of scope

  • Card and net banking pages of the payment provider
  • Cart editing before checkout
  • Tracking, cancellation and refunds after the order is placed

Before you start

  • Two test accounts with saved addresses in different PIN codes
  • A phone with two or three UPI apps registered on its SIM, and payment provider test mode or a budget for small real payments
  • Test coupons that are valid, single-use and payment-method specific
  • A test admin panel for prices, stock and delivery slot capacity
  • A 3–4 GB RAM Xiaomi, Realme or Vivo phone, plus an iPhone
Show
Add to a test plan

Happy path10

CHK-01

Place an order with the default address and pay through a UPI app

P1functionalreal phone
  1. Add two items to the cart and tap Proceed to checkout
  2. Keep the default address and the first available delivery slot
  3. Choose UPI, pick an installed UPI app and approve with the UPI PIN
  4. Wait to be returned to the shopping app

Expected: The app lands on an order confirmation screen with an order ID and the amount paid. The UPI app shows one debit for the same amount.

Why a real phone: Needs a real installed UPI app; the switch out and back cannot be emulated.

CHK-02

Switch to another saved address before paying

P1functional
  1. On the checkout page, tap Change next to the delivery address
  2. Pick a saved address in a different PIN code
  3. Place the order with cash on delivery

Expected: Delivery date, delivery fee and slots refresh for the new PIN code, and the confirmation shows the address you picked, not the default one.

CHK-03

Add a new address and let the PIN code fill city and state

P2functional
  1. Tap Add new address on the checkout page
  2. Enter a valid six-digit PIN code
  3. Fill house number, street, landmark, name and a 10-digit mobile number
  4. Tap Save and deliver here

Expected: City and state fill in from the PIN code. The new address is selected for this order and appears in the saved address list.

CHK-04

Drop the map pin on the exact building

P2functionalreal phone
  1. Stand at your test delivery location with location turned on
  2. Tap Add new address, then Use current location
  3. Drag the pin onto your building's entrance and confirm
  4. Save the address and reopen it from the saved list

Expected: The map centres near you, the pin stays where you dropped it, and the reopened address shows the same pin position.

Why a real phone: Pin accuracy depends on a real GPS fix at the delivery location.

CHK-05

Pick a delivery slot and see it on the confirmation

P2functional
  1. On the checkout page, open the delivery slot picker
  2. Choose an evening slot for tomorrow
  3. Place the order with cash on delivery

Expected: Full slots are marked unavailable, the chosen slot is highlighted, and the confirmation and My orders show the same date and time window in IST.

CHK-06

Pay by entering a UPI ID and approving the request

P2functionalreal phone
  1. Choose UPI on the payment page and select Enter UPI ID
  2. Type a test UPI ID linked to an installed UPI app and tap Verify
  3. Tap Pay, then open the request in the UPI app and approve it
  4. Return to the shopping app

Expected: The UPI ID shows a verified name or a clear error before you can pay. After approval, the waiting screen moves to the confirmation without any tap.

Why a real phone: The collect request arrives as a notification in a real, SIM-bound UPI app.

CHK-07

Place a cash on delivery order

P1functional
  1. Proceed to checkout with an order below the configured cash on delivery limit
  2. Select Cash on delivery as the payment option
  3. Tap Place order

Expected: The order is confirmed without any payment screen, and the confirmation shows the exact amount to pay at delivery, with any cash handling fee as its own line.

CHK-08

Order summary adds up line by line

P1functional
  1. Add three items with different MRPs and discounts, and apply a coupon
  2. Open the order summary on the checkout page
  3. Add up MRP, product discount, coupon discount and delivery fee on paper

Expected: The total payable equals your calculation to the paisa, taxes are labelled as included or listed separately, and the item count matches the cart.

CHK-09

New order appears in My orders with the same details

P1functional
  1. Place an order with cash on delivery
  2. Note the order ID, total, address and slot on the confirmation screen
  3. Open My orders and tap the new order

Expected: The order is listed at the top with the same ID, items, total, address and slot, and its status reads Placed or Confirmed.

CHK-10

Confirmation reaches you by SMS, push and email

P2functionalreal phone
  1. Allow notifications for the app
  2. Place an order and lock the phone
  3. Wait for the SMS, the push notification and the email
  4. Tap the push notification

Expected: All three arrive with the same order ID and amount, and tapping the push notification opens that order's details screen.

Why a real phone: SMS depends on the carrier; push depends on the phone maker's battery settings.

Validation & negative6

CHK-11

Save a new address with missing or invalid fields

P2negative
  1. Open Add new address and leave the house number blank
  2. Enter a nine-digit mobile number and a name made only of spaces
  3. Tap Save

Expected: The address is not saved. Each problem field shows its own inline message and the form scrolls to the first one.

CHK-12

Add an address whose PIN code is not serviceable

P2negative
  1. Open Add new address and enter a known non-serviceable PIN code
  2. Fill the remaining fields and tap Save and deliver here

Expected: The app says delivery is not available to that PIN code and does not let you place the order to it. The previous address stays selected.

CHK-13

Map pin dropped far from the typed PIN code

P2negative
  1. Enter an address with a PIN code from one part of the city
  2. Drag the map pin several kilometres away into another PIN code area
  3. Tap Save

Expected: The app warns that the pin and the PIN code do not match and asks you to fix one. It does not save the conflicting details silently.

CHK-14

Cart coupon is no longer valid at checkout

P1negative
  1. Apply a single-use test coupon in the cart
  2. Use the same coupon on another order from the same account on a second device
  3. Return to checkout on the first device and tap Pay

Expected: Before any payment screen opens, the app says the coupon can no longer be applied, removes it and shows the new total for you to accept.

CHK-15

Change payment method when the coupon needs a specific one

P2negative
  1. Apply a test coupon that is valid only for UPI payments
  2. On the payment page, switch from UPI to Cash on delivery
  3. Check the order total

Expected: The app warns that the coupon does not apply to cash on delivery, removes the discount and updates the total before you can place the order.

CHK-16

Cash on delivery is not offered for the order

P2negative
  1. Build a cart above the configured cash on delivery limit and open payment options
  2. Repeat with an address whose PIN code has no cash on delivery

Expected: In both cases Cash on delivery is greyed out with a short reason, and the other payment options still work.

Edge cases7

CHK-17

Price changes after the checkout page opens

P1edge
  1. Open the checkout page and note the total
  2. Raise one item's price in the test admin panel
  3. Tap Pay on the phone

Expected: The app shows the new price and total and asks you to confirm before paying. The amount sent to the UPI app or payment page matches the new total.

CHK-18

Last unit sells out while payment is in progress

P1edge
  1. On account A, open the payment page for the last unit of an item
  2. On account B, buy the same unit with cash on delivery
  3. Complete the payment on account A

Expected: Account A either gets a confirmed order because the unit was held for it, or a clear message with the refund shown as initiated. The order is never left at Payment pending.

CHK-19

Chosen delivery slot fills up before payment completes

P2edge
  1. Pick a delivery slot with only one place left
  2. Before paying, fill that slot from another account
  3. Complete payment on the first account

Expected: The app either keeps the slot it held for you or asks you to pick another before confirming. The confirmation never shows a slot that was already full.

CHK-20

Coupon pulls the subtotal below the free-delivery threshold

P2edge
  1. Build a cart just above the free-delivery threshold
  2. Apply a coupon that brings the amount below the threshold
  3. Read the delivery fee line at checkout and later on the invoice

Expected: The delivery fee follows your product's rule for discounts and thresholds, and the same fee appears in the cart, at checkout and on the invoice.

CHK-21

Coupon or wallet balance covers the whole order

P2edge
  1. Apply a coupon or wallet balance worth more than the order total
  2. Open the payment page
  3. Tap Place order

Expected: The amount payable shows ₹0, never a negative figure, no UPI or card screen opens, and the order is confirmed with the full discount shown.

CHK-22

Total with paise matches across summary, UPI app and invoice

P2edgereal phone
  1. Build an order whose discounts or taxes produce paise, such as ₹1,249.50
  2. Note the total in the order summary
  3. Pay by UPI and note the amount shown in the UPI app
  4. Open the invoice from My orders

Expected: The summary, the UPI app and the invoice show the same amount, rounded the same way. No extra paisa is charged or dropped.

Why a real phone: The amount must be read in a real UPI app, which emulators cannot run.

CHK-23

Order placed across midnight IST

P3edge
  1. At about 11:55 pm IST, open checkout and pick tomorrow's morning slot
  2. Wait until after midnight, then place the order
  3. Read the dates on the confirmation and in My orders

Expected: The app either asks you to pick the slot again or keeps the exact date you picked. Order and slot dates are shown in IST and match the calendar.

Interruptions & network7

CHK-24

UPI payment fails, then a retry succeeds with one order

P1negativereal phone
  1. Start a UPI payment and enter a wrong UPI PIN in the UPI app
  2. Return to the shopping app and read the payment status
  3. Tap Retry payment and approve with the correct UPI PIN
  4. Open My orders

Expected: The first attempt shows as failed with no order confirmed. After the retry there is exactly one confirmed order and one debit in the UPI app.

Why a real phone: The decline happens inside a real UPI app with a real UPI PIN.

CHK-25

Network drops after you approve in the UPI app

P1interruptionreal phone
  1. Start a UPI payment and approve it in the UPI app
  2. Turn off mobile data before switching back to the shopping app
  3. Return to the app, wait a minute, then turn data back on

Expected: The app shows a processing state instead of Failed and settles to Confirmed once the network returns, without offering a second payment for the same order.

Why a real phone: Needs a real UPI approval followed by a real network loss before returning.

CHK-26

Press Back while the payment is in progress

P1interruptionreal phone
  1. Start a UPI payment so the UPI app opens
  2. Press Back in the UPI app without approving
  3. On the shopping app's payment screen, press Back again

Expected: The app asks whether to cancel the payment, then returns to checkout with the items and address intact. My orders shows no paid order and no debit appears.

Why a real phone: Back behaviour across the shopping app and a real UPI app needs real apps.

CHK-27

Shopping app is killed while you approve in the UPI app

P1interruptionreal phone
  1. On a 3–4 GB RAM phone with battery saver on, start a UPI payment
  2. Before approving, open the camera and record a short video
  3. Go back to the UPI app, approve, then return to the shopping app

Expected: If the app restarts, it shows this payment's status or the confirmed order, not an empty cart or the home screen. Exactly one order exists.

Why a real phone: Low-RAM phones and OEM battery savers kill the app while the UPI app is open.

CHK-28

Tap Place order twice on a slow connection

P1interruptionreal phone
  1. Switch the phone to 2G, or stand where the signal is weak
  2. Select Cash on delivery and tap Place order twice quickly
  3. Open My orders once the screen settles

Expected: The button disables after the first tap and only one order appears in My orders.

Why a real phone: Real carrier latency creates the delay that makes shoppers tap twice.

CHK-29

Let a UPI collect request expire without approving it

P2interruptionreal phone
  1. Pay by entering a UPI ID and tap Pay
  2. Ignore the request in the UPI app until the timeout your payment provider sets passes
  3. Read the status in the shopping app

Expected: The waiting screen ends with a clear expired or failed message and a retry option. No order is confirmed and the cart is intact.

Why a real phone: Expiry of a real collect request happens inside an installed UPI app.

CHK-30

Incoming call and screen lock during payment

P2interruptionreal phone
  1. Pay by UPI ID so the shopping app shows its waiting screen
  2. Answer an incoming phone call and end it after a short while
  3. Lock and unlock the screen, then approve the request in the UPI app

Expected: The waiting screen survives the call and the lock, and moves to the confirmation once the payment is approved.

Why a real phone: Needs a real incoming call and screen lock while a real UPI app is involved.

Device & OS3

CHK-31

Choose among several installed UPI apps

P2compatibilityreal phone
  1. Register three UPI apps on the test phone
  2. Choose UPI on the payment page and open the app list
  3. Pay once through each app on three separate orders

Expected: The list shows the installed UPI apps by name, each opens with the right amount and payee, and each returns to the shopping app with the correct status.

Why a real phone: Each UPI app must be registered against a real SIM in the phone.

CHK-32

Pay by UPI on a phone with no UPI app installed

P2compatibility
  1. Uninstall all UPI apps, or use an emulator
  2. Choose UPI on the payment page

Expected: The app does not show an empty app list or crash. It offers paying by UPI ID or another method instead.

CHK-33

Use current location with location off, or indoors in a high-rise

P2compatibilityreal phone
  1. Turn off location services and tap Use current location
  2. Accept the prompt to turn location on
  3. Repeat on a high floor of a tall building, away from windows

Expected: The app asks to turn on location instead of failing silently, and indoors it asks you to adjust the pin rather than saving a wrong building.

Why a real phone: Indoor GPS accuracy in high-rises cannot be reproduced with mocked locations.

Security & privacy3

CHK-34

Open another account's order or invoice link

P1security
  1. On account A, place an order and copy its order or invoice link, if the app offers one
  2. Log in as account B on another phone
  3. Open account A's link on that phone

Expected: Account B sees an access message or a login screen. Account A's name, address, phone number and items are not shown.

CHK-35

Session expires on the checkout page

P2security
  1. Open checkout with an address and slot selected
  2. Leave the phone idle until the session timeout your app sets has passed
  3. Tap Pay

Expected: The app asks you to log in again before any payment starts, then returns to checkout with the same items, address and slot.

CHK-36

Saved addresses are cleared from the phone after logout

P2security
  1. Log in, add a new address and reach the checkout page
  2. Log out from the account menu
  3. Start a guest checkout on the same phone

Expected: The guest checkout shows no saved addresses, name or phone number from the previous account.

Accessibility & language3

CHK-37

Move through checkout with TalkBack

P2accessibility
  1. Turn on TalkBack on an Android phone
  2. Move through the address list, slot picker and payment options
  3. Select a payment option and move to Place order

Expected: TalkBack reads each address in full, announces slots as available or full and options as selected or not, and reads the total on the Place order button.

CHK-38

Checkout at the largest font on a small screen

P2accessibility
  1. On a phone with a screen around 5 inches, set font and display size to largest
  2. Open the checkout page, then the new address form with the keyboard up

Expected: Summary lines and amounts wrap without overlapping, the focused field stays above the keyboard, and Place order stays reachable by scrolling.

CHK-39

Address in Hindi script and a total above one lakh

P2localization
  1. Switch the keyboard to Hindi and type the house details and landmark in Devanagari
  2. Add items totalling more than ₹1,00,000 and open the order summary
  3. Place the order with any method your test setup allows and open the invoice

Expected: The address shows in Devanagari without boxes or question marks on the confirmation and invoice, and amounts use Indian grouping such as ₹1,12,450.

In the field

Where e-commerce checkout breaks on real phones

  • The shopping app is killed while the shopper approves in the UPI app, and on return the order shows as failed although money has left the account.
  • On slow 4G or 2G, shoppers tap Place order or Pay again and end up with two orders or two debits.
  • In dense neighbourhoods and high-rises the map pin lands on the wrong lane or tower, so the address text and the pin disagree and the delivery partner has to call.
  • Coupons accepted in the cart are not re-checked before payment, so the amount charged differs from the summary the shopper agreed to.
  • Paise rounding and delivery-fee rules differ between the summary, the payment page and the invoice, and the shopper sees three different totals.
  • Back from the UPI app or the payment page lands on an empty cart or the home screen instead of the payment status.

Run these 39 cases on real phones

They fit the Standard package: 10 × 45-minute sessions on 4 phones or browsers of your choice, up to ~50 cases, ₹18,999 + GST ($249), verified report in 3 business days. The 14 P1 cases alone fit Starter (₹9,999 + GST).

Download the CSV, pick the package at checkout and upload the file with your build. Testers run them on their own phones, on Jio, Airtel and Vi.

Questions

About testing e-commerce checkout

How do you test that a payment retry does not create a duplicate order?

Fail the first attempt on purpose, for example by entering a wrong UPI PIN or declining in the UPI app, then retry from the payment status screen. Check that My orders shows one order, that the UPI app shows one successful debit, and that the failed attempt is never confirmed later as a second order. Repeat with a double tap on a slow connection and with the network turned off just after approval.

What should a checkout order summary show?

At minimum the total MRP, product discounts, coupon discount, delivery fee, any other fees and the final amount payable, with taxes labelled as included or listed separately. Testers should add these up by hand for a few carts, including one where a coupon changes free-delivery eligibility. The same numbers should appear on the payment page, in the UPI app and on the invoice.

Which checkout test cases need a real phone?

Anything that goes through a real UPI app, since UPI apps need a SIM-bound registration that emulators cannot provide: intent payments, collect requests, declines and Back between apps. The app being killed on a budget phone, network loss after approval, GPS-based map pins and confirmation SMS or push also need real devices. Address validation, coupon rules and summary maths can be checked on an emulator.

Related flows

Test these next

Your AI wrote the test cases. Run them on real phones.

99tests runs your cases, AI-generated ones included, on the phones, laptops and browsers your users own. Every finding is verified, serious bugs come with a screen recording, and each case comes back pass, fail, blocked or not run.