Module: User Authentication
| TC ID |
Title |
Priority |
Type |
Test Steps |
Expected Result |
Status |
| TC-001 |
Successful login with valid credentials |
P1 |
Positive |
- Navigate to /login
- Enter valid email + password
- Click "Sign In"
|
User redirected to dashboard. Auth token set in cookie. Welcome message displayed. |
Pass |
| TC-002 |
Login fails with incorrect password |
P1 |
Negative |
- Navigate to /login
- Enter valid email + wrong password
- Click "Sign In"
|
Error toast: "Invalid email or password". No redirect. Password field cleared. |
Pass |
| TC-003 |
Account lockout after 5 failed login attempts |
P1 |
Negative |
- Attempt login with wrong password 5 consecutive times
- Attempt 6th login
|
Account locked. Error: "Account temporarily locked. Try again in 15 minutes." Email notification sent. |
Pass |
| TC-004 |
OTP verification on new device login |
P2 |
Positive |
- Login from unrecognised device/browser
- Receive OTP via email
- Enter OTP within 5 mins
|
OTP prompt shown. Valid OTP accepted, user proceeds to dashboard. Device added to trusted list. |
Pass |
Module: Checkout Flow (Redesigned)
| TC ID |
Title |
Priority |
Type |
Test Steps |
Expected Result |
Status |
| TC-005 |
Complete checkout as authenticated user (card payment) |
P1 |
Positive |
- Add 2 items to cart
- Proceed to checkout
- Confirm shipping address
- Select Visa card payment
- Click "Place Order"
|
Order confirmed. Order ID generated. Confirmation email sent. Cart cleared. Stock decremented. |
Pass |
| TC-006 |
Guest checkout without account |
P1 |
Positive |
- Add item to cart as guest
- Proceed to checkout
- Enter email + shipping info
- Complete payment
|
Order placed successfully. Confirmation shown and emailed. Guest order retrievable via email + order ID. |
Pass |
| TC-007 |
Checkout with expired credit card |
P1 |
Negative |
- Add item to cart
- Proceed to checkout
- Enter card with past expiry date
- Submit
|
Stripe returns error. Message: "Your card has expired." Order NOT placed. User stays on payment step. |
Pass |
| TC-008 |
Apply valid discount code at checkout |
P2 |
Positive |
- Add items to cart (โฅ $50)
- Enter code SAVE20
- Click Apply
|
20% discount applied. Order summary updated. Discount line shown. Minimum order validation enforced. |
Pass |
| TC-009 |
Checkout with out-of-stock item in cart |
P1 |
Negative |
- Add item to cart
- Mark item as out-of-stock in DB
- Attempt checkout
|
Error shown: "[Item] is no longer available". Out-of-stock item flagged in cart. Cannot proceed until removed. |
Pass |
Module: Apple Pay & Google Pay Integration
| TC ID |
Title |
Priority |
Type |
Test Steps |
Expected Result |
Status |
| TC-010 |
Apple Pay payment on iOS Safari (successful) |
P1 |
Mobile |
- Open checkout on iPhone Safari
- Select Apple Pay
- Authenticate with Face ID
- Confirm payment
|
Payment processed via Stripe. Order confirmed. Apple Pay sheet dismissed. Confirmation shown. |
Pass |
| TC-011 |
Google Pay on Android Chrome (successful) |
P1 |
Mobile |
- Open checkout on Android Chrome
- Select Google Pay
- Authenticate with fingerprint
- Confirm payment
|
Payment processed. Order confirmed. Google Pay sheet dismissed. |
Pass |
| TC-012 |
Apple Pay not shown on non-Safari browser |
P2 |
Negative |
- Open checkout on iOS Chrome or Firefox
- View payment options
|
Apple Pay option NOT displayed. Only card + Google Pay shown. |
Pass |
| TC-013 |
Payment declined via Apple Pay (insufficient funds) |
P2 |
Negative |
- Use Stripe test card for insufficient funds
- Attempt Apple Pay checkout
|
Payment declined. Error: "Payment failed. Please try another method." Order NOT created. |
Fail |
Module: Wishlist Sharing (New Feature)
| TC ID |
Title |
Priority |
Type |
Test Steps |
Expected Result |
Status |
| TC-014 |
Generate shareable wishlist link |
P1 |
Positive |
- Add 3 items to wishlist
- Click "Share Wishlist"
- Select "Copy Link"
|
Unique share URL copied. URL format: /wishlist/share/{token}. Link expires after 30 days. |
Pass |
| TC-015 |
Recipient can view shared wishlist (not logged in) |
P1 |
Positive |
- Open share link in incognito
- Browse wishlist
|
Wishlist displayed read-only. Items visible with names, prices, images. "Add to Cart" available. No edit access. |
Pass |
| TC-016 |
Expired wishlist link shows appropriate error |
P2 |
Negative |
- Force-expire share token in DB
- Open the share URL
|
404 or "This wishlist link has expired" page shown. No wishlist items leaked. |
Pass |
Module: Product Search & Filters (Regression)
| TC ID |
Title |
Priority |
Type |
Test Steps |
Expected Result |
Status |
| TC-017 |
Search returns relevant results for keyword |
P1 |
Regression |
- Type "wireless headphones" in search bar
- Press Enter
|
Results page loads in <1s. โฅ5 relevant products shown. Page title updates to search query. |
Pass |
| TC-018 |
Filter by price range limits results correctly |
P2 |
Regression |
- Search for "shoes"
- Set price filter $20โ$80
- Apply filter
|
Only products priced $20โ$80 displayed. No products outside range shown. Count updates. |
Pass |
| TC-019 |
Search with no results shows empty state |
P3 |
Negative |
- Search for "xyznotaproduct99999"
|
"No results found for 'xyznotaproduct99999'" shown. Suggestions or popular items displayed below. |
Pass |
Module: Order Management (Regression)
| TC ID |
Title |
Priority |
Type |
Test Steps |
Expected Result |
Status |
| TC-020 |
Cancel order within cancellation window |
P2 |
Positive |
- Place order
- Navigate to Order History
- Click Cancel on order within 30 mins
- Confirm cancellation
|
Order status โ "Cancelled". Refund initiated (3โ5 business days). Email notification sent. |
Pass |
| TC-021 |
Cancel order outside window shows error |
P2 |
Negative |
- Place order >30 mins ago (or in "Shipped" status)
- Attempt cancellation
|
"Cannot cancel order โ already shipped" message. Cancel button disabled/hidden. |
Pass |
Module: Mobile App (iOS & Android โ Smoke)
| TC ID |
Title |
Priority |
Type |
Test Steps |
Expected Result |
Status |
| TC-022 |
App launches and home screen loads (iOS) |
P1 |
Mobile |
- Launch ShopEase app on iPhone 14 (iOS 17.4)
|
Splash screen shown โค2s. Home feed loads with featured products. No crash. |
Pass |
| TC-023 |
App launches and home screen loads (Android) |
P1 |
Mobile |
- Launch ShopEase app on Galaxy S23 (Android 13)
|
Splash screen shown โค2s. Home feed loads. No crash. |
Pass |
| TC-024 |
Complete checkout flow on iOS (card payment) |
P1 |
Mobile |
- Add item to cart in iOS app
- Proceed to checkout
- Enter card details
- Place order
|
Order placed. Confirmation screen shown. Push notification received. |
Pass |
| TC-025 |
Accessibility: checkout screen VoiceOver navigation (iOS) |
P3 |
Mobile |
- Enable VoiceOver on iPhone
- Navigate checkout screen
|
All interactive elements have accessible labels. Focus order logical. Payment fields announced correctly. |
Pass |