Test Plan - sandhya698/GDP-Project-Team06 GitHub Wiki

Test Plan: TransefuseNow

Introduction: 

This test plan outlines the testing strategy for the Blood Donation System, focusing on donor and patient functionalities, administrative features, and additional optional features. The goal is to ensure the system's functionality, security, and user-friendliness.

Purpose of the Document: 

This document serves as a guide for the testing team to validate the Blood Donation System's key functionalities and features, ensuring a reliable and secure platform.

Summary of Goals: 

The primary goals of this test plan include:

Verifying user registration and login processes. Validating password recovery functionality. Testing profile management for donors and patients. Assessing blood donation request processes. Evaluating admin functionalities. Testing customer support/chat, dashboard, and blood inventory management. Ensuring database security and user-friendly interfaces.

Constraints: 

Limited resources may affect the depth and extent of testing, prioritizing critical features for thorough examination.

References: Functional Requirements Document (FRD) for TransfuseNow (functional requirements).

Functional Requirements:

The system MUST allow donors to register as users.

The system MUST allow to login for registered Donors if credentials are valid.

The system MUST allow users to recover their password if they have forgotten.

The system MUST allow donors to manage their profile.

The system MUST allow the donors to manage their blood donation requests.

The system MUST allow patients to register as users.

The system MUST allow to login for registered patient if credentials are valid.

The system MUST allow patients to recover their password if they have forgotten.

The system MUST allow the patient to request the blood with the blood type they provide.

The system MUST allow patients to manage their profile.

The system MUST allow users to manage their blood donation requests.

The system MUST authorize admins if credentials are valid.

The system MUST allow admin to administrate the user profiles.

The system MUST enable admin to administrate the donation relationship.

The system MUST provide admin dashboard functionality.

The system MUST allow admin to manage blood inventory.

The system MUST provide an assistance platform like live chat to contribute immediate assistance to the users.

The system MUST make FAQs to the users.

The system MUST maintain a database of registered users securely.

The system SHOULD allow users to request by blood type.

The system SHOULD offer a user-friendly interface for registering and updating user information.

The system MAY allow users to share their donation status on social media platforms.

The system MAY include a blood donation scheduler that recommends optimal donation intervals.

The system MAY implement a blood donation loyalty program for donors.

Features to be Tested:

Verify the encryption and secure storage of user credentials.

Donor Functionality:

Verify donor registration.

Test donor login with valid credentials.

Validate password recovery for donors.

Assess donor profile management.

Test blood donation request creation and management.

Patient Functionality:

Verify patient registration.

Test patient login with valid credentials.

Validate password recovery for patients.

Test blood request creation based on blood type.

Assess patient profile management.

Admin Functionality:

Verify admin login with valid credentials.

Assess admin user profile administration.

Test donation relationship administration.

Validate admin-side customer support/chat.

Test admin dashboard functionality.

Assess blood inventory management.

Features not to be Tested: 

Blood Donation Scheduler:

The scheduler functionality will not be tested in this phase.

Blood Donation Loyalty Program:

The loyalty program will not be tested in this phase.

Offline Mode (Excluded due to resource constraints)

Approach: 

Required Tools:

Testing framework (e.g., Selenium for UI testing, JUnit for unit testing).

Load testing tools (e.g., Apache JMeter).

Security testing tools (e.g., OWASP ZAP).

Methods:

User Interface (UI) Testing

Integration Testing

User Acceptance Testing (UAT)

Test Deliverables:

Donor Registration and Login:

How it will be tested:

Unit tests for donor login and registration components.

Test Cases:

General cases: Valid donor login credentials, successful donor registration.

Error cases: Incorrect password for login, invalid email format, insufficient details for registration.

Edge cases: Password recovery scenarios for donors.

Pass/Fail Criteria:

Unit tests: 100% passing rate.

System tests: All test cases pass.

Donor Profile Management:

How it will be tested:

Unit tests for updating donor profile information.

System tests for end-to-end profile management flow.

Test Cases:

General cases: Donor updates profile information successfully.

Error cases: Unable to save changes to the profile.

Edge cases: Testing profile updates with various data inputs.

Pass/Fail Criteria:

Unit tests: 100% passing rate.

System tests: All test cases pass.

Patient login and Registration:

How it will be tested:

Unit tests for patient login and registration components.

Test Cases:

General cases: Valid patient login credentials, successful patient registration.

Error cases: Incorrect password for login, invalid email format, insufficient details for registration.

Edge cases: Password recovery scenarios for patients.

Pass/Fail Criteria:

Unit tests: 100% passing rate.

System tests: All test cases pass.

Blood Donation Request:

How it will be tested:

Unit tests for blood donation request functionality.

System tests for end-to-end blood donation request flow.

Test Cases:

General cases: Patient successfully requests blood with the specified blood type.

Error cases: Unable to submit a blood donation request.

Edge cases: Testing blood donation requests with various blood types.

Pass/Fail Criteria:

Unit tests: 100% passing rate.

System tests: All test cases pass.

Patient Profile Management:

How it will be tested:

Unit tests for updating patient profile information.

System tests for end-to-end profile management flow.

Test Cases:

General cases: Patient updates profile information successfully.

Error cases: Unable to save changes to the profile.

Edge cases: Testing profile updates with various data inputs.

Pass/Fail Criteria:

Unit tests: 100% passing rate.

System tests: All test cases pass.

Admin login and Functionality:

How it will be tested:

Unit tests for admin login functionality.

System tests for admin authorization and functionality.

Test Cases:

General cases: Admin logs in successfully and can access admin dashboard.

Error cases: Admin login fails with incorrect credentials.

Edge cases: Testing admin authorization with different permission levels.

Pass/Fail Criteria:

Unit tests: 100% passing rate.

System tests: All test cases pass.

Assistance Platform and FAQs:

How it will be tested:

Unit tests for live chat functionality and FAQ retrieval.

System tests for end-to-end assistance platform and FAQs.

Test Cases:

General cases: Users can access live chat for immediate assistance, users can access FAQs.

Error cases: Live chat not available, FAQs not accessible.

Edge cases: Testing live chat and FAQ functionality under heavy load.

Pass/Fail Criteria:

Unit tests: 100% passing rate.

System tests: All test cases pass.

Security and Database Management:

How it will be tested:

Security audits for user data storage and access.

Database integrity tests.

Test Cases:

General cases: User data is securely stored and accessed with proper authentication.

Error cases: Unauthorized access attempts are blocked, data encryption is implemented correctly.

Edge cases: Testing database scalability and failover mechanisms.

Pass/Fail Criteria:

Security audits: No critical vulnerabilities found.

Database tests: Data integrity maintained under all