Skip to content

About

Automation framework for the ParaBank banking application, built with C#, Selenium WebDriver, NUnit, and Page Object Model. Implements CSV-based Data-Driven Testing via TestCaseSource across six core banking workflows, covering positive/negative scenarios, dynamic test data, validations, and end-to-end functional verification.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Latest commit

Β 

History

2 Commits

Folders and files

NameName
Last commit message
Last commit date
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

ParaBank Data-Driven Testing

A Selenium UI automation project for the ParaBank banking application using Selenium, C#, NUnit, CSV-based test data, and the Page Object Model (POM). The project implements genuine data-driven testing using NUnit TestCaseSource and covers registration, account creation, fund transfers, bill payment, transaction search, and contact information updates.

πŸš€ Project Overview

This project automates end-to-end UI test scenarios for the ParaBank application:

Application: ParaBank URL: https://parabank.parasoft.com/

Test Flows

  • Registration

    • Valid registration with unique users
    • Duplicate username
    • Missing required field
    • Password/confirm-password mismatch
  • Open New Account

    • Checking account
    • Savings account
    • Account creation verification
    • Account type verification
  • Transfer Funds

    • Valid transfers with different amounts
    • Insufficient balance where supported
    • Zero/negative amount where supported
    • Same source and destination account where supported
  • Bill Pay

    • Valid bill payment
    • Missing/invalid required data
    • Account number mismatch
    • Invalid amount/phone format where validated by the application
  • Find Transactions

    • Available transaction search options
    • Valid search scenarios
    • No-result scenarios
  • Update Contact Info

    • Valid update
    • Missing/invalid fields where validated by the application

πŸ› οΈ Technologies Used

  • C#
  • Selenium WebDriver
  • NUnit
  • NUnit TestCaseSource
  • CSV test data
  • Page Object Model (POM)
  • Visual Studio / Visual Studio Code
  • Git & GitHub

πŸ“Š Data-Driven Testing

The project uses CSV files as external test data sources.

Test data is kept separate from the test logic, and NUnit TestCaseSource is used to provide the CSV data to the test methods.

The general flow is:

CSV Test Data
      ↓
CSV Reader
      ↓
NUnit TestCaseSource
      ↓
Test Method
      ↓
Page Object
      ↓
Selenium WebDriver
      ↓
ParaBank UI
      ↓
Assertions

This allows the same test logic to execute against multiple sets of data without duplicating test methods.


πŸ“ Project Structure

The exact structure may vary depending on the implementation, but the project follows the Page Object Model and separates test data from test logic.

ParaBankDDT/
β”‚
β”œβ”€β”€ Pages/
β”‚   └── Page Objects
β”‚
β”œβ”€β”€ Tests/
β”‚   └── NUnit Test Classes
β”‚
β”œβ”€β”€ TestData/
β”‚   └── CSV Test Data
β”‚
β”œβ”€β”€ Utilities/
β”‚   └── Test Data / Helper Classes
β”‚
β”œβ”€β”€ ...
β”‚
└── README.md

πŸ’» Prerequisites

Before running the project, make sure you have the following installed.

1. .NET SDK

Install the appropriate .NET SDK required by the project.

Verify the installation:

dotnet --version

2. Git

Verify Git:

git --version

3. IDE

You can run the project using either:

  • Visual Studio
  • Visual Studio Code

For Visual Studio, make sure the required .NET development/testing workload is installed.

For VS Code, install the C# / C# Dev Kit extensions as appropriate for your installed .NET version.


πŸ“₯ Clone the Repository

Open Git Bash or a terminal and run:

git clone https://github.com/MuhammadSaad1223/Data-Driven-Testing-practice.git

Move into the project directory:

cd Data-Driven-Testing-practice

🟣 Running the Project in Visual Studio

Step 1 β€” Clone the repository

Clone the repository using Git:

git clone https://github.com/MuhammadSaad1223/Data-Driven-Testing-practice.git

Step 2 β€” Open the project

Open the cloned project folder in Visual Studio.

If the repository contains a .sln solution file, open the .sln file.

If it contains a .csproj project file, open the project directly.

Step 3 β€” Restore NuGet packages

Visual Studio should automatically restore the required NuGet packages.

You can also restore them from:

Solution β†’ Restore NuGet Packages

Step 4 β€” Build the project

Build the solution:

Build β†’ Build Solution

Or use:

Ctrl + Shift + B

Make sure the project builds successfully.

Step 5 β€” Run the tests

Open:

Test β†’ Test Explorer

The NUnit tests should appear in Test Explorer.

Run all tests using:

Run All

You can also run individual tests or test classes.


πŸ”΅ Running the Project in Visual Studio Code

Step 1 β€” Clone the repository

Open Git Bash:

git clone https://github.com/MuhammadSaad1223/Data-Driven-Testing-practice.git

Then:

cd Data-Driven-Testing-practice

Step 2 β€” Open the project in VS Code

Run:

code .

Or open the cloned folder manually in VS Code.

Step 3 β€” Install the required C# extension

Install the Microsoft C# tooling/extension required for your .NET setup.

Step 4 β€” Restore dependencies

From the VS Code terminal:

dotnet restore

Step 5 β€” Build the project

dotnet build

Make sure the build completes successfully.

Step 6 β€” Run the tests

Run:

dotnet test

This will build the test project and execute the NUnit tests.


πŸ“„ Test Data

The tests use CSV files to keep test data separate from the automation logic.

Test data is created automatically when the required CSV file does not already exist.

The CSV data is then consumed through NUnit TestCaseSource.

This allows additional test cases to be added by modifying the test data rather than creating duplicate test methods.


πŸ‘€ Unique Test Users

The registration tests require unique usernames for successful registration scenarios.

The project handles unique test users where required so that previously registered users do not interfere with subsequent test executions.


βœ… Assertions

The tests contain meaningful assertions to verify the actual behavior of the ParaBank application.

Assertions cover areas such as:

  • Successful registration
  • Registration errors
  • Account creation
  • Correct account type
  • Transfer results
  • Bill payment results
  • Transaction search results
  • No-result scenarios
  • Contact information updates
  • Validation/error messages where supported by the application

The tests do not assume that a validation exists. Validation behavior is based on what the ParaBank application actually returns.


🧩 Page Object Model

The project follows the Page Object Model pattern.

Page objects are responsible for interacting with the application's UI, while test classes contain the test scenarios, test data, and assertions.

This provides better:

  • Maintainability
  • Reusability
  • Readability
  • Separation of concerns
  • Scalability

πŸ§ͺ Running Individual Test Flows

Tests can be executed individually from Visual Studio Test Explorer or through the appropriate NUnit/.NET test commands.

For example:

dotnet test

You can also run a specific test project if the repository contains multiple projects:

dotnet test path/to/TestProject.csproj

⚠️ Important Notes

  • The tests require an active internet connection because they interact with the ParaBank website.
  • The application is a public practice/demo application, so its behavior may change over time.
  • Some negative scenarios are tested only where the current application actually provides the relevant validation.
  • Tests that create users or accounts may modify application state.
  • Registration tests use unique users where required.
  • Do not store real passwords, personal information, or other sensitive credentials in the CSV test-data files.

πŸ”„ Test Execution Flow

Clone Repository
       ↓
Open in Visual Studio / VS Code
       ↓
Restore Dependencies
       ↓
Build Project
       ↓
CSV Test Data
       ↓
NUnit TestCaseSource
       ↓
Test Method
       ↓
Page Object Model
       ↓
Selenium WebDriver
       ↓
ParaBank
       ↓
Assertions
       ↓
Test Result

About

Automation framework for the ParaBank banking application, built with C#, Selenium WebDriver, NUnit, and Page Object Model. Implements CSV-based Data-Driven Testing via TestCaseSource across six core banking workflows, covering positive/negative scenarios, dynamic test data, validations, and end-to-end functional verification.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages