1Business context
TrustBank is retail net banking. Security and correctness dominate: two-step login with lockout, payee management with strict validation, transfer limits, OTP confirmation, and an auditable statement. Money maths must reconcile exactly.
Two-step login with lockout, account dashboard, add a beneficiary, transfer funds with OTP, manager approval for large transfers, session timeout, a paginated statement and a buggy build.
2Users & roles
- 👤 Account holder (Customer ID 100200300) — views balances, adds payees, transfers money, downloads statements
- 👤 Branch manager (Customer ID 900800700) — approves or rejects transfers of ₹25,000 or more
- 👤 Buggy build (Customer ID 100200399) — the same bank with 5 seeded defects
3Modules & screens
| Screen | Route | What it does |
|---|---|---|
| Login | /apps/bank | Customer ID + password, then security question; lockout after 3 failures |
| Dashboard | /apps/bank/dashboard | Account balances and quick actions |
| Transfer | /apps/bank/transfer | Add payee (IFSC + matching account numbers), amount, mode, OTP |
| Receipt | /apps/bank/receipt | Transfer reference and new balance, or “Sent for approval” for large transfers |
| Approvals | /apps/bank/approvals | Branch manager only: approve, or reject with a reason (customers see Access denied) |
| Bug hunt | /apps/bank/bug-hunt | Briefing, hints and answers for the buggy build's 5 seeded defects |
| Transactions | /apps/bank/history | Filtered, paginated statement with CSV download |
4Main end-to-end journey
Login, add payee, transfer with OTP
- Log in with 100200300 / Bank@123 and answer greenwood
- Open Transfer and add payee Ravi Kumar (account 123456789012, IFSC TRST0001234)
- Transfer ₹2,500 by IMPS with remark Rent
- Review and confirm
- Enter OTP 246810
Expected: Success receipt shows ₹2,500.00 and a new balance of ₹1,22,930.50
5Business rules & validations
- Invalid login & lockoutBeginner
Wrong password shows attempts left in login-error; the 3rd failure locks the form (reset-lock).
- Two-step authenticationBeginner
After step 1, security-question appears; a wrong answer keeps you on step 2.
- Route guardBeginner
Opening /apps/bank/dashboard signed out redirects to the login page.
- Add a payeeIntermediate
Validate IFSC pattern and matching account numbers; pasting into the confirm field is blocked.
- Transfer rulesIntermediate
Balance, daily limit (₹50,000) and RTGS minimum each raise their own error-* message.
- OTP stepIntermediate
Wrong OTP shows otp-error; 246810 completes the transfer after a processing overlay.
- Balance reconciliationAdvanced
new-balance on the receipt must equal the old balance minus the amount, and match the dashboard.
- Statement filters & pagingAdvanced
Combine history-* filters, walk page-next until disabled, export download-statement CSV.
- Session timeoutAdvanced
Mock the clock 10 minutes ahead: you're logged out and see session-expired.
- Maker and checkerAdvanced
₹25,000 or more shows approval-notice and ends on transfer-pending with the balance unchanged; manager 900800700 approves or rejects (10+ character reason) in approvals-table.
- Role-based accessIntermediate
The customer sees access-denied on /apps/bank/approvals; the manager sees it on /apps/bank/transfer.
- Bug huntAdvanced
Customer ID 100200399 has 5 seeded defects (daily limit, receipt balance, debit filter, CSV, OTP) — catch each with a test.
- UI vs APIAdvanced
POST /api/bank/transfer-check returns the same error text as the form; GET /api/bank/rules lists the limits.
6Test data & credentials
- URL
- /apps/bank
- Customer ID
- 100200300
- Manager ID
- 900800700
- Password
- Bank@123
- Security answer
- greenwood
- OTP
- 246810
7Glossary
- IFSC
- Indian bank branch code — validated by pattern
- IMPS / NEFT / RTGS
- Transfer modes; RTGS has a ₹2,00,000 minimum
- Daily limit
- Total transfers are capped at ₹50,000 per day
- Session timeout
- 10 minutes idle logs the user out
- Maker / checker
- Transfers of ₹25,000 or more are held as Pending approval; no money moves until the manager approves
- Transfer-check API
- POST /api/bank/transfer-check applies the same rules as the Transfer form
8Watch-outs for automation
- ⚠️Approvals live in this browser, so the customer and the manager must share one browser context — switch user by logging out
- ⚠️Pasting into the confirm-account field is blocked — type instead
- ⚠️Mock the clock for session-timeout tests
- ⚠️Verify new balance = old balance − amount on both receipt and dashboard
9Suggested test strategy
1 · Smoke
8
P1 positive and end-to-end cases — run on every build.
2 · Regression
30
All cases, incl. 9 negative and 8 edge — run before release.
3 · End-to-end
4
Full user journeys — run nightly.
Start with these smoke cases
- TRUSTBANK-01 — Two-step login
- TRUSTBANK-02 — Transfer to a new payee
- TRUSTBANK-03 — Balance reconciliation
- TRUSTBANK-17 — Large transfer waits for approval
- TRUSTBANK-18 — Manager approves a transfer
- TRUSTBANK-E2E-01 — Login, add payee, transfer with OTP
- TRUSTBANK-E2E-02 — Transfer reflects in dashboard and statement
- TRUSTBANK-E2E-04 — Maker and checker across two users