---
# System prepended metadata

title: Test Plan
tags: [GD2- Inception and Elaboration]

---

# Test Plan

**Author**: Team 084

## 1 Testing Strategy

### 1.1 Overall strategy

Our exhaustive testing strategy will implement unit testing, integration testing, system testing, and regression testing.

**Unit testing:**

Unit testing will be implemented to verify individual components of the app are working as intended. For example, unit tests for getScore() would check that the behavior of that method correctly calculates a score based on comparison weights.


**Integration testing:**

Integrated testing will verify that different methods/components are working together correctly. This includes user input validation and other interactions with the UI such as proper database updates.

**System testing:**

System testing will involve manually verifying system functionality specified by use cases.

**Regression testing:**

Regression testing will be performed to make sure that new features do not disrupt existing functionalities.

### 1.2 Test Selection

A combination of white-box and black-box testing techniques will be utililzed.

**Unit testing and Integration testing:**
* White-box techniques


**System testing and Regression testing:**
* Black-box techniques

### 1.3 Adequacy Criterion

The quality of test cases will be assesed on the basis of test cases passed and code coverage. We aim for 80% coverage with 100% tests passed.

### 1.4 Bug Tracking

A GitHub project board will be used to track bugs via GitHub Issues.

### 1.5 Technology

* JUnit- For creating unit tests
* Espresso- For automated UI testing


## 2 Test Cases


|Test Case | Purpose | Steps | Expected Result | Result| Pass/Fail?|
| -------- | ------- | ----- | --------------- | ----- | ----- | 
|1 | Enter job details|1. Select enter job details 2. Input details for all fields 3. Click Save | Job details saved  |  | |
|2 | Enter invalid job details|1. Select enter job details 2. Input erroneus job details 3. Click Save | Job details not saved and error message displayed  |  | |
|3 | Edit job details|1. Select edit job details 2. Make changes 3. Click Save | Job details updated  |  | |
|4 | Cancel job details|1. Select enter job details 2. Select cancel | Return to main menu without saving  |  | |
|5 | Enter job offer |1. Select enter job offer 2. Input details for all fields 3. Click Save | Job details saved  |  | |
|6 | Adjust weights |1. Select adjust settings 2. Configure desired weights 3. Click Save | Updated weights reflected in UI  |  | |
|7 | Compare job offers UI | 1. Click compare jobs button  | Ranked list of job offers displayed  |  ||
|8 | Compare job offers | 1. Click compare jobs button 2. Select 2 jobs to compare | Side by side comparison displayed in a table  |  | |
|9 |Invalid job comparison |1. Click compare jobs button 2. Select < 2 jobs in case there is no current job or < 1 job in case there is a current job | Comparison feature will be disabled  |  | |
|10 | Compute job score | 1. Click compare jobs button 2. Select 2 valid jobs to compare  | App computes job scores  |  | |


