- Project Description
- Project Structure
- Technologies Used and Dependencies
- Installation
- Usage
- User Stories & Test Scenarios
- Test Coverage Table
- Test Reports
- Bug Reports
- Project Team
- GitHub Links
- License
- Contact
ParaBank is a virtual banking application that represents a simulated environment for testing and simulating financial transactions. It is not a real financial institution but is used in place of a real banking application during software testing. The test environments provided above are designed for performing various operations that users can execute in a web-based banking application. They are valuable tools for simulating financial transactions such as account creation, money transfers, credit application submissions, and bill payments. They are utilized for implementing various test scenarios. This project automates functional UI tests for the ParaBank Project using Java,Selenium WebDriver, Cucumber, TestNG, and the Page Object Model (POM), **Scenario Outline **, Data Table. The project adopts BDD principles and parallel test execution for scalable automation.
π https://parabank.parasoft.com/
π§ͺ Alternative: https://para.testar.org/
- Cucumber with Gherkin syntax for human-readable test cases
- TestNG + XML execution with browser parameterization
- Thread-safe WebDriver management with
ThreadLocal - ExtentReports Integration for both HTML and PDF reporting
- Page Object Model (POM) for maintainable test code
- Healenium for dynamic locator handling
- Scenario Outline for data-driven testing
- Data Table for parameterized tests
ParaBankProject_Cucumber/
βββ src/
β βββ test/
β β
β βββ java/
β β βββ featureFiles/ # .feature files written in Gherkin
β β βββ hooks/ # Cucumber Hooks (Before/After)
β β βββ pages/ # Page Object Model classes
β β βββ runners/ # TestNG runner classes
β β β βββ XML/ # TestNG XML configuration files
β β βββ stepDefinitions/ # Cucumber step definitions
β β βββ utilities/ # Driver, ConfigReader, ExtentReportManager, etc.
β β
β βββ resources/ # ExtentReports configuration
β
βββ testBugReports/ # Bug reports (if any)
βββ testGifs/ # GIFs used in reports
βββ testReports/ # Spark & PDF report output (auto-generated)
βββ configuration.properties # General test configuration
βββ pom.xml # Maven build configuration
βββ README.md
All required dependencies are declared in pom.xml.
Ensure Maven updates all packages automatically.
| Tool / Library | Description |
|---|---|
| Java JDK 21 | Programming Language |
| Selenium WebDriver 4.31.0 | Web Automation Library |
| Cucumber 7.20.0 | BDD Testing Framework |
| TestNG 7.10.2 | Test Execution Engine |
| ExtentReports + Adapter 1.14.0 | Spark + PDF reporting integration |
| Maven | Project Build + Dependency Manager |
| SLF4J + Log4j | Logging |
| Healenium-web | Locator catching |
| Java Faker library | Dynamically generate unique and realistic test data |
- Clone the repository:
git clone https://github.com/AzimKorkmaz/ParaBankProject_Cucumber.git
- Open the project in IntelliJ IDEA or your preferred IDE.
- Run:
mvn clean install
- To execute all tests with default configuration:
mvn test - To run specific browser tests:
- Open
singleBrowserTesting.xmlorparallelBrowserTesting.xmlin therunners/XML/folder. - Right-click and run the XML file.
- Or You can run the feature file directly by right-clicking on the feature file in the
featureFiles/folder.
- Open
- β User Registration: Creation of user accounts and success message validation.
- β User Login: Validation of login success/failure with correct and incorrect credentials.
- β Bill Payment: Payments for electricity, water, and natural gas bills.
- β Account Creation: Creating checking and savings accounts.
- β Money Transfer: Transfer of funds between internal accounts.
- β Contact Info Update: Editing and verifying profile data.
- β Loan Application: Applying for loans and handling of both approval and denial scenarios.
π The user, wants to create a new user account by registering on the Para Bank website.
β Expected: After clicking on the "Register" link, the user must fill in the required fields, successfully register and log in to the system.
β Actual: The user filled in the form, registered, received a success message and logged into the system.
π The user wants to log in to the system with a valid username and password.
β Expected: The user must be able to log in successfully and then log out.
β Actual: The user logged in and successfully logged out of the system.
π The user is trying to log in to the system with invalid information.
β Expected: The input must fail and an appropriate error message must be displayed to the user.
β Actual: The login failed and the user was shown an error message.
π The user wants to make payments by entering invoice types such as electricity, water or natural gas into the system.
β Expected: The payment must be successfully completed, updated in the system and appear in the payment list.
β Actual: The user made the invoice payment, the system showed a successful message and it was included in the payment list.
π The user wants to create a new demand deposit account on the para bank website.
β Expected: The user must create the new account, receive a confirmation message and see the account number.
β Actual: The user created a new demand deposit account, received a confirmation message and the account number was displayed.
π The user wants to open a new term account by entering the parabank system.
β Expected: The new account should be created successfully and the confirmation message and account number should be displayed.
β Actual: The user created the new term account, the system showed a successful message and provided the account number.
π The user wants to transfer a certain amount between the two accounts they have.
β Expected: The transfer must be successful, a confirmation message must be displayed to the user and the transaction must be included in the account statement.
β Actual: After the money transfer, when you go to the Find Transactions link and query the Transaction ID, the website does not show the transfer made. Transfers made with other query fields such as transfer date, transfer amount are displayed.
π The user wants to verify this transaction using the transaction ID of a past money transfer.
β Expected: The transaction with the Transaction ID must be found and the transaction amount must be the same as before.
β Actual: The transaction with Transaction ID was found and the amount matched.
π The user wishes to update contact information such as address, city, postcode and telephone number.
β Expected: The updated information must be successfully saved, a confirmation message must be displayed and this information must be correctly displayed when the user logs in again.
β Actual: When the user wanted to change any of his/her information, for example, even if he/she entered numbers or special characters in the surname, the system accepted this information. therefore a bug ticket was created.
π The user is trying to update contact details with incomplete information.
β Expected: The system should not allow updates and should display warning messages about missing fields.
β Actual: No update was made, warning messages were shown to the user.
π The user wants to apply for a loan with valid data and expects approval.
β Expected: The user must be able to apply for a loan, see the result instantly, receive an 'Approved' message, and see the new account number. The user should verify that there are no transactions in the new account.
β Actual: The user applied for a loan, received an approval message, saw the new account number, and verified that there were no transactions in the new account.
π The user tries to apply for a loan with invalid data and expects rejection.
β Expected: The user must see the result instantly, receive a 'Denied' message, and see the reason for the rejection.
β Actual: The user applied for a loan with invalid data, received a denial message, and saw the reason for the rejection.
| User Story | Description | Status |
|---|---|---|
| US_601 | User Registration | β Passed |
| US_602 | User Login | β Passed |
| US_603 | Bill Payment | β Passed |
| US_604 | New Account Creation | β Passed |
| US_605 | Money Transfers | β Failed |
| US_606 | Contact Info Update | β Failed |
| US_607 | Loan Application | β Passed |
| Scenario | Priority |
|---|---|
| User Registration | Highest |
| User Login | Highest |
| Bill Payment | Highest |
| New Account Creation | High |
| Money Transfers | Medium |
| Contact Info Update | Medium |
| Loan Application | High |
| Report Type | Description |
|---|---|
| Spark Report | Rich HTML report with steps/screenshots |
| PDF Report | Clean summary with scenario results |
Find reports inside:
- /testReports/SparkReport/
- /testReports/PDFReport/
Bug reports are tracked in the GitHub Issues section of the repository.
US_606 Contact Info Update β when the user wanted to change any of his/her information, for example, even if he/she entered numbers or special characters in the surname, the system accepted this information. therefore a bug ticket was created.
US_605 Money Transfers β After the money transfer, when you go to the Find Transactions link and query the Transaction ID, the website does not show the transfer made. Transfers made with other query fields such as transfer date, transfer amount are displayed.
- testBugReports/US_606 Contact Detail BugReports.pdf
- testBugReports/US_605 Transfer Money Between My Accounts BugReports.pdf| Name | Role | User Stories |
|---|---|---|
| Azim Korkmaz | Project Lead & QA Engineer | US_604 |
| Zafer AtaklΔ± | QA Engineer | US_601 |
| Nuri ΓztΓΌrk | QA Engineer | US_602 |
| RΔ±fat BatΔ±r | QA Engineer | US_603 |
| Tugba Kilic | QA Engineer | US_605 |
| Yigit Cam | QA Engineer | US_606 |
| Sibel Oztemel | QA Engineer | US_607 |
- π Main Repository
Contributors:
This project is licensed under the MIT License.
For any questions or suggestions, please reach out via GitHub or team leads listed above.








