Test Plan Document - CankayaUniversity/ceng-407-408-2024-2025-Job-Application-and-Matching-Platform GitHub Wiki
Table of Contents
- 1. INTRODUCTION
- 2. FEATURES TO BE TESTED
- 3. ITEM PASS/FAIL CRITERIA
- 4. REFERENCES
- 5. TEST DESIGN SPECIFICATIONS
- 6. DETAILED TEST CASES
1. INTRODUCTION
Version Control
Version No | Description of Changes | Date |
---|---|---|
1.0 | First version of the test plan document | 26.03.2025 |
Overview
This test plan includes the planning of functional and performance tests for all usage scenarios related to the user roles (candidate, employer, and admin) in the developed "AI-Powered Job Application and Matching Platform" system. The goal is to verify that the system operates correctly, securely, and meets user expectations.
Scope
This test plan covers the following modules:
- User registration & login (JWT + email verification)
- Profile creation & update
- Job posting & filtering
- AI-powered matching system
- Admin dashboard (managing reported content)
- Posting, commenting, and reporting in the forum
- Email services (verification and password reset)
- Testing the integration between Frontend (React), Backend (Spring Boot), and database (MariaDB)
Factors affecting user experience, such as mobile compatibility, responsiveness, and email verification, will also be tested as part of this plan.
Terminology
Term | Description |
---|---|
GUI | Graphical User Interface |
JWT | Authorization system with JSON Web Token |
AI | Candidate and job matching with Artificial Intelligence |
OTP | One Time Password |
DB | Database (MariaDB) |
SRS | System Requirements Specification |
2. FEATURES TO BE TESTED
This section outlines the main system modules to be tested and the test scope of each module. Detailed test scenarios for each feature will be included in sections 6.5 and 6.6.
1. Authentication Module
This module includes:
- Registration with email and password (sending email verification code)
- Login with JWT token generation and validation
- “Forgot Password” – OTP-based password reset
- Rejection of login attempts by inactive users
To Be Tested:
- Valid/incomplete form inputs
- Code verification process and timeout
- Active/inactive account controls
2. Profile Management
This module includes:
- Processes for candidates to create and update profiles
- Sub-forms for education, projects, social links, languages, university, etc.
- Adding, deleting, and editing operations
To Be Tested:
- Multi-step form flow (Next/Back)
- Empty or invalid entries
- Accuracy and success messages in update processes
3. Job Advertisement Module
This module includes:
- Creating, editing, and deleting job advertisements
- Fields for job description, conditions, qualifications, salary, etc.
- Employer panel interface
To Be Tested:
- Form validation
- Checks for active/inactive job listings
- DB record checks
4. AI-Powered Matching System
This module includes:
- Job recommendations for candidates
- Candidate recommendations for employers
- Generating ranked lists through ElasticSearch and Python models
To Be Tested:
- Correct AI-based matches based on profile and database
- Filtering & sorting functionalities
- Response time of API endpoints
5. Forum System
This module includes:
- Posting in the forum by candidates and employers
- Commenting, liking, and replying
- Post/comment reporting system
To Be Tested:
- CRUD operations (create, delete, update, view)
- Notification sending and reflecting to admin
- Unauthorized access controls
6. Admin Panel
This module includes:
- Listing reported content
- Deleting posts, banning users
- Role-based access control
To Be Tested:
- Rejection of panel access without admin role login
- Feedback messages after operations
- Removal of deleted content from the forum
7. Messaging & Appointment
This module includes:
- Real-time messaging between users
- Proposing and confirming appointment dates
To Be Tested:
- WebSocket connection and message delay
- Appointment time conflicts
- Email notifications
8. Email Services
This module includes:
- Sending verification codes
- Password reset emails
- Appointment and notification emails
To Be Tested:
- Successful email sending
- Code expiration timeout
- Error handling for invalid codes
3. ITEM PASS/FAIL CRITERIA
This section defines the criteria for considering tests as passed or failed. During the quality control process of the project, exit conditions are defined by considering the test success rate, error levels, and the status of priority features.
Pass Criteria
- All test cases must have been executed.
- All high and medium priority test cases must have been successfully completed.
- Critical functions (such as login/registration, profile creation, job matching, email verification, etc.) must work with 100% success.
- No system errors, security vulnerabilities, or bugs affecting data integrity should be present.
- The response time in real-time services (e.g., messaging) should be less than 2 seconds.
- The AI recommendation system should be operational and provide meaningful matches.
Fail Criteria
- If 100% of the tests have not been executed.
- If at least one high-priority test fails.
- If critical features (such as registration/login, matching, password reset) do not work as expected.
- If there are deficiencies in the email verification or password reset mechanism, such as timeouts or incorrect code handling.
- If user role validation fails (e.g., if a non-admin user can access the admin panel).
- If AI matching results are inconsistent or the algorithms do not work correctly with valid data.
Exit Criteria
Criteria | Requirements |
---|---|
100% test cases must be run | Required |
At least 95% of high and medium priority test cases must pass | Required |
No critical defects should remain in the system | Required |
The software development process must be completed within the expected time and budget | Required |
4. REFERENCES
This test plan has been prepared based on the following documents and resources:
-
Software Requirements Specification (SRS)
- Document: Job Application and Matching Platform - Software Requirements Specification
- Description: It covers all functional and non-functional requirements of the system. Test scenarios were created based on the use cases, user scenarios, and system requirements in this document.
-
Software Design Description (SDD)
- Document: Job Application and Matching Platform - Software Design Description
- Description: The system architecture, layers (API, Service, Repository, Entity), data models, and user flows were tested according to this document.
-
Team Project Report
- Document: TeamReport.pdf
- Description: It includes a summary of the project’s purpose, overall scope, user profiles, and expected system behaviors.
-
Spring Boot & React Application Code
- Description: Tests for the backend and frontend code and REST API endpoints were designed directly based on these modules.
-
MariaDB Database Schema and JPA Entity Structures
- Description: The database integrity, relationship structures, and CRUD operations were tested with reference to this structure.
-
Email Verification & OTP Workflow Diagram
- Description: Tests related to user activation and password reset steps were verified based on this logical flow.
5. TEST DESIGN SPECIFICATIONS
1. Authentication (User Verification Module)
Sub-Features:
- Register
- Login
- Email verification with code
- Forgot/reset password
Test Scenarios:
- Successful registration with all required fields completed
- Invalid/incomplete entries based on data types
- Retrying registration with the same email
- System behavior when the verification code expires
- Verification with correct/incorrect code
- Login attempt with an inactive account
2. Profile Management
Sub-Features:
- Profile creation (multi-step form)
- Updating information
- Validation of empty fields or invalid entries
Test Scenarios:
- Correct transitions between forms (Next/Back)
- Successful processing of data on the backend
- Addition of all sections such as education, projects, languages, and social links
- Correct display of profile information retrieved from the server
3. Job Advertisement Module
Sub-Features:
- Creating job advertisements
- Updating/deleting advertisements
- Publishing status (active/inactive)
- Filtering job advertisements (frontend & backend)
Test Scenarios:
- Creating advertisements by filling in all required fields
- Attempt to create an advertisement with missing fields (should fail)
- Access control to unpublished advertisements
- Correct operation of sorting and filtering combinations (location, sector, position, etc.)
4. AI Matching System
Sub-Features:
- Job recommendations for candidates
- Candidate recommendations for employers
- Semantic search supported by ElasticSearch
Test Scenarios:
- Does the system return a meaningful job list based on the candidate profile?
- Are the correct candidates listed according to job qualifications?
- Do search filters and ElasticSearch queries work without delay?
- Are AI matches consistent with backend logs?
5. Forum System
Sub-Features:
- Creating/updating/deleting posts
- Commenting/replying
- Reporting content
- Liking & replying system
Test Scenarios:
- Access control for unregistered users
- Forwarding reported content to the admin
- Unique user control for likes/replies
- Validation for very long comments or empty content
6. Admin Panel
Sub-Features:
- Viewing reported content
- Banning users
- Deleting content
Test Scenarios:
- Can a non-admin directly access admin endpoints? (403 expected)
- When does a banned user lose access to the system?
- Does deleted content continue to appear in the forum?
7. Messaging & Appointment
Sub-Features:
- Real-time messaging (WebSocket)
- Scheduling, proposing, and accepting/rejecting appointments
Test Scenarios:
- Establishing WebSocket connection and instant message delivery
- Simultaneous conversations with multiple users
- Checking for scheduling conflicts in appointments
- Delivering notifications via email and within the system
8. Email Service
Sub-Features:
- Sending verification codes (OTP)
- Password reset emails
- Appointment and notification emails
Test Scenarios:
- Code delivered in the correct email format
- Verification attempt with an expired code (should return an error)
- Checking for emails not falling into the spam folder (via logs in the test environment)
- Fallback handling in case of SMTP service failure
In this section, the test scenarios for each module are defined according to the structure below.
Field | Description |
---|---|
TC_ID | Test Case Identifier |
Requirement | Associated requirement |
Priority | High / Medium / Low |
Description | What is being tested |
Preconditions | Conditions that must be met before testing |
Input Data | Input data (e.g., payload, etc.) |
Expected Result | Expected output |
Actual Result | Actual result (filled during testing) |
Status | Pass / Fail (determined after the test) |
6. DETAILED TEST CASES
AUTHENTICATION MODULE
TC_ID: AUTH.REG.01
- Requirement: User registration system
- Priority: High
- Description: User registration should be successful with valid information
TC_ID: AUTH.REG.02
- Requirement: User registration system
- Priority: High
- Description: Attempt to register with the same email should fail
TC_ID: AUTH.LOGIN.01
- Requirement: Login process
- Priority: High
- Description: User should be able to log in with correct email and password
TC_ID: AUTH.LOGIN.02
- Requirement: Login process
- Priority: High
- Description: Inactive users should not be able to log in
TC_ID: AUTH.VERIFY.01
- Requirement: Email verification
- Priority: High
- Description: Email verification should succeed with the correct code
TC_ID: AUTH.VERIFY.02
- Requirement: Email verification
- Priority: High
- Description: An error should be returned when an incorrect code is entered
TC_ID: AUTH.RESET.01
- Requirement: Password reset
- Priority: Medium
- Description: An email code should be sent for password reset
TC_ID: AUTH.RESET.02
- Requirement: Password reset
- Priority: Medium
- Description: Password reset should succeed with a valid code
TC_ID: AUTH.RESET.03
- Requirement: Password reset
- Priority: Medium
- Description: Password reset should be rejected with an invalid code
PROFILE MANAGEMENT
TC_ID: PROF.CREATE.01
- Requirement: Profile creation
- Priority: High
- Description: User should successfully save the profile form
TC_ID: PROF.CREATE.02
- Requirement: Profile creation
- Priority: High
- Description: Registration should fail with incomplete fields
TC_ID: PROF.UPDATE.01
- Requirement: Profile update
- Priority: Medium
- Description: User should be able to update profile information
TC_ID: PROF.DELETE.01
- Requirement: Profile deletion
- Priority: Low
- Description: User should be able to delete or deactivate the profile
JOB ADVERTISEMENT
TC_ID: JOB.CREATE.01
- Requirement: Job advertisement creation
- Priority: High
- Description: Employer should be able to create a new job advertisement
TC_ID: JOB.UPDATE.01
- Requirement: Job advertisement update
- Priority: Medium
- Description: Employer should be able to update an existing job advertisement
TC_ID: JOB.DELETE.01
- Requirement: Job advertisement deletion
- Priority: Medium
- Description: Employer should be able to delete an advertisement
TC_ID: JOB.FILTER.01
- Requirement: Advertisement filtering
- Priority: High
- Description: Candidates should be able to list job advertisements using filtering options
AI MATCHING SYSTEM
TC_ID: AI.MATCH.USER.01
- Requirement: AI matching
- Priority: High
- Description: Relevant job advertisements should be recommended to candidates
TC_ID: AI.MATCH.EMP.01
- Requirement: AI matching
- Priority: High
- Description: Relevant candidates should be recommended to employers
TC_ID: AI.SEARCH.01
- Requirement: ElasticSearch
- Priority: High
- Description: Job searches should work correctly using ElasticSearch
FORUM SYSTEM
TC_ID: FORUM.POST.01
- Requirement: Post creation
- Priority: High
- Description: Users should be able to create forum posts
TC_ID: FORUM.COMMENT.01
- Requirement: Commenting
- Priority: Medium
- Description: Users should be able to comment on posts
TC_ID: FORUM.REPORT.01
- Requirement: Content reporting
- Priority: High
- Description: Users should be able to report content
TC_ID: FORUM.MOD.01
- Requirement: Forum access
- Priority: Medium
- Description: Unregistered users should not be able to access forum features
ADMIN PANEL
TC_ID: ADMIN.VIEW.01
- Requirement: Admin panel
- Priority: High
- Description: Admin should be able to view reported content
TC_ID: ADMIN.ACTION.01
- Requirement: Content removal
- Priority: High
- Description: Admin should be able to delete content
TC_ID: ADMIN.BAN.01
- Requirement: User banning
- Priority: Medium
- Description: Admin should be able to ban users
TC_ID: ADMIN.SEC.01
- Requirement: Access control
- Priority: High
- Description: Non-admin users should not be able to access admin endpoints
MESSAGING & APPOINTMENT
TC_ID: MSG.REALTIME.01
- Requirement: Real-time messaging
- Priority: High
- Description: Users should be able to send real-time messages
TC_ID: MSG.SEND.01
- Requirement: Message sending
- Priority: High
- Description: Messages should be sent successfully
TC_ID: APPT.CREATE.01
- Requirement: Appointment scheduling
- Priority: High
- Description: Users should be able to schedule an appointment
TC_ID: APPT.CONFLICT.01
- Requirement: Time conflict
- Priority: Medium
- Description: Two appointments should not be allowed at the same time
EMAIL SERVICE
TC_ID: EMAIL.OTP.01
- Requirement: Code delivery
- Priority: High
- Description: Verification code should be sent to the registered email address
TC_ID: EMAIL.OTP.02
- Requirement: Code expiration
- Priority: Medium
- Description: The code should become invalid after expiration
TC_ID: EMAIL.NOTIF.01
- Requirement: Notification emails
- Priority: Medium
- Description: Appointment and notification emails should be delivered to the user