Showing 20 of 52 test cases
| Scenario | Category | Test steps (summary) | Expected result | Priority |
|---|---|---|---|---|
| Successful payment, valid Visa card | Functional | Navigate to checkout. Enter valid Visa test card, valid expiry, valid CVV. Submit payment. | Payment succeeds. Order confirmation page loads. Correct amount charged. | High |
| Successful payment, valid Mastercard | Functional | Repeat TC-FN-001 using a valid Mastercard test number. | Payment succeeds. Confirmation page loads. Amount matches order total. | High |
| Successful payment, RuPay card | Functional | Enter valid RuPay test card details. Submit payment. | Payment succeeds. Confirmation page loads. | High |
| Successful payment via UPI | Functional | Select UPI. Enter a valid test UPI VPA. Approve the UPI intent in the simulator. | Payment succeeds. Order confirmed. Transaction appears in order history. | High |
| Successful payment via net banking | Functional | Select net banking. Choose a bank from the list. Complete payment in the bank's simulated interface. | Payment succeeds. User redirected back to confirmation page. | High |
| Successful payment via digital wallet | Functional | Select wallet (Paytm / GPay / PhonePe). Authenticate and approve in the sandbox. | Payment succeeds. Order confirmed. | High |
| Payment with saved/tokenised card | Functional | Log in as a returning user with a saved card. Select saved card. Enter CVV. Submit. | Payment succeeds using the tokenised card. No raw card data transmitted. | High |
| 3DS/OTP authentication completes | Functional | Use a test card that triggers 3DS. Enter the correct OTP when prompted. | Authentication passes. Payment completes. User returned to confirmation page. | High |
| Confirmation page renders after payment | Functional | Complete a successful payment. Observe the post-payment page. | Order confirmation page loads with correct order ID, amount, and items. | High |
| Confirmation email/SMS triggered | Functional | Complete a successful payment. Check registered email and/or phone. | Confirmation email and/or SMS received within expected timeframe. Content is accurate. | High |
| Transaction appears in order history | Functional | Complete payment. Navigate to the user's order history. | New order visible with correct status, amount, and payment method. | Med |
| Correct amount charged, no rounding error | Functional | Place an order with a price involving decimal values (e.g. ₹1,299.99). Complete payment. | Amount charged matches order total exactly. No rounding discrepancy. | High |
| Payment receipt shows correct details | Functional | Complete payment. Open the generated receipt or confirmation email. | Receipt displays correct order ID, item breakdown, amount, payment method, and date. | Med |
| Currency displayed correctly throughout | Functional | Complete a payment in a non-default currency (if supported). Observe all UI touchpoints. | Correct currency symbol and code displayed consistently on checkout, confirmation, and receipt. | Med |
| Amex card payment (4-digit CVV) | Functional | Enter a valid Amex test card (4-digit CVV). Submit payment. | Payment succeeds. No validation error for 4-digit CVV format. | Med |
| Declined, insufficient funds | Negative | Use a test card configured to simulate an insufficient funds decline. Submit payment. | Payment fails. User sees a clear, specific error message. No amount charged. Retry available. | High |
| Invalid card number (Luhn check failure) | Negative | Enter a card number that fails the Luhn algorithm (e.g. 4000 0000 0000 0001). Submit. | Inline validation error shown on the card field before submission reaches the gateway. | High |
| Expired card | Negative | Enter a valid card number with a past expiry date. Submit payment. | Payment fails with a clear expiry error. User prompted to use a different card. | High |
| Incorrect CVV | Negative | Enter valid card number and expiry, but an incorrect CVV. Submit payment. | Payment fails. Error message indicates a card security code issue. No amount charged. | High |
| Incorrect OTP, first attempt | Negative | Use a 3DS-enabled test card. Enter an incorrect OTP when prompted. | Authentication fails. User is informed the OTP is incorrect. Option to retry is presented. | High |
| OTP exhausted after max attempts | Negative | Enter an incorrect OTP until all retry attempts are exhausted. | Authentication blocked. Clear error message. Payment not processed. User directed to try a different method. | High |
| OTP expires before entry | Negative | Trigger the 3DS OTP. Wait for it to expire without entering it. Then enter it. | Authentication fails with an OTP expired message. Payment not processed. | High |
| Card blocked by issuing bank | Negative | Use a test card configured to simulate a bank block. Submit payment. | Payment fails. Error message advises the user to contact their bank. | Med |
| Daily transaction limit exceeded | Negative | Use a test card configured to simulate a limit exceeded response. Submit payment. | Payment fails with a relevant error. User understands they need to use a different card or method. | Med |
| Gateway returns error mid-flow | Negative | Simulate a gateway-level error using the test gateway's error simulation tools. Proceed through payment. | Application handles the error gracefully. User sees a meaningful message. No partial order state created. | High |
| Attempt to pay for an already-paid order | Negative | Complete payment for an order. Attempt to access and pay the same order again via URL manipulation or back navigation. | System prevents duplicate payment. Error message explains the order is already paid. | High |
| UPI VPA does not exist | Negative | Enter a UPI VPA that does not correspond to a valid account. Submit. | Payment fails. User is told the VPA is invalid or not found. No amount debited. | High |
| Net banking, bank server unavailable | Negative | Select net banking with a bank whose server is simulated as down. Proceed through payment. | Graceful failure with a clear error. Order not stuck in pending. User can retry or choose another method. | Med |
| Wallet has insufficient balance | Negative | Select a wallet with a balance lower than the order total. Submit payment. | Payment fails. Clear message that the wallet balance is insufficient. Option to use another method. | Med |
| Card from unsupported region | Negative | Use a test card assigned to a blocked or unsupported region. Submit payment. | Payment declined with an appropriate message. No amount charged. | Low |
| Double click on Pay button | Edge case | Reach the payment confirmation step. Click the Pay button twice in rapid succession. | Only one payment request is sent. No duplicate charge or duplicate order created. | High |
| Browser back button during gateway redirect | Edge case | Begin a payment that redirects to the gateway's hosted page. Press the browser back button before completing. | User returns to checkout. Order remains unpaid. No partial transaction created. | High |
| Network drops during gateway redirect | Edge case | Begin payment and simulate a network failure during the redirect to the gateway. | Application handles the failure gracefully. No orphaned order. User can retry payment. | High |
| Session timeout during OTP entry | Edge case | Trigger a 3DS OTP prompt. Allow the application session to expire before entering the OTP. | Payment fails cleanly. No money deducted. User is not left in an undefined state. | High |
| Browser autofill populates wrong card field | Edge case | Use browser autofill to populate the payment form. Verify that each field receives the correct value. | Autofill populates the correct fields. No cross-field contamination. | Med |
| Page refresh during payment processing | Edge case | Submit payment. While the loading state is active, refresh the browser page. | On returning, the application shows either the correct order status or a clear recovery message. No duplicate charge. | High |
| User closes tab during gateway redirect | Edge case | After redirect to the hosted payment page, close the browser tab without completing payment. | Order remains unpaid. If payment completed before tab closed, status is updated correctly via webhook. | Med |
| Very large order amount | Edge case | Create an order at or near the gateway's maximum transaction limit. Proceed to payment. | Payment is either processed correctly or declined with an appropriate limit error. No application crash or data truncation. | Med |
| Order amount with precise decimal value | Edge case | Place an order with a total such as ₹999.99 or $49.99. Complete payment. | Exact amount charged. No floating-point rounding error results in a different value being passed to the gateway. | High |
| Concurrent payments from two sessions | Edge case | Open the same order in two browser sessions simultaneously. Attempt to pay from both at the same time. | Only one payment is processed. The second attempt is rejected with an appropriate message. | High |
| Payment form idle 30 minutes before submit | Edge case | Load checkout, enter card details, wait 30 minutes without submitting. Then submit. | Application handles the stale session gracefully. User is either asked to re-authenticate or shown a clear session expiry message. | Med |
| Card number pasted with spaces | Edge case | Copy a card number formatted with spaces (e.g. 4242 4242 4242 4242). Paste into the card number field. | Field accepts the pasted value and strips or formats spaces correctly. No false validation error. | Low |
| Full payment flow on Chrome (latest), desktop | Compatibility | Complete an end-to-end payment on Chrome latest stable on a desktop. | Payment completes without visual or functional issues. | High |
| Full payment flow on Firefox (latest), desktop | Compatibility | Repeat the above on Firefox latest stable. | Payment completes without visual or functional issues. | High |
| Full payment flow on Safari (latest), desktop | Compatibility | Repeat the above on Safari latest stable on macOS. | Payment completes. Safari-specific input handling (card autofill, date picker) behaves correctly. | High |
| Full payment flow on Edge (latest), desktop | Compatibility | Repeat the above on Microsoft Edge latest stable. | Payment completes without issues. | Med |
| Full payment flow on Chrome, Android | Compatibility | Complete an end-to-end payment on Chrome for Android on a mid-range device. | Payment flow is fully functional on mobile. Touch targets are usable. No layout overflow. | High |
| Full payment flow on Safari, iOS | Compatibility | Complete an end-to-end payment on Safari for iOS. | Payment flow is fully functional. iOS keyboard handling does not obscure fields. No Safari-specific bugs. | High |
| Amex card, 4-digit CVV field handling | Compatibility | Enter an Amex test card. Observe CVV field behaviour. | CVV field accepts 4 digits for Amex. No false validation error for the longer format. | Med |
| Payment on 768px viewport | Compatibility | Resize browser to 768px width. Complete an end-to-end payment. | All payment form fields, buttons, and messages are fully visible and usable. No horizontal overflow. | Med |
| Keyboard-only navigation through payment form | Compatibility | Navigate the entire payment form using only the keyboard (Tab, Shift+Tab, Enter, Space). | All fields and buttons are reachable and operable via keyboard. Focus order is logical. No focus traps. | Med |
| Payment method options on mobile viewport | Compatibility | Open the payment method selection screen at 375px width. Review all payment options. | All payment method options are visible and selectable without horizontal scrolling. | Med |