Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
74 changes: 74 additions & 0 deletions functional_tests/ZBIO-5138.feature
Original file line number Diff line number Diff line change
@@ -0,0 +1,74 @@
Feature: Credit Card Notification System Testing
Background:
Given the base URL 'http://localhost:8080/api'

Scenario: Credit Card Due Reminder
Given the saved credit card due date is '01/12/2022'
When I send a GET request to '/dueReminder'
Then the response status code should be 200
And the response should contain a scheduled reminder for '30/11/2022'

Scenario: Overdue Balance Alert
Given the system shows the card payment as not done and today's date is '02/12/2022'
When I send a GET request to '/overdueAlert'
Then the response status code should be 200
And the response should contain an alert for the date '02/12/2022'

Scenario: Collection Notification
Given the system identifies an account with more than 60 days past due
When I send a GET request to '/collectionNotification'
Then the response status code should be 200
And the response should contain overdue balance, late fine and necessary actions details

Scenario: Payment Plan Proposal
Given the cardholder contacts the bank unable to pay full overdue balance
When I send a POST request to '/paymentPlan' with the payment proposal
Then the response status code should be 201
And the response should contain a section 'payment plan proposal'

Scenario: Collection Agency Involvement
Given the system detects cardholder's three failed attempts to respond to notifications and reminders of overdue balance
When I send a GET request to '/agencyInvolvement'
Then the response status code should be 200
And the response should contain 'Involve a collection agency'

Scenario: Legal Action Initiation
Given the system detects chronic non-payment behavior from the cardholder
When I send a GET request to '/legalActionInitiation'
Then the response status code should be 200
And the response should contain 'Initiate stringent legal actions'

Scenario: Performance Testing
Given the application is under test
When I bombard the API endpoint with multiple simultaneous requests
Then the application should respond within acceptable time limits

Scenario: Usability Testing
Given the application interface is rendered
When a user navigates the application
Then the application should be navigable and intuitive

Scenario: Security Testing
Given the sensitive user data
When the data is transmitted over the network
Then the data should be encrypted and secure

Scenario: Compatibility Testing
Given the application
When accessed from different devices
Then the application should be compatible and responsive

Scenario: Reliability Testing
Given the running application
When operating for a certain period of time
Then the application should demonstrate reliability and stability

Scenario: Recovery Testing
Given the application
When a crash or hardware failure occurs
Then the application should recover and retain data integrity

Scenario: API Testing
Given the APIs provided by the application
When I send requests to the APIs
Then the API responses should be fast, reliable, secure, and accurate
49 changes: 49 additions & 0 deletions functional_tests/ZBIO-5138.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,49 @@
**Functional Test Cases**

1. **Credit Card Due Reminder**
- Input: The system has saved credit card due date as 01/12/2022
- Expected Output: Reminder should be sent to cardholder on 30/11/2022 (a day before due date)

2. **Overdue Balance Alert**
- Input: The system shows the card payment not done and today's date is 02/12/2022 (1 day past due)
- Expected Output: System should send an alert stating overdue balance on 02/12/2022

3. **Collection Notification**
- Input: System identifies an account with more than 60 days past due
- Expected Output: System should send a collection notification to the respective cardholder reveals overdue balance, late fine and necessary actions

4. **Payment Plan Proposal**
- Input: Cardholder gets in touch with the bank unable to pay full overdue balance
- Expected Output: Propose a payment plan immediately with manageable terms such as feasible monthly installments, lowered interest, and no late fine

5. **Collection Agency Involvement**
- Input: System detects cardholder's three failed attempts to respond to notifications and reminders of overdue balance
- Expected Output: System triggers process to involve a collection agency

6. **Legal Action Initiation**
- Input: System detects chronic non-payment behavior from the cardholder
- Expected Output: Initiate stringent legal actions to recover the overdue balance


**Non-Functional Test Cases**

1. **Performance Testing**
- Ensure the application's performance under load, the application should be able to handle large number of users at a time.

2. **Usability Testing**
- Ensure the application is user-friendly, intuitive and easy to navigate. The notification messages should be easy to understand.

3. **Security Testing**
- Validate the security features of the application, ensure it complies with all major security standards. Ensure secure transmission of sensitive user data during interaction.

4. **Compatibility Testing**
- The application should be compatible and responsive to different devices – desktops, tablets and mobiles.

5. **Reliability Testing**
- Ensure the application can perform under provided conditions for a certain period of time.

6. **Recovery Testing**
- The application should be able to recover from potential crashes or hardware failures and retain data integrity.

7. **API Testing**
- API responses should be fast, reliable and secure. Ensure all provided API links are working as expected.
125 changes: 125 additions & 0 deletions functional_tests/ZBIO-5138.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,125 @@
openapi: 3.0.3
info:
title: Credit Card Notification System
version: 1.0.0
servers:
- url: http://localhost:8080/api
paths:
/dueReminder:
get:
summary: Get credit card due reminder
responses:
'200':
description: Success, scheduled reminder is returned.
content:
text/plain:
schema:
type: string
example: '30/11/2022'
/overdueAlert:
get:
summary: Check for any overdue alert
responses:
'200':
description: Success, overdue alert is returned.
content:
text/plain:
schema:
type: string
example: '02/12/2022'
/collectionNotification:
get:
summary: Get collection notifications
responses:
'200':
description: Success, details of overdue balance and necessary actions are returned
content:
application/json:
schema:
type: object
properties:
overdueBalance:
type: number
lateFine:
type: number
necessaryActions:
type: string
/paymentPlan:
post:
summary: Send a payment plan proposal
requestBody:
content:
application/json:
schema:
type: object
properties:
proposal:
type: string
responses:
'201':
description: Success, payment plan proposal received.
content:
text/plain:
schema:
type: string
example: 'payment plan proposal'
/agencyInvolvement:
get:
summary: Get status of collection agency involvement
responses:
'200':
description: Success, status of collection agency involvement is returned.
content:
text/plain:
schema:
type: string
example: 'Involve a collection agency'
/legalActionInitiation:
get:
summary: Get status of legal actions
responses:
'200':
description: Success, status of legal actions is returned.
content:
text/plain:
schema:
type: string
example: 'Initiate stringent legal actions'
components:
schemas:
dueReminder:
type: object
properties:
dueDate:
type: string
format: date
overdueAlert:
type: object
properties:
overdueDate:
type: string
format: date
collectionNotification:
type: object
properties:
overdueBalance:
type: integer
lateFine:
type: integer
necessaryActions:
type: string
paymentPlan:
type: object
properties:
proposal:
type: string
agencyInvolvement:
type: object
properties:
status:
type: string
legalActionInitiation:
type: object
properties:
status:
type: string