> For the complete documentation index, see [llms.txt](https://docs.drizz.dev/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.drizz.dev/start-here/use-cases.md).

# Use cases

|                  |                                                                                      |
| ---------------- | ------------------------------------------------------------------------------------ |
| **Platforms**    | Android  · iOS  · Mobile web                                                         |
| **Best for**     | End-to-end functional flows,                                                         |
| **Also handles** | Cross-app flows, location-dependent flows, API-seeded data                           |
| **Watch out**    | Secure screens — payment PIN entry renders black to any capture tool, Drizz included |

## Prerequisites

* Drizz desktop app installed and signed in
* The app under test registered
* A `login_module` module, for the checkout example below — see [Modules](/writing-tests/modules.md)

## Scenarios

<table data-search="false"><thead><tr><th>Scenario</th><th>Covers</th></tr></thead><tbody><tr><td><strong>User onboarding</strong></td><td>First launch, permission prompts, profile setup, tutorial skips</td></tr><tr><td><strong>Authentication</strong></td><td>Login, OTP, social sign-in, logout, session expiry</td></tr><tr><td><strong>Search &#x26; filter</strong></td><td>Query entry, result lists, sort and filter combinations, empty states</td></tr><tr><td><strong>Product &#x26; catalog</strong></td><td>Category browsing, product detail, variants, wishlists</td></tr><tr><td><strong>Checkout &#x26; payment</strong></td><td>Cart, address, coupons, order summary, confirmation</td></tr><tr><td><strong>App navigation</strong></td><td>Tab switching, deep links, back behavior, state after backgrounding</td></tr><tr><td><strong>Regression suites</strong></td><td>All of the above, across devices, on every release</td></tr></tbody></table>

Each is an ordinary Drizz test. None requires a different tool or a special mode.

## Copy this

A checkout flow against ShopEase, the demo app used throughout these docs.

```
# ShopEase — add to cart and reach checkout

CALL login_module

Tap on the search icon
Type running shoes in the search field
Tap on the first search result
Wait Until 3 Seconds

Store the price as listed_price
Tap on Add to Cart
Wait Until 2 Seconds

Validate that Item added to cart is visible

Tap on the cart icon
Wait Until 2 Seconds

Validate that the total matches {{listed_price}}
Tap on Proceed to Checkout
Wait Until 3 Seconds

Validate that the checkout page is visible

CLEAR_APP com.shopease.android
```

## Beyond a single app

| Flows                             | Action items                                                                                                                               |
| --------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------ |
| **Flows that leave your app**     | An OTP arriving in the SMS app, a payment handoff, an OAuth screen in a browser                                                            |
| **Location-dependent flows**      | Set a location with `SET_GPS(latitude=, longitude=)` before the app reads it                                                               |
| **Data-seeded flows**             | Call your own API mid-test to create the state a scenario needs, then assert the UI matches — see [API steps](/writing-tests/api-steps.md) |
| **Many accounts or environments** | One script, one [dataset](/writing-tests/which-variable/datasets.md) per environment                                                       |

Worked examples of each are in [Recipes](/writing-tests/recipes.md).

## Common mistakes

| What you do                                          | What happens                                                                                                |
| ---------------------------------------------------- | ----------------------------------------------------------------------------------------------------------- |
| Put a 60-step journey in one test                    | A failure mid-flow is hard to isolate and stabilize. One scenario per test is the pattern these docs assume |
| Assert on a payment PIN screen                       | The screen renders black to any capture tool, Drizz included                                                |
| Automate a device matrix before one device is stable | Every device repeats the same failure                                                                       |

## Next

* [Quickstart: your first test](/start-here/quickstart.md)
* [Recipes](/writing-tests/recipes.md)
* [Known limitations](/reference/known-limitations.md)

***

*Last updated: 6 August 2026*
