Consumer app — QA user stories
1. Onboarding & Gender
- As a new user, I want to pick my shopping rail (Her / Him) on first launch, so the app shows me relevant content from the start.
- As a shopper, I want to switch rail later, so I can browse the other side.
Test focus Gender pick persists across relaunch; rail choice visibly changes Home and section content; switching rail (Her↔Him) re-themes/re-filters without a crash or blank page; splash routes correctly whether onboarded or not.
2. Authentication (phone OTP)
- As a guest, I want to browse freely and only be asked to log in when I do something personal (checkout, save, like, try-on), so nothing blocks casual browsing.
- As a new user, I want my first OTP to both sign me up and log me in, then capture my name/email.
Test focus Protected actions raise the login sheet (not a hard wall); OTP request + verify on a valid number; wrong/expired OTP rejected cleanly; first-time login routes to Complete Profile; session persists across relaunch; logout clears personal data; resend-OTP works. OTP is via Slide right now (MSG91 down) — use a whitelisted test number.
3. Home & Editorial Content (CMS-driven)
- As a shopper, I want a home feed of campaigns, Top Stories, Steals, occasions and edits tailored to my rail, so I discover what is current.
- As a shopper, I want pull-to-refresh to show the latest published content.
Test focus All home sections render for both rails; banners/stories/tiles open the right destination; a newly published CMS change appears (pull-to-refresh on the new build; cold start on older builds); scheduled items honour their dates; a disabled section is hidden; first launch shows content quickly, not a long blank; offline shows last-seen content, not an error wall.
4. Category Browse & Filters
- As a shopper, I want to browse by category and narrow with filters/sort, so I can find a type of product fast.
Test focus Category grid loads; drilling into a category lists products; facet filters + sort change results and counts sensibly; empty category states read cleanly; the hero-zoom transition is smooth; back navigation keeps scroll/filters.
5. Search — keyword suggestions → results updated
- As a shopper, I want keyword suggestions as I type (not a raw product dump), so I can pick the right term and jump to its results.
Test focus Typing shows suggestions (the typed term first, plus matching recent searches, categories, brands) — no product grid while typing; tapping a suggestion (or Recent/Trending chip, or the Search key) shows that term’s product results; editing the query returns to suggestions; clearing resets to Recent/Trending/Popular; a term with no matches shows a clean empty state; rail-first then widen ("nothing in HER — showing everything") works; offline typing still suggests the raw term + recents.
6. Image Search stub
- As a shopper, I want to search by photo.
Test focus Camera/photo pick + scan animation runs and returns a result set without crashing. Results are a generic "newest catalog" stand-in, not true visual matches — expected until visual search ships. Do not log "wrong matches"; do log crashes/permission failures.
7. Product Detail & Variants
- As a shopper, I want to see sizes/variants, price, imagery and reviews, and add to bag or buy now.
Test focus Variant/size selection; out-of-stock variants handled; Add to Bag + Buy Now; try-on entry point; reviews visible; price matches cart/checkout; image gallery and zoom; share/wishlist if present.
8. Virtual Try-On
- As a shopper, I want to see a garment on my own photo, so I can judge the look before buying.
Test focus Try-on requires login (gated); pick/take a person photo; generation produces a result image against a real listing; sensible loading + error messaging on failure/timeout; camera/photo permission handling; repeated try-ons do not leak/stall.
9. Reels & Social
- As a guest, I want to watch the reels feed.
- As a shopper, I want to like/save/comment, post a reel tagging a product, and report/block a creator.
Test focus Feed scrolls and plays; read works for guests; like/save/comment/post are auth-gated; posting a ≤30s video + tagging a product; report + block hide content as expected; counts update.
10. Cart / Bag
- As a shopper, I want one bag with quantities, per-store delivery method and a coupon field, so I can review before checkout.
Test focus Add/update/remove items; quantity limits; per-store delivery selection; coupon apply/remove with server validation (valid, invalid, expired); guest bag is local and merges on login; totals recompute correctly; empty-bag state.
11. Checkout & Payment
- As a shopper, I want a single-page checkout with address, delivery and payment, so I can pay in one place.
Test focus Address select/add; delivery options (Standard / Store pickup / Try-and-Buy); payment via Pay online (UPI/card/netbanking, Razorpay) and Cash on Delivery; wallet as partial tender; COD is blocked for Try-and-Buy; placing creates one order per store; Razorpay success/failure/cancel paths; server verifies capture before success; price shown = price charged; retry on a pending payment.
12. Order Tracking & Lifecycle
- As a shopper, I want to track an order, see its timeline, cancel when allowed, and confirm delivery.
Test focus Order history + detail; status timeline per delivery method; cancel only when eligible; delivery/handover proof (QR/OTP) shown at the right stage; retry payment on pending; post-delivery actions (return/keep) appear when valid.
13. Try-and-Buy (door visit)
- As a shopper, I want to try items at my door and keep only what I want, so I pay for what I keep.
Test focus Try-and-Buy selectable at checkout (prepaid, not COD); at-door Keep / Return per item; refund for returned items follows; the try window / rules read clearly; partial keep works.
14. Returns & Refunds
- As a shopper, I want to return eligible delivered items and hand them to the pickup agent.
Test focus Return allowed only for delivered, within 7 days, eligible items; pick order → items → reason; reverse pickup created; collect OTP shown to read to the driver; refund reflected; ineligible items/orders blocked with a reason. (No exchange/replacement — expected.)
15. Ratings & Reviews
- As a shopper, I want to read reviews and write my own, so I can decide and share.
Test focus Read reviews on PDP + Reviews screen; writing requires login; submit/edit a rating + text; validation on empty/oversized input.
16. Rewards & Wallet
- As a shopper, I want spin-to-win, coupons, referrals, gift-card redemption and a wallet, so I am rewarded for engaging.
Test focus Real features: Spin & Win draws a prize server-side, claim requires login; Coupon Wallet shows real active offers and they apply at checkout; Referrals/Invite code + share + redeem; Gift card redeem credits the wallet; wallet + loyalty balances and ledgers are accurate and spend correctly. (Daily Reward / Style Quiz / Lucky Draw / Challenges / Push & Win are cosmetic — see Appendix A.)
17. Profile & Account
- As a shopper, I want to manage my profile, addresses, payment, notifications, support and delete my account.
Test focus Edit name/email/phone; saved addresses (add/edit/delete, pincode→city, location required); notifications inbox reads + marks read; support tickets tied to an order/return (thread + reply); store pickup locator; account deletion path (confirm the backend endpoint exists before sign-off). Saved-card list is static/local — real payment is Razorpay at checkout (Appendix A).
18. Notifications
- As a shopper, I want an in-app notification inbox for order/return/promo updates.
Test focus Inbox lists real notifications; unread/read state; tapping routes to the right screen (order, return, etc.); empty state.
19. Non-functional
Test focus Cold-start to first paint is reasonable; rail flips are smooth (no blank/collapse); offline/poor-network degrades gracefully (last-seen content, honest errors — never fake demo products); images load at sensible sizes; festival theme applies/expires; no frozen-screen after closing the Search/Product modals; back/stack behaves; memory stable over a long session.
Appendix A — Cosmetic / stub (do NOT log as bugs)
These are expected to be non-functional or sample-data only:
- Image Search — returns generic newest catalog, not visual matches.
- Daily Reward, Style Quiz, Lucky Draw, App Challenges, Push & Win — local/random, no backend.
- Community Feed, Mood Board — bundled sample data.
- Style Preferences, Fashion Calendar, Sustainability — hardcoded, not persisted.
- Saved cards on Payment Methods — static list; actual payment is Razorpay at checkout. (The wallet balance shown there is real.)
- Language / some toggle screens — local toggles only.
- Legacy 4-step checkout — retired and unreachable; checkout is the single-page flow.
Still log crashes, broken navigation, or auth/permission failures on these screens — just not "the reward/quiz/feed isn’t real".
Appendix B — Business rules to assert
- One order per store in a multi-store bag.
- COD not allowed for Try-and-Buy (prepaid only).
- Returns: delivered + within 7 days + eligible items; reverse pickup uses a collect OTP; no exchange.
- Wallet can be a partial tender alongside Razorpay/COD.
- Guest bag is local and merges on login; orders/returns/wallet/loyalty/addresses/notifications are auth-only (401 for guests).
- CMS/home content is the published snapshot; unpublished admin edits must not appear.
- Login OTP via Slide right now (MSG91 down) — use a whitelisted test number.
Appendix C — Suggested release-pass priority
- Auth (OTP)
- Checkout & Payment (Razorpay, COD, wallet)
- Cart
- Order tracking
- Returns & Try-and-Buy
- Home/CMS publish visibility
- Search
- Product / Try-on
- Reviews / Reels
- Rewards / Profile
- Non-functional / offline