Test Plan Document - CankayaUniversity/ceng-407-408-2024-2025-Job-Application-and-Matching-Platform GitHub Wiki

Table of Contents

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:

  1. 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.
  2. 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.
  3. Team Project Report

    • Document: TeamReport.pdf
    • Description: It includes a summary of the project’s purpose, overall scope, user profiles, and expected system behaviors.
  4. Spring Boot & React Application Code

    • Description: Tests for the backend and frontend code and REST API endpoints were designed directly based on these modules.
  5. MariaDB Database Schema and JPA Entity Structures

    • Description: The database integrity, relationship structures, and CRUD operations were tested with reference to this structure.
  6. 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