Skip to content

Latest commit

 

History

23 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Parabank Test Automation Demo

This project is a test automation framework developed in Java using Selenium WebDriver and JUnit 5, following the Page Object Model (POM) design pattern.

It automates functional testing for the Parabank demo application, applying black-box testing techniques, integrating Data-Driven Testing (DDT) with dynamically generated data, and executing tests through GitHub Actions in headless mode.


🚀 Features

  • Java + Selenium WebDriver for UI test automation.
  • JUnit 5 as the testing framework.
  • Page Object Model (POM) for better maintainability and scalability.
  • Black-box testing techniques to validate behavior without internal system knowledge.
  • GitHub Actions CI/CD to automatically execute tests in headless mode.
  • javaFaker library to generate random test data (users, addresses, etc.).
  • CSV file integration to store generated test data for Data-Driven Testing (DDT).
  • Documentation including a Test Approach, describing how the test object could behave and how test cases are designed.

⚙️ Technologies & Tools

  • Language: Java 17+
  • Test Framework: JUnit 5
  • Automation: Selenium WebDriver
  • Design Pattern: Page Object Model (POM)
  • Data Generation: javaFaker
  • Data Storage: CSV for DDT
  • CI/CD: GitHub Actions
  • Execution Mode: Headless (CI pipeline)

📖 Test Approach

The tests are designed using black-box testing techniques, focusing on expected outputs given specific inputs without knowledge of the internal implementation.

Key aspects of the approach:

  • Equivalence Partitioning & Boundary Value Analysis for input fields.
  • Positive & Negative scenarios for user registration and login flows.
  • Data-Driven Testing using generated CSV data for multiple test cases.
  • Regression & Smoke tests executed in CI pipeline.

▶️ How to Run the Tests Locally

  1. Clone this repository:
    git clone https://github.com/your-username/Parabank-Test-Automation-Demo.git
    cd Parabank-Test-Automation-Demo
  2. Install dependencies (Maven required):
    mvn clean install
  3. Run tests:
    mvn test

🔄 Continuous Integration (GitHub Actions)

Tests are automatically executed in GitHub Actions using a workflow that runs the suite in headless mode.

Sample ci.yml workflow:

name: CI Pipeline

on:
  push:
    branches:
      - main
  pull_request:
    branches:
      - main

jobs:
  test:
    runs-on: ubuntu-latest

    steps:
      - name: Checkout repository
        uses: actions/checkout@v4

      - name: Set up JDK 17
        uses: actions/setup-java@v4
        with:
          java-version: '17'
          distribution: 'temurin'

      - name: Install dependencies
        run: mvn clean install -DskipTests

      - name: Run Selenium tests (headless mode)
        run: mvn test -Dheadless=true

      - name: Upload test reports
        if: always()
        uses: actions/upload-artifact@v4
        with:
          name: test-reports
          path: target/surefire-reports

📊 Reports

After each GitHub Actions run, test reports are generated and uploaded as build artifacts (target/surefire-reports).

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages