🏦 ONE COMPLETE EXAMPLE

Online Banking – Money Transfer Feature

Scenario: A bank application allows users to log in and transfer money to another account.


🧠 STEP-BY-STEP: ALL TESTING IN ONE FLOW


1️⃣ Testing Techniques (HOW you test)

πŸ”Ή White Box Testing (Developer side)

What: Developer tests internal code logic of money transfer.

Example:

  • Check if balance >= transferAmount
  • Check error handling when DB connection fails
  • Loop validation for retry attempts

πŸ‘‰ Focus: code paths, conditions, loops


πŸ”Ή Black Box Testing (QA/User side)

What: Tester doesn’t see code, only inputs & outputs.

Example:

  • Enter $5,000 with enough balance β†’ Transfer successful
  • Enter $50,000 with low balance β†’ Error message shown

πŸ‘‰ Focus: input β†’ output behavior


πŸ”Ή Grey Box Testing

What: Tester knows partial system details (API + DB).

Example:

  • Submit transfer request
  • Verify API returns 200 OK
  • Check database transaction record is created correctly

πŸ‘‰ Focus: behavior + internal data validation


2️⃣ Testing Levels (WHERE you test)


πŸ”Ή Unit Testing

Who: Developer What: Individual functions

Example:

  • Test calculateFee() function
  • Test validateAccountNumber() function

πŸ”Ή Integration Testing

What: Interaction between modules

Example:

  • Login module β†’ Transfer module
  • Transfer module β†’ Notification (SMS/Email)

Types in action:

  • Bottom-Up: Test transfer service before UI
  • Top-Down: Test UI with mocked backend

πŸ”Ή System Testing

What: End-to-end flow

Example:

  • Login β†’ Select beneficiary β†’ Enter amount β†’ Transfer β†’ Logout

Includes: βœ” Functional βœ” Performance βœ” Security βœ” Usability


πŸ”Ή Acceptance Testing (UAT)

Who: Business / End Users

Examples:

  • User verifies daily transfer limit works
  • Business confirms regulatory rules applied
  • Ops team checks logs, monitoring, backup (OAT)

Alpha: Bank internal staff testing Beta: Limited real customers testing before launch


3️⃣ Testing Types (WHAT you test)


βœ… Functional Testing

πŸ”₯ Smoke Testing

Question: Is build usable at all?

Example:

  • App opens
  • Login works
  • Transfer page loads

πŸ‘‰ Build is not broken


πŸ”₯ Sanity Testing

Question: Did the specific fix work?

Example:

  • Bug fixed: Transfer failed for decimals
  • Test only decimal transfer scenario

πŸ‘‰ Fix is logical


πŸ”₯ Retesting

Question: Is THIS bug fixed?

Example:

  • Re-execute the same failed test case
  • Confirm transfer now succeeds

πŸ”₯ Regression Testing

Question: Did anything else break?

Example: After transfer fix, re-test:

  • Login
  • Balance display
  • Transaction history
  • Logout

πŸ‘‰ Nothing else broke


πŸ§ͺ Non-Functional Testing

πŸš€ Performance Testing

  • 10,000 users transferring money simultaneously
  • Check response time < 3 seconds

πŸ” Security Testing

  • SQL Injection on transfer amount
  • Session hijacking attempt
  • Authorization check (user cannot transfer from another account)

🎯 Usability Testing

  • Is transfer screen easy to understand?
  • Clear error messages?

πŸ“± Compatibility Testing

  • Works on Chrome, Firefox, Safari
  • Works on mobile & desktop

πŸ” Reliability Testing

  • Run transfers continuously for 24 hours
  • App should not crash or leak memory

🎯 Experience-Based Testing

Example: Tester tries:

  • Transfer $0
  • Transfer extremely large value
  • Rapid multiple clicks on β€œTransfer” button

πŸ‘‰ Based on experience + intuition


🧠 ONE-LINE INTERVIEW SUMMARY (POWERFUL)

β€œIn an online banking transfer feature, developers perform unit and white-box testing on transfer logic, QA performs black-box functional testing, smoke, sanity, retesting, and regression testing across integration, system, and UAT levels, while non-functional testing ensures performance, security, usability, compatibility, and reliability before release.”


If you want, next I can:

  • Turn this into 1-minute interview answer
  • Convert it into diagram / flow
  • Give real QA interview Q&A based on this example

Just tell me πŸ‘Œ