One Week Sprint URL: Parasoft Project
Alternative URL: Parasoft Project
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.
The environment we will use for this sprint: https://parabank.parasoft.com/
User Story | Contributor | Role |
---|---|---|
US_601: User Registration | Erdem GĂĽrel | QA Automation Engineer |
US_602: User Login | Onur Girgin | QA Automation Engineer |
US_603: Bill Payment Functionality | Onur Girgin | QA Automation Engineer |
US_604: Account Creation | Nigar Ayla Ă–zcanan | Project Lead & QA Automation Engineer |
US_605: N/A | N/A | N/A |
US_606: Inter-Account Money Transfer | Erdem GĂĽrel | QA Automation Engineer |
US_607: Contact Information Update | N/A | N/A |
US_608: Loan Application | Onur Girgin | QA Automation Engineer |
- US601 | User Registration: Create registration records for new users in ParaBank.
- US602 | User Login: Verify the login process for registered users.
- US603 | Bill Payment Functionality: Test payment processes for various bill types such as electricity, water, and gas bills.
- US604 | Account Creation: Test the creation of both checking and savings accounts.
- US605 | {NULL}
- US606 | Inter-Account Money Transfer: Testing user’s ability to transfer money between their own accounts.
- US607 | Contact Information Update: Test updating of user contact information.
- US608 | Loan Application: Test the loan application process and its outcomes.
As a user, I want to benefit from bank services by opening an account on the Para Bank website. When I complete the account opening process, I must verify that I have successfully registered. So I can access my private bank services.
- The user must navigate to the ParaBank website.
- The website must have a connection such as "register" or "sign up" on the home page.
- The user must fill out the registration form and use information that is not valid in this form (for example, a false name and a false e-mail address).
- After completing the registration form, the user must click on a button such as "submit" or "register".
- The user must verify a successful registration process and see a message like "Your Account Was Created Successfully. You are now logged in."
- Internet access should be provided in the test environment.
- The browser to be used for the test (e.g., Chrome, Safari, or Firefox) must be installed and initiated.
- The user should be able to access https://parabank.parasoft.com/.
All fields except for the phone number must be filled out with optional values.
- First Name: {OPTIONAL}
- Last Name: {OPTIONAL}
- Address: {OPTIONAL}
- City: {OPTIONAL}
- State: {OPTIONAL}
- Zip Code: {OPTIONAL}
- Phone #: {OPTIONAL}
- SSN: {OPTIONAL}
- Username: {OPTIONAL}
- Password: {OPTIONAL}
- Confirm Password: ''
This story is a high priority for new users to use the Para Bank website because an account opening process is a basic step.
Accounts, Smoke, Regression
Scenario 1 Case 1: Creation of User Record
- The user navigates to the ParaBank website.
- Click the "Register" link on the home page.
- The user fills the areas given in the customer data.
- Click the user register button.
- The user is logged in the system with the information entered during registration.
- The user confirms the message that it is successfully registered and logged.
As a user, I want to access my account by logging into the Para Bank website and perform my bank transactions. I need to confirm whether logging into the site is successful or unsuccessful by testing my login process with valid and invalid user information. So I can be sure that I have accessed the site safely.
- The user must navigate to the ParaBank website.
- The website must have a connection such as "Sign In" or "Login" on the home page.
- The user must log in using the current user name and password combination.
- The user must attempt to log in using an invalid user name or password combination.
- After the login process, the user must verify a successful or unsuccessful input.
- This test requires successfully completing the story called "US701".
- "Valid username and password combination"
- "Invalid username and password combination"
This story is a high priority for new users to use the Para Bank website because the entry process is a basic step.
Accounts, Smoke, Regression
Scenario 2 Case 1: Login with valid user information:
- The user navigates to the ParaBank website.
- On the home page, click "Sign In" or "Login" link.
- Login with a valid user name and password combination.
- The user confirms that it has successfully entered.
- The user switches the session with "Log Out" option.
Scenario 2 Case 2: Login with invalid user information:
- The user navigates to the ParaBank website.
- On the home page, click "Sign In" or "Login" link.
- It logs in with an invalid user name or password combination (for example, wrong user name and wrong or empty password).
- The user confirms an unsuccessful input and confirms the error message that appears on the screen.
As a user, I want to pay my invoices through the Para Bank website. I need to verify the invoice payment process of the system by paying different types of invoices (electricity, water, natural gas). So I can spend the time I spend on invoice transactions.
- The user must have successfully entered the Para Bank website.
- The user must be directed to the invoice payment (Bill Pay) page.
- The user must test the functionality of the system by paying different types of invoices (electricity, water, natural gas).
- After each invoice payment, the user must verify that the payment is successfully completed.
- The user must verify that the account balance is updated after each payment process and the list of the paid invoice is updated.
- This test requires successfully completing the story called "US702".
- Buyer Name: A username containing the invoice type (e.g., Enerjisa Electricity, Ä°GDAĹž Natural Gas ...)
- Address: {random}
- City: {Random}
- Region: {random}
- Postal Code: {Random}
- Phone #: {random}
- Buyer Account #: {random}
- Verify the buyer account #: ''
This story is important to perform users' daily financial transactions, so it is a high priority.
Payment, Smoke, Regression
Scenario 3 Case 1: Electric Bill Payment:
- The user successfully logs in to the ParaBank website.
- The user clicks the "Bill Pay" ("Invoice Payment") option from the menu on the website.
- The user is directed to the invoice payment page.
- The user also enters the type of invoice (electricity) he wants to pay into the recipient name (payee name) (for example, "Enerjisa Electricity Bill").
- The user fills the invoice information in the customer datas with random {random} values.
- The user enters the amount to be paid (for example, $ 85).
- The user selects the account to pay.
- The user clicks the "Payment" button to confirm the payment process.
- The user confirms that the payment is successfully completed, the payment amount, and the payment account number.
- The user clicks on the link "Accounts OverView".
- User clicks on the payment account number.
- The user confirms the payment date in the list, the payment name, and the payment amount in the list.
Scenario 3 Case 2: Water Bill Payment:
- Repeat the steps from Case 1, replacing the type of invoice with water and adjusting the payment amount accordingly.
Scenario 3 Case 3: Natural Gas Invoice Payment:
- Repeat the steps from Case 1, replacing the type of invoice with natural gas and adjusting the payment amount accordingly.
As a user, I want to be able to create futures and demand accounts. Thus, I can better organize my financial transactions and manage efficiently.
- The user must have logged in before starting the account creation process.
- The user must be able to access the relevant menu or page to create futures or demand accounts.
- The following options should be offered to the user on the account creation screen:
- Account Type: Savings
- Account Type: Checking
- The user should select the account of the desired type (term or free).
- When creating a bank account, the user should be able to see the message of how much starting balance should be.
- The user should be able to select the requested account for starting balance during creating a bank account.
- The user must enter the necessary information correctly and completely and click a button such as "open a new account".
- When the account creation process is successfully completed, a confirmation message and new account number must be shown to the user.
- This test requires successfully completing the story called "US601".
- The user must be logged into the system.
- {min. Balance} is required.
- Account Type:
- CHECKING Accounts
- SAVING Accounts
- Existing existing accounts (Every time this test works, a valuable account number occurs; the first account occurs during the register.)
This story is a basic step for users to manage their financial transactions. However, compared to other procedures, it is currently a middle priority.
Accounts, Smoke, Regression
Scenario 4 Case 1: Checking Account:
- The user successfully logs in to the ParaBank website.
- The user clicks on the "Open New Account" link from the menu on the website.
- The user is directed to the bank account opening page.
- The user selects the type of account from the Drop-Down menu as "checking".
- The user will open a minimum balance in the new bank account {Min. Balance} receives the warning that it should be found.
- The user selects the account from the Drop-Down menu to attract the minimum balance.
- The user clicks the "Open New Account" button.
- The user sees the account number by verifying that the new bank account has been created successfully.
Scenario 4 Case 2: Savings Account:
- Repeat the steps from Case 1, selecting the account type as "Savings" from the drop-down menu.
As a user, I would like to transfer money from one of my current accounts to another. In this way, I can quickly meet my different financial needs.
- The user must be logged in before initiating a money transfer between accounts.
- The user should have access to the relevant menu or page for initiating a money transfer.
- On the Money Transfer screen, the user should be prompted to provide the following information:
- Sending Account (Account to be debited)
- Receiving Account (Account that will receive the money)
- Transfer Amount
- The user must enter the required information for the transfer process accurately and completely.
- To confirm and complete the money transfer process, there must be a "Transfer" button available.
- The user should be able to click the "Transfer" button.
- Once the transfer process is approved, a confirmation message or transaction details must be displayed to the user. This information should include details of the sending account, receiving account, and transfer amount.
- The user should have the option to verify the transfer through an alternative method, such as checking the account summary, in addition to the confirmation message.
- This test requires successfully completing the story called "US701".
- The user must be logged into the system.
- After logging in, the user must successfully execute the "US704" case at least once.
- The user must have at least two accounts.
- The user must have a sufficient balance to be able to transfer.
- Amount: {$OPTIONAL}
- Sender Account (from...): {Select}
- Receiver Account (to...): {Select}
Low
Loan, Accounts, Regression
Scenario 6 Case 1: Money transfer between my accounts:
- The user successfully logs in to the ParaBank website.
- The user clicks on the "Money Transfer" (or "Transfer Funds") link from the website menu.
- The user is directed to the fund transfer page.
- The user selects a sender and receiver account from the drop-down menu.
- The user enters the {$ OPTIONAL} amount to be transferred into the "Amount" field.
- The user clicks the "Transfer" button.
- The user confirms the transfer details in the confirmation message, including sender account, receiver account, and transfer amount.
- The user clicks on the link of the newly created credit account number.
- The user verifies the account details, including the account number, type, balance, and available balance.
- The user confirms the absence of transactions in the account activity.
As a user, I want to update the contact information in my profile. In this way, my address, my phone number and other contact information will be up-to-date and correct, so that I can communicate with the bank in a smooth way when communicating and transactions.
- The user should have access to the account management panel after logging in.
- Contact information provided in the customer data on the profile page should be editable.
- When the user wishes to edit any communication information, they should be able to update the relevant field.
- When the user clicks on an editing confirmation button, such as "Update Profile," the changes should be reflected in the database.
- Upon successful update of the changes, a confirmation message must be displayed to the user.
- The user should receive an appropriate error message if they enter incorrect or incomplete information.
- The user logs out and logs back in. After this step, they should confirm that the updated contact information is correctly displayed on their profile page.
- This test requires successfully completing the story called "US601".
- The user must be logged into the system.
All {Optional}:
- "First Name" (Name)
- "Last Name" (Surname)
- "Address" (Address)
- "City" (City)
- "State" (State)
- "Zip Code" (Postal Code)
- "Phone #" (Phone number)
Low
Contact, Regression
Scenario 7 Case 1: Update contact information:
- On the home page, the user finds and clicks "Update Contact Info" or similar.
- The user displays the customer data on the "Update Profile" screen.
- The user enters new information in the relevant fields to update the contact information.
- The user clicks the "Update Profile" button to save user updates.
- The user receives a confirmation message confirming the successful update process.
- The user switches the session (logout) and re-entry (login).
- The user confirms that the updated contact information is accurately displayed after logging in.
Scenario 7 Case 2: Update contact information (Negative):
- On the home page, the user finds and clicks "Update Contact Info" or similar.
- The user displays the customer data on the "Update Profile" screen.
- The user deletes at least three optional fields from the contact information (leaving Null).
- The user confirms the warning messages given in areas left empty.
- The user tries to click the "Update Profile" button to save updates.
- The user confirms that the "Update Profile" button does not make any changes on the page.
As a customer, I would like to apply for a loan through the Parabank website. This way, I can get the financing I need and follow the status of my application.
- The user should be able to apply for a loan.
- The user should be able to see the result of the loan application immediately.
- If the user is approved, they must receive the message "Approved"; if the application is rejected, they must receive the message "Denied".
- If the application is approved, the user must be shown the new credit account number.
- The user must verify that there is no operation in the new account activity.
- If the application is rejected, the user should be able to see the reason for rejection.
This test requires the successful completion of the story called "US601". The user must be logged into the system.
- Loan Amount: (e.g., $2,000, $1,000,000)
- Down Payment: (e.g., $400, $10,000)
- The account to which the down payment will be withdrawn: {Account selection}
This story includes an important feature for users to manage their financial transactions. However, compared to other stories, it is currently a low priority.
Loan, Accounts, Regression
Scenario 8, Case 1: Request Credit
- On the Parabank home page, the user clicks the "Request Loan" link.
- The user enters the "$2000" and "Down Payment" field into the "Loan Amount" field.
- The user selects an account number from the Drop-Down menu in the "From Account #".
- The user clicks the "Apply Now" button.
- The user confirms the following information that appears under the title "Loan Request Processed":
- Loan Provider: Parabank, Status: Approved
- The user confirms the message "Congratulations, Your Loan Has Been Approved.".
- The user clicks on the link of the newly formed credit account number.
- The user confirms the following information that appears under the title "Account Details":
- Account Number: {New Credit Credit Account No}
- Account Type: Loan
- Balance: $2000.00
- Available: $2000.00
- The user confirms the message "No Transactions Found." under the title "Account Activity".
Scenario 8, Case 2: Request Credit (Negative)
- On the Parabank home page, the user clicks the "Request Loan" link.
- The user enters the "$1,000,000" and "Down Payment" field into the "Loan Amount" field.
- The user selects an account number from the Drop-Down menu in the "From Account #".
- The user clicks the "Apply Now" button.
- The user confirms the following information that appears under the title "Loan Request Processed":
- Loan Provider: Parabank, Status: Denied
- The user confirms the message "You do not have sufficient Funds for the Given Down Payment.".
-
Java Development Kit (JDK): Installed on your system for Java code writing and compilation.
-
IDE (Integrated Development Environment): Choose IntelliJ IDEA, Eclipse, or NetBeans for Java development.
-
Maven: Installed for dependency management and project build tasks.
-
Git: Installed for version control, essential for managing your project's source code on GitHub.
-
Selenium WebDriver: Familiarize yourself with its usage and basic automation techniques.
-
TestNG: Understand its annotations and how to write test cases using this framework.
-
Cucumber: Learn the basics of BDD and writing feature files and step definitions.
-
Page Object Model (POM): Understand and implement this pattern in your test automation framework.
-
Extent Report or Similar Reporting Tool: Familiarize yourself with integrating and generating test reports.
-
JIRA & XRAY or Similar Test Management Tools: If using, ensure access and understand test case creation, management, and defect reporting.
-
Logging with slf4j: Learn to configure and use for logging in your Java project.
The basic technologies and tools to be used in this project include:
-
Programming Language: Java
-
Test Automation Tools: Selenium WebDriver
-
Test Framework: TestNG
-
BDD Framework: Cucumber
-
Test Automation Pattern: Page Object Model (POM)
-
Dependency Management and Build: Maven
-
Reporting Tools: Extent Report or a similar reporting tool
-
Version Control System: Git and GitHub
-
Test Management Tools: JIRA & XRAY or similar tools
-
Logging Interface: slf4j (Simple Logging Facade for Java)
Follow these steps to get started with the project:
-
Ensure that you have all the necessary prerequisites installed on your system, including JDK, IDE, Maven, Git, and required browser drivers.
-
Clone the repository to your local machine:
-
Set up the necessary dependencies in the project.
-
Configure WebDriver for the desired browser (e.g., ChromeDriver, FirefoxDriver).
-
Update the test scripts in the project to reflect the specific test scenarios and requirements.
Contributions are welcome! If you find any issues or want to add more tests, feel free to open a pull request.
Contributions are welcome! If you find any issues or want to add more tests, feel free to open a pull request. Please follow these steps to contribute:
- Fork the repository.
- Create a new branch for your feature or bugfix.
- Make your changes and commit them.
- Push to your branch.
- Create a pull request.
When contributing to this project, please adhere to the following guidelines:
-
Create a Descriptive Pull Request Title: Ensure that your pull request title clearly describes the changes you're making.
-
Provide Detailed Descriptions: In your pull request description, provide a clear and detailed explanation of the changes you've made and why they are necessary.
-
One Pull Request per Feature: If you're adding multiple features or making several changes, please submit each as a separate pull request.
-
Follow Code Standards: Maintain code cleanliness and adhere to the coding standards used in the project.
-
Test Your Changes: Before submitting a pull request, test your changes thoroughly to ensure they work as expected and do not introduce any regressions.
-
Update Documentation: If your changes impact any documentation, make sure to update it accordingly.
-
Resolve Conflicts: If there are any conflicts with the base branch, resolve them before submitting your pull request.
-
Request Reviews: Assign reviewers to your pull request to ensure that your changes are properly reviewed before merging.
-
Be Responsive: Respond promptly to any feedback or comments on your pull request.
-
Ensure CI/CD Passes: Ensure that all continuous integration (CI) checks pass before merging your pull request.
This project is open-sourced software licensed under the MIT license.