โ† Back to projects

Vulnerable Bank App Demo

Intentionally vulnerable Android banking app for QA, Appium, Espresso, and mobile security training

Visit project link โ†’

Vulnerable Bank App Demo is an intentionally vulnerable Android banking application built for QA engineers, test automation students, and mobile security analysts.

The project is designed as a realistic training playground for:

The app intentionally includes vulnerable and test-friendly patterns so engineers can practice automation, analysis, and security workflows in a controlled environment.


๐Ÿ”ง Main Workflow Areas

1) Build the App

Compile the Android project and generate a debug APK for local testing or CI usage.

Typical flow:
Clone repository โ†’ Run Gradle build โ†’ Install debug APK on emulator/device


2) Manual QA Testing

Use the app as a banking demo environment for exploratory testing and mobile QA practice.

Typical flow:
Launch app โ†’ Log in โ†’ Navigate through banking screens โ†’ Verify behavior and edge cases


3) Appium Automation

Run Appium-style flows against the app using stable QA-friendly entry points and UI identifiers.

Typical flow:
Start emulator/device โ†’ Start Appium server โ†’ Install APK โ†’ Run automation tests


4) Espresso / Instrumented Testing

Use Android instrumented tests to validate UI behavior directly on emulator or device.

Typical flow:
Start emulator โ†’ Run connected Android tests โ†’ Review results


5) Security Training

Use the app for mobile security demonstrations such as insecure flows, deep links, reverse engineering, and traffic analysis.

Typical flow:
Install APK โ†’ Inspect behavior โ†’ Analyze app logic โ†’ Test vulnerable patterns safely


โญ Key Features


๐Ÿ“ Important Project Files


โš™๏ธ Useful QA Entry Points

Package name:

com.training.vulnerablebank

Launch login screen:

adb shell am start -n com.training.vulnerablebank/.LoginActivity

Launch dashboard screen:

adb shell am start -n com.training.vulnerablebank/.DashboardActivity

Launch transfer screen:

adb shell am start -n com.training.vulnerablebank/.TransferActivity

Deep link example:

adb shell am start -a android.intent.action.VIEW -d 'vuln://transfer'

๐Ÿงช Common Commands

Build debug APK:

./gradlew clean assembleDebug

Run lint:

./gradlew lint

Run local/unit tests:

./gradlew testDebugUnitTest

Run instrumented tests on emulator/device:

./gradlew connectedDebugAndroidTest

Run Gradle managed device test:

./gradlew :app:headlessApi36DebugAndroidTest

Build and copy APK to artifacts:

./scripts/ci-build-apk.sh

๐ŸŽฏ Project Objectives


โœ… Best Use Cases