mikront / tacc-green1 Goto Github PK
View Code? Open in Web Editor NEWSoftServe Test Automation Crash Course 2023. Team green1 repository
SoftServe Test Automation Crash Course 2023. Team green1 repository
Testing procedure:
As a customer, I want to receive proactive notifications for significant transactions, account activities, or security-related events through my preferred channels.
Acceptance Criteria:
Testing procedure:
This test case verifies that the news page allows filtering news by tags and that clicking on a tag redirects to the news page with the appropriate tag filter
The system is online and accessible. The news page has at least two posts with different tags
None
Step | Description | Expected Result |
---|---|---|
1 | Navigate to the news page of the system | The news page should load successfully and display the post abstracts in frames |
2 | Click on any tag on the news page | The system should apply filters so that only posts with that tag are displayed on the news page, with their post abstracts and Read more links |
3 | Observe the URL of the news page | The URL of the news page should include the tag as a query parameter (e.g., https://parabank.parasoft.com/news?tag=finance) |
4 | Click on another tag on the news page | The system should apply filters so that only posts with both tags are displayed on the news page, with their post abstracts and Read more links |
5 | Observe the URL of the news page | The URL of the news page should include both tags as query parameters (e.g., https://parabank.parasoft.com/news?tag=finance&tag=technology) |
The news page allows filtering news by tags and clicking on a tag redirects to the news page with the appropriate tag filter
This is how the tester determines if the test case is a “pass” or “fail”
Tasks
The system allows users to have multiple roles assigned by default. However, some roles are incompatible with others (for example, no bot can have the admin permission level)
The table below describes roles and permission levels representing them (level numbers in-between are reserved for the future, just in case)
Role | Permission Level |
---|---|
Admin | 7 |
Client | 4 |
Bot | 2 |
Unauthorized | 0 |
Decision table (compressed) the system should follow to prevent the assignation of incompatible roles
Causes | R1/R2 | R3 | R4 | R5 | R6 | R7 | R8 |
---|---|---|---|---|---|---|---|
Admin role | y | y | y | n | n | n | n |
Client role | y | n | n | y | y | n | n |
Bot role | y/n | y | n | y | n | y | n |
Effects | |||||||
Permission level | 0 | 0 | 7 | 0 | 4 | 2 | 0 |
Notices | N1 | N1 | N2 |
Important
Explanation of notices
Whenever any of these inconsistencies happen, the system resets the permission level to 0, which means Unauthorized
As a customer, I want to register a new account to access the functionality of a bank
Acceptance criteria:
As a customer, I want to use a chatbot to assist me in managing my account and getting information about various banking services.
Acceptance Criteria:
As a customer, I want to login to my account to access my funds and operations with them
Acceptance criteria:
Client info
Product Version: 0.1.0
Preconditions
You're unauthorized on the website
Steps to Reproduce
Postconditions
None
✔️ Expected
The website requests authorization
❌ Actual
You gain access to the admin page being unauthorized
Here's a template of a decision table to copy/paste and fill
| Causes | R1 | R2 | R3 | R4 |
| ------------- |:----:|:----:|:----:|:----:|
| ... | y | y | n | n |
| ... | y | n | y | n |
| **Effects** | | | | |
| ... | | | | |
| Notices | N1 | N2 | | |
> [!important]
>
> Explanation of notices
>
> - N1: ...
> - N2: ...
And here's what it looks like
Causes | R1 | R2 | R3 | R4 |
---|---|---|---|---|
Condition 1 | y | y | n | n |
Condition 2 | y | n | y | n |
Effects | ||||
Outcome 1 | 100 | 50 | 50 | 0 |
Notices | N1 | N2 |
Important
Explanation of notices
As a customer, I want to be able to pay for my phone number bills through the bank's website:
Acceptance criteria:
As an admin, I want to have a toolkit to manage the website and respond to potential issues
Acceptance criteria:
This test ensures the validity and security of the backend checks for user input-related API requests to prevent wrong, inadequate, or malicious data from reaching the DB
For making requests with forms in the web app
'; drop table users
<script>
tagsStep | Description | Expected Result |
---|---|---|
1 | Fill in a tested input field | |
2 | Fill other fields with correct data | A some type of a submit button should get active |
3 | Press the submit button | An appropriate error message should popup and the input field should turn red |
4 | Update the input field | The input field should lose the highlight |
5 | Press the submit button | An appropriate error message should popup and the input field should turn red |
The form must not be submitted in any case
As a frontend developer, I want to create new features by using RESTful and SOAP API:
Acceptance criteria:
Web application should send a GET request to the server to fetch transaction data for a specific user. This criteria includes the next functions: get an account of the specific user, get an ID of the user after successful authentification, get information of a user, transaction ID, date, amount, description, and so on.
Web application should allow the user to manipulate his data and make POST requests to the server and get the correct response from one. The response from the server should be in XML format;
Web Application should give the user functionality to modify user data locally in the frontend application. Upon making changes, I can send a POST request to the server to update the user's information.
The POST and PATCH requests should include the modified data in XML format.
After the server processes the request, I expect to receive a confirmation XML response indicating the success of the operation.
If there are errors in the request (such as invalid data or missing parameters), the server should respond with an appropriate XML error message indicating the issue. The error message should provide clear information about the error, helping me understand what went wrong.
The API endpoints should be secured, requiring proper authentication or authorization to access and modify user data. Any sensitive data sent via XML in the request should be encrypted to ensure security during transmission.
The API should be well-documented, providing clear guidelines on the XML structure for requests and responses.
Examples of valid XML requests and expected XML responses for different API endpoints should be provided in the documentation.
The documentation should also include information on authentication methods and error handling procedures specific to XML requests and responses.
The registration form mandates accurate input in various fields: first name, last name, address, city, state, zip code, phone number, SSN, username, password, and confirmation. Pre-testing, the user must ensure an unregistered phone number, a unique email, stable internet, a compatible device, and awareness of the registration process. Inputs must adhere to specific length, character, and validation rules. After filling out the form, clicking submit should trigger server messages: success for accurate data and error for issues. Successful registration grants access to the user's bank page.
Test Case | Field | Input Data | Expected Result |
---|---|---|---|
1 | First Name | "Lisa" | ✅ |
2 | First Name | "LoremIpsumDolorSitAmetConsecteturAdipiscingElitVestibulum" | Error message (exceeds 100 characters). |
3 | Last Name | "Simpson" | ✅ |
4 | Last Name | "Simpson@" | Error message (special characters not allowed). |
5 | Address | "123 Main St" | ✅ |
6 | Address | "Apt 45, 678 Elm St" | ✅ |
7 | Address | "Apt 45, 678 Elm St, Building C" | Error message (exceeds 1000 characters). |
8 | City | "Springfield" | ✅ |
9 | City | "Spring-field" | Error message (hyphens not allowed). |
10 | State | "CA" | ✅ |
11 | State | "California" | Error message (invalid state abbreviation). |
12 | Zip Code | "12345" | ✅ |
13 | Zip Code | "1234567890" | Error message (exceeds 9 digits). |
14 | Phone Number | "1234567890" | ✅ |
15 | Phone Number | "123-456-7890" | Error message (hyphens not allowed). |
16 | Social Security Number | "123456789" | ✅ |
17 | Social Security Number | "123-45-6789" | Error message (hyphens not allowed). |
18 | Username | "user123" | ✅ |
19 | Username | "user.123" | ✅ |
20 | Username | "user@123" | Error message (special characters not allowed). |
21 | Password | "Password123" | Error message (requires special character). |
22 | Password | "P@ssw0rd123" | ✅ |
23 | Confirm Password | "P@ssw0rd123" | ✅ |
24 | Confirm Password | "DifferentPassword" | Error message (passwords don't match). |
Field | Required | Format | Special Characters | Validation |
---|---|---|---|---|
First Name | ➕ | 100 chars | Not allowed | Letters, spaces, hyphens for compound names |
Last Name | ➕ | 100 chars | Not allowed | Letters, spaces, hyphens for compound names |
Address | ➕ | 1000 chars | Allowed for street names, apartment numbers, etc. | Letters, numbers, spaces, and common punctuation marks |
City | ➕ | 100 chars | Not allowed | Letters, spaces, hyphens for compound names |
State | ➕ | 2 chars | Not allowed | Valid state abbreviation (example: CA for California) |
Zip Code | ➕ | 5-9 digits | Not allowed | Zip code format |
Phone Number | ➕ | 10 digits | Not allowed | Phone number format |
Social Security Number | ➕ | 9 digits | Not allowed | SSN format |
Username | ➕ | 50 chars | May allow letters, numbers, underscores, or dots | Unique in the DB |
Password | ➕ | 12+ chars | At least 1 special character (example: !@#$%^&*) | Contains uppercase and lowercase letters, numbers, and special characters |
Confirm Password | ➕ | -//- | -//- | Matches the password above |
Step | Description | Expected Result |
---|---|---|
1 | Input the data into the registration form | Tester should see the filled register form by valid values |
2 | Click the Submit button | Tester should see a message from the server about success or failure |
If registration is successful, the tester will be authenticated and able to access their personal bank page; otherwise, he/she/they will receive a registration error.
As a customer, I would like to see all the news of the bank:
Testing procedute:
As a customer, I want to have the ability to manipulate my card accounts
Acceptance criteria:
Testing procedure:
Verify if a user will be able to login with a valid username and valid password. - Positive
Verify if a user cannot login with a valid username and an invalid password. - Negative
Verify the login page for both, when the field is blank and "Log in" button is clicked. | Negative
Verify the ‘Forgot Password’ functionality. | Positive
Verify the messages for invalid login. | Positive
Verify the ‘Remember Me’ functionality. | Positive
Verify if the data in password field is either visible as asterisk or bullet signs. | Positive
Verify if a user is able to login with a new password only after he/she has changed the password. | Positive
Verify if the login page allows to log in simultaneously with different credentials in a different browser. | Positive
Verify if the ‘Enter’ key of the keyboard is working correctly on the login page. | Positive
Other Test Cases
Verify the time taken to log in with a valid username and password. | Performance & Positive Testing
Verify if the font, text color, and color coding of the Login page is as per the standard. | UI Testing & Positive Testing
Verify if there is a ‘Cancel’ button available to erase the entered text. | Usability Testing
Verify the login page and all its controls in different browsers
Precondition: registered user with the Admin role
Tasks
October 24, 2023, 14:18
Minor
Medium
OS: Microsoft Windows 10, 64-bit
Browser: Google Chrome (Version 118.0.5993.89)
Reproducible: Always
Build Found: Production
Step | Description |
---|---|
1. | Open the website of the main project. |
2. | Log in or register. |
3. | Click on the "Transfer Funds" option in the service account menu. |
Step | Description |
---|---|
1. | Navigate to the "To Account" selection item. |
2. | User should choose one of their accounts from the list. The selection is restricted to the user's own accounts. |
Get message about succeful operation
These actions should trigger an error
Tasks
As a customer, I want to have access to information about bank
Acceptance criteria:
Page should contain accurate and up-to-date information about the bank, including details about its history, missions, vision
The page should match the overall appearance of the bank’s website
Page should display any pictures/videos in good quality and suitable format.
Page should be accessible for every customer (authorized and unauthorized)
Tasks
Tasks
Tasks
Testing procedure:
The tester will conduct a series of tests on the Admin Page of the system. The test environment includes an authenticated session with admin rights, ensuring the tester has appropriate access privileges to evaluate the admin functionalities
None
Step | Description | Expected Result |
---|---|---|
1 | Access the Admin Page using appropriate credentials | Successfully log in and be redirected to the Dashboard |
2 | Navigate to the User Accounts section | Access the user management interface |
3 | Add a new user with valid data | User information is saved and a success message appears |
4 | Edit existing user details | Changes are successfully applied and reflected in the user profile |
5 | Delete a user account | The account is removed from the DB and a success message appears |
6 | Access system settings on the Dashboard | Access system configs, including preferences and security options |
7 | Perform a system maintenance task | Task is executed successfully, and system status is updated |
8 | View system logs or reports | Logs and reports are displayed without errors, providing relevant information |
9 | Test error handling | Intentionally input invalid data and observe system response |
10 | Logout from the Admin Page | Successfully log out and get redirected to the Login page |
The tester should experience the following outcomes:
Draft of user stories, feel free to edit/add your own ideas)
User stories for ATM example
October 24, 2023, 14:18
Major
High
OS: Microsoft Windows 10, 64-bit
Browser: Google Chrome (Version 118.0.5993.89)
Reproducible: Always
Build Found: Production
Step | Description |
---|---|
1. | Open the website of the main project. |
2. | Log in or register. |
3. | Click on the "Transfer Funds" option in the service account menu. |
Users can choose from selection item "To account" only theirs accounts.
Users should be able to input or select accounts belonging to other users.
This test verifies a user can turn any successful payment into a rule
A logged-in user
Requirements for input data to be trespassed
Field | Required | Format | Validation |
---|---|---|---|
Title | ➖ | 32 chars | If empty, will be generated automatically |
Recurrence | ➕ | Special | Has allowed set of values |
Amount | ➖ | Positive number | Must be at least x2 higher than minimal money transfer commission. If empty, will be the same to the amount just transferred |
Example input data to be entered into the rulemaking dialog to test user input adequacy
Set | Title | Recurrence | Amount | Result |
---|---|---|---|---|
1 | Every month | $100 | ❌ | |
2 | Rent | Every second | $100 | ❌ |
3 | Rent | Every month | -$1 | ❌ |
4 | Rent | Every month | $0 | ❌ |
5 | Rent | Every month | $1 | ❌ |
6 | Rent | Every month | $2 | ❌ |
7 | Rent | Every month | $3 | ✔ |
8 | Rent | Every month | $1,000,000,000 | ❌ |
9 | ~!@#$%^&*()_+{}:"<>? | Every 2 weeks | $100 | ❌ |
10 | Rent | On the 2nd Sunday every month | $100 | ✔ |
11 | Multiple words with s p a c e s | Every year | $1200 | ✔ |
Step | Description | Expected Result |
---|---|---|
1 | Go to the Services page | |
2 | Perform a successful transaction | The Make a rule button appears |
3 | Click on the Make a rule button | The rulemaking dialog opens |
4 | Fill in the form with a set of test data | |
5 | Click on the Save button | The dialog dismisses or an error pop-up appears |
In case no error is expected, the dialog gets dismissed and the rule is created successfully. Otherwise, the dialog stays and the user is notified about an issue through a pop-up
As a customer, I want to have some type of tool to automate payments for utility services, subscriptions, and other types of transactions with fixed amounts of funds
Acceptance criteria:
Робим все в останній момент
As a customer, I want to be able to pay for my service subscriptions from the bank app
Acceptance criteria:
This test case verifies that the news page allows filtering news by tags and that clicking on a tag redirects to the news page with the appropriate tag filter.
The system is online and accessible. The news page has at least two posts with different tags.
Medium
None
Step | Description | Expected Result |
---|---|---|
1 | Navigate to the news page of the system | The news page should load successfully and display the post abstracts in frames |
2 | Click on any tag on the news page | The system should apply filters so that only posts with that tag are displayed on the news page, with their post abstracts and Read more links |
3 | Observe the URL of the news page | The URL of the news page should include the tag as a query parameter (e.g., https://www.example.com/news?tag=finance) |
4 | Click on another tag on the news page | The system should apply filters so that only posts with both tags are displayed on the news page, with their post abstracts and Read more links |
5 | Observe the URL of the news page | The URL of the news page should include both tags as query parameters (e.g., https://www.example.com/news?tag=finance&tag=technology) |
The news page allows filtering news by tags and clicking on a tag redirects to the news page with the appropriate tag filter.
As a customer, I would like to see all the news of the bank
▪ Test Case ID
– Identification of the test case
– It should be unique across Test Case Specification
– Can consist of numbers or/and letters
– Examples: 1, 2, 3 etc; UR.001, UR.002, etc
▪ Test Case Name/Summary
– Short name of test case which briefly indicates what will be verified
▪ Description / Objective
– Describes the functionality/actions that test case validates/does
– It should be detailed enough to understand purpose of test case
▪ Priority
– Reflects the relative importance of the test case taking into consideration different aspects
– Can be presented by words or numbers
– Examples:
High, Medium, Low, etc;
Major, Minor, Trivial, etc;
1, 2, 3, 4 (where 1-the most important, and 4-the least important), etc.
▪ Test Case Type
– Reflects the type of test case depending on what kind of testing is covered by particular test case
– Examples: GUI, Functional, System, Performance, etc.
▪ Pre-condition
– Defines conditions that should be met before test case can be executed
– Usually precondition field lists data/actions which should exist/be done in system and links to appropriate test cases/test functions which can setup required pre-conditions
– Preconditions specified in Description are used for all Test Case.
– In case, if preconditions should contain the different data and be repeated iteratively it could be added to the first step.
▪ Test Steps
– Step by step instructions on how to carry out the test case
– There should not be missed or redundant steps!
▪ Expected Result
– Shows how the system must react based on the test steps
– Expected results should be mentioned only for test case objective!
– “Verify”, “Correctly”, “Successfully” words are forbidden for expected results! Exact behavior of the system, which is going to be verified, should be mentioned
– Example:
Incorrect: User “TestUser” is created -> It is not understandable how to verify it
Correct: User “TestUser” appears in the list of users
▪ Test Inputs / Test Data
– Lists data which is used while test case execution
– Can be presented in this field directly, in parameter or in the attached files
– Data should be accurate!
▪ Attachment
– May contain files which can be used while test case execution
▪ Execution Result / Status
– Shows the result of test case execution to indicate whether behavior of the system meets expected results of test case or not
– Examples of Test Case Status:
Passed – expected results of test case and behavior of the system match
Failed – expected results of test case and behavior of the system do not match
Blocked – test case was unable to be executed due to some reasons (e.g. blocker issue, etc.)
Not Applicable – test case was untested since it wasn’t planned to be executed this time etc.
▪ Actual Result
– Shows the actual output of the system. This field is used when actual behavior of the system doesn’t meet expected results of test case
As a customer, I would like to have the option to recover my password using my phone number or SSN.
Acceptance criteria:
New password page should have two fields:
New password should have parameters: at least 7 characters, 1 number, 1 uppercase letter, 1 lowercase letter, one special character.
New password cannot be same as previously used password
New password should be saved by clicking “Reset password” button.
A message for restoring should be sent to my phone number.
On the next page I should enter the recovery code.
After successful validation of all entered password fields and on clicking Submit, show message indicating successful password reset and route user to Login screen
Verify different aspects of the UI to correspond with the requirements specification
Tasks
Tasks
Tasks
Tasks
Testing procedure:
As a customer, I want to be able to easily transfer my funds
Acceptance criteria:
Authenticated user should be allowed to transfer money
The website must provide an input field to specify the amount of money to be transferred
User should be able to optionally describe the purpose of the transfer in a specific input field
After continuing with the entered details and before confirming the money transfer itself, the website should display all the info possible about the receiver’s account (full name/organization name, card number/IBAN/EDRPOU (to recheck)) and show the amount to be credited and transfer fees (commissions for both payer and receiver)
If available for a specific account at a supported range of banks (including within the bank), the user should have an option whether to pay the transfer fee themselves or to leave the fee for the receiver to pay
The website should ask a user to confirm payment twice to make them recheck payment details and prevent accidental money transfers
The website should ask a user once more with a more secure way implemented by the bank (sender’s card PIN, SMS/email code, call confirmation, etc.) to confirm transfers of large amounts of funds
October 19, 2023, 15:01
Critical
High
OS: Microsoft Windows 10, 64-bit
Browser: Google Chrome (Version 118.0.5993.89)
Reproducible: Always
Build Found: Production
Step | Description |
---|---|
1. | Open the website of the main project. |
2. | Click on the "Register" button. |
Step | Description |
---|---|
1. | Enter invalid data in every input field (e.g., enter "2" in each field). |
2. | Click on the "Register" button. |
User is successfully logged in.
Trigger an error.
Date Time
DD-MM-YYYY HH:MM
Severity
Blocker/Critical/Major/Minor/Trivial
Priority
High / Medium / Low
Environment:
OS: [e.g. iOS]
Browser [e.g. chrome, safari]
Reproducible: always, rarely, sometimes etc.
Build found: (e.g. tag)
Pre-conditions
A clear and concise description of actions to be done before the start of the bug reproducing (to make bug reproducing possible). E.g.: "Create an item in the database using SQL query: INSERT INTO table1 (column1, column2) VALUES (value1, value2);"
Steps to Reproduce
Steps to reproduce the behavior:
Actual result
A clear and concise description of what do happen.
Expected result
A clear and concise description of what you expected to happen.
Screenshots
If applicable, add screenshots to help explain your problem.
Postconditions
A clear and concise description of actions to be done after bug reproducing. E.g.: "Delete created item from database using SQL query: DELETE FROM table1 WHERE id=<item1_id>;"
User story and test case links E.g.: "User story #100 Test case"
Labels to be added "Bug", Priority ("pri: "), Severity ("severity:"), Type ("UI, "Functional"), "API" (for back-end bugs).
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.