•
Drizz raises $2.7M in seed funding •
•
Featured on Forbes
•
Drizz raises $2.7M in seed funding •
•
Featured on Forbes

While mobile applications offer a plethora of features, one broken checkout can make them all meaningless.
A shopper finds a product, adds it to the cart, and clicks on buy now. If the payment process fails, the cart gets emptied or a low-memory device causes the application to crash, and the shopper leaves with no recourse to provide feedback or report the error.
The focus of mobile ecommerce testing should be the moments when revenue is at risk. Search, product discovery, and wishlists are important, but failures during the checkout process result are the most critical ones leading to an immediate order loss.
Thorough testing covers the entire journey from product discovery to purchase including inventory, payments, payment retries, duplicate charges, payment redirects, webhooks, deep links, recovery states, anti-fraud techniques, and operating in less reliable networks.
Protecting different parts of your business is the objective of each test.
This guide aims to help with 30 important mobile ecommerce flows for checkout and payment systems, cart management and inventory, search, deep links, performance, network resilience, accessibility, and real-device testing to better target failure cases that could potentially lose orders or customers.
Ecommerce mobile apps connect many systems and touch points in a single transaction. The mobile client interfaces with catalog services, inventory systems, tax engines, payment providers, anti-fraud systems, attribution services, and fulfillment systems.
A failure anywhere in a handoff negatively affects the customer experience. A payment request might get approved by the gateway in the background while the application is showing an error. The inventory might get changed unexpectedly. A campaign link might direct to the website instead of a targeted product page.
Focusing coverage on critical business paths, rather than modal coverage, provides a greater competitive advantage. The checkout flow is arguably the most critical. Payment, inventory, cart recovery, performance, and deep linking are the next most important flows to cover. Afterwards, cover flows such as wishlists, reviews, and recommendations.
1. Successful card payment
Use a sandbox card to validate completion of the entire checkout flow, starting from entering the details such as delivery address all the way to final order confirmation. Then verify everything involved including the order number, payment status, inventory reduction, receipt, and order analytics.
2. Card declined
Confirm the application holds the cart when a payment is forced to decline. Show a helpful error message and provide the customer the option to select a different payment method.
3. 3DS2 (3D Secure 2) frictionless approval
Test a payment that is approved with no further challenge to the customer. Verify the application handles the response from the gateway and moves the order to the correct state.
4. 3DS2 challenge
Use a gateway test card that requests an authentication challenge. Verify that the webview or redirect loads correctly, the customer returns to the application, and the order is in the final payment state.
5. Soft decline followed by 3DS2
Some issuers perform an initial frictionless review and subsequently require an authentication challenge. Confirm that the application processes the correct payment flow and does not create a new order.
6. Transferring Payment Apps
To test local or regional payment methods, try using options like UPI, specific wallets, banking apps etc. Put the app in the background during the handoff, complete or cancel the payment, and verify the return deep link works.
7. Payment Timeout & Retry
This tests for timeout after the gateway receives the request. This should result in a retry that has the same Idempotency key and generates one order with one charge.
8. Delayed Payment Webhook Settlement
Put the customer back in the app before the payment webhook takes effect. Show the order is being processed, and confirm the payment in order to change status to complete. Transfer to reconciliation if the webhook doesn’t come so the order does not get marked as paid.
9. Add and Remove Product
Add products to your cart using the search, product, and recommendation pages. Ensure the total is correct by removing individual items and changing the quantity.
10. Persistence of Cart After App Restart
For each item added to the cart, the item should be kept in the cart after closing and reopening the app. It should retain quantity, price, product, and selected options.
11. Cart Restoration After Process Death
Open the cart, close the app, and launch it on a device with limited memory. Verify whether the saved state is restored correctly. Ensure there are no duplicates or missing items.
12. Race Condition for Last Inventory Unit
Send multiple API requests for checkout for the final unit. Exactly one request should be successful, and the other requests should receive a response out of stock.
13. Price or coupon change before payment
Modify product price, stock status, or coupon status after the customer selects the item. The app updates the total amount and requests payment confirmation. The app must not charge a customer the old price.
14. Search with exact and partial terms
Search with product names, partial terms, spelling variations, empty searches, and no result states. Check product suggestions, filters, and recent searches.
15. Combinations of filters and sorts
Check that clearing a filter and changing the sort order of the products does not reset the list of products to the original product list.
16. Product page loading
Check the product page with images loading slowly, unavailable product variants, missing reviews, and slow price changes. Check that the page does not become unusable while loading other content.
17. Selection of variants and quantity
Select preferences of size, variation of color, bundles, and quantity before adding an item to the cart. Check that the cart contains exactly what was shown in the product page.
18. Transitioning between the wishlist and signing in
Save an item to the wish list when not signed in. Sign in and check that the wish list was correctly merged correctly, and test item removal, duplicate saves, and synchronization across devices.
19. Product link in cold startup
Close the app and open a product link. Confirm that the app launches to the correct product, preserves campaign information, and routes correctly.
20. App Link or Universal Link verification
Test each link on a fresh app install, an existing install, and a device where link verification has not yet completed. Valid links should take the user to the destination screen within the app, instead of opening the destination page in a web browser.
21. Deferred deep link after installation
Navigate to the campaign link. Upon installation and opening the application for the first time, confirm the user is directed to the intended product or promotional spot, and the campaign attribution SDK captures the intended campaign.
22. Cold-start performance
Time each app launch. New features introduced in the app (e.g. new SDK, additional consent screens, etc.) should not introduce a significant delay prior to the first usable view of the app.
23. Image-heavy product browsing
Test product-list and product-page on a low-memory device and observe decoding of large bitmap images as it progressively loads content, and measure memory consumption and incidents of the app crashing due to out-of-memory errors.
Mobile research conducted by Google shows abandonment occurs when >3 seconds is observed to load a page. Consider it as a key business metric and factor rather than as a technical Performance indicator.
24. Network loss during browsing
While loading search results or product pages, disconnect from the network. Show a clear recovery state and allow the user to repeat the request, without requiring the user to go through the whole process once again.
25. Network loss during checkout
Interrupt the payment flow by losing connectivity. Restore connectivity and verify the order is in a consistent state. The application should not permit a duplicate payment when the payment is repeated.
26. Interruptions and device changes
Phone calls, switching apps, rotation of the screen, notification taps, and more all pose challenges during checkout. However, the checkout process always returns safely to the cart, payment status, and entered information.
27. Checkout with Screen Reader
With TalkBack and VoiceOver, check focus order, field labels, error messages, and the purchase action for each step of the process: search, product selection, adding to cart, and payment.
28. Localization and Large Text
Use large text, long translations, right-to-left layouts, local currency, regional taxes, and local payment methods. Check payment methods and taxes for markets such as India (GST and UPI) and European markets (VAT and local payment).
29. Payment data protection
Ensure that no payment data or personal data is logged or ever captured as a screenshot. Check frameworks to protect payment data against OWASP MASVS guidance for secure storage, session, and screen protection.
30. Validation of release and monitoring
Launch a small smoke suite for each build with a launch, login, search, add to cart, and checkout. Before release, add real-device tests for low-memory behavior, payment redirects, deep links, and degraded networks. Post release, compare payment success rate with order completion versus the last iteration.
Different layers of testing should be assigned to each level of risk.
Teams dealing with frequent promotions and layout changes can use Drizz in the functional UI and real device layers. Drizz uses Vision AI to analyze renderings of screens, leading to tests that can target visible elements such as the Buy Now button, coupon field, or payment action as opposed to testing against fixed selectors. Self-healing incorporates the routine changes associated with A/B testing and seasonal redesigns. Drizz uses the same flows across real iOS and Android devices, including low-end devices.
Drizz does not completely eliminate the need for API testing, load testing, or security testing. In order to cover a complete system, it is best to combine these testing layers with Drizz.
If your team has to choose just a few things to automate, the first things to cover should be the 8 key flows of the checkout and payment process. Once that is done, you should focus on automating cart persistence, inventory racing, payment retries, deep links, and testing against low-end devices. Then, you can focus on accessibility, localization, safety, and other less risky product automation.
Priorities should be addressed with every business change. Automate new payment methods, flash sales, regional launches, checkout modifications, etc. as they affect revenue.
The goal is to ensure a checks and balances system to verify orders, payments, safety, product functionality, and stability across various networks and devices.