OrangeHRM logo

OrangeHRM provides a HRIS experience and offers HR Administration.

GitHub logo Github logo
OrangeHRM

Test Strategy

Test Strategy

This project aims to demonstrate my skills in Automation with Cypress using JavaScript as programming language Test Driven Development. Therefore, it is for demonstration purposes. The OrangeHRM website belongs to Orange HRM which is a open source HRMS.

It should be noted that not all the website functionalities were automated, the approach followed was to write test cases at a high level that offered the main functionalities of the application, in their case: login, add/edit/delete users, employees and vacancies and create/like posts.

The test cases were translated into low level to detail step by step the execution of the test cases. These test cases are grouped by test scenarios, ID, positive/negative, the type of test case (functional) and whether it is automatable or not. Only functional test cases have been considered, therefore performance, usability and any non-functional test cases are out of scope.

The execution of the test cases and the results are shown in later sections. Finally, Jenkins is integrated for continuous integration and continuous deployment.

  • Author: Javier Meléndez Zacarías
  • Website author: Orange HRM
  • Date: 9/25/2023
  • URL: https://opensource-demo.orangehrmlive.com/
  • JIRA: None
  • Epic: None
  • User Story: None
  • Test cases: 15
  • Automation: Cypress
  • Language: JavaScript
  • Framework: Test Driven Development
  • Passing score: 100%

Test cases

Test Cases

High level

ID Test scenario Test case Positive / Negative Type Automatable
HRM-1 Login Login with correct credentials Yes Functional Yes
HRM-2 Login with incorrect credentials No Functional Yes
HRM-3 Search Add a user to the system Yes Functional Yes
HRM-4 Add a user to the system with existing username No Functional Yes
HRM-5 Add a job Yes Functional Yes
HRM-6 Delete a job Yes Functional Yes
HRM-7 PIM Add an employee Yes Functional Yes
HRM-8 Edit an employee Yes Functional Yes
HRM-9 Delete an employee Yes Functional Yes
HRM-10 Recruitment Add a vacancy Yes Functional Yes
HRM-11 Delete a vacancy Yes Functional Yes
HRM-12 Maintenance Access to maintenance mode Yes Functional Yes
HRM-13 Access to maintenance mode with incorrect credentials No Functional Yes
HRM-14 Buzz Create a post Yes Functional Yes
HRM-15 Like a post Yes Functional Yes

Low level

ID Test case Test Data Precondition Steps Expected Result
HRM-1 Login with correct credentials User should have accessed to OrangeHRM website Visit https://opensource-demo.orangehrmlive.com/ User is redirected to OrangeHRM website
1.1 Admin Enter {Test Data} as the username Username field gets filled
1.2 admin123 Enter {Test Data} as the password Password field gets filled
1.3 Click on Login User gets logged in
HRM-2 Login with incorrect credentials User should have accessed to OrangeHRM website Visit https://opensource-demo.orangehrmlive.com/ User is redirected to OrangeHRM website
2.1 Test Enter {Test Data} as the username Username field gets filled
2.2 test123 Enter {Test Data} as the password Password field gets filled
2.3 Click on Login An error message gets displayed
HRM-3 Add a user to the system User should have accessed to OrangeHRM website Visit https://opensource-demo.orangehrmlive.com/ User is redirected to OrangeHRM website
3.1 User should have logged in with correct credentials Click on "Admin" from left sidepanel Admin page gets opened
3.2 Click on "+ Add" button Add User page gets opened
3.3 1. Admin
2. Ess
Select {Test Data} as User Role User role gets selected
3.4 1. Enabled
2. Disabled
Select {Test Data} as Status Status gets selected
3.5 1. Linda Jane Anderson
Odis Adalwin
Type {Test Data} as Employee Name Employee name field gets filled
3.6 Test123 Type {Test Data} as Username Username field gets filled
3.7 Test123@QA$ Type {Test Data} as Password Password field gets filled
3.8 Click on "Save" button A success message gets displayed
3.9 Search the recently added user The recently added user was added in the system
HRM-4 Add a user to the system with existing username User should have accessed to OrangeHRM website Visit https://opensource-demo.orangehrmlive.com/ User is redirected to OrangeHRM website
4.1 User should have logged in with correct credentials Click on "Admin" from left sidepanel Admin page gets opened
4.2 Click on "+ Add" button Add User page gets opened
4.3 1. Admin
2. Ess
Select {Test Data} as User Role User role gets selected
4.4 1. Enabled
2. Disabled
Select {Test Data} as Status Status gets selected
4.5 1. Linda Jane Anderson
Odis Adalwin
Type {Test Data} as Employee Name Employee name field gets filled
4.6 Test123 Type {Test Data} as Username Username field gets filled
4.7 Test123@QA$ Type {Test Data} as Password Password field gets filled
4.8 Click on "Save" button An error message below the Username field gets displayed
HRM-5 Add a job User should have accessed to OrangeHRM website Visit https://opensource-demo.orangehrmlive.com/ User is redirected to OrangeHRM website
5.1 User should have logged in with correct credentials Click on "Admin" from left sidepanel Admin page gets opened
5.2 Click on "Job" in top bar menu A context menu gets displayed
5.3 1. Admin
2. Ess
Click on "Job Title" in the context menu Job Titles page gets displayed
5.4 1. Enabled
2. Disabled
Click on "+ Add" button Add Job Title page gets displayed
5.5 QA Automation Engineer Enter {Test Data} as Job Title Job Title field gets filled
5.6 Description Enter {Test Data} as Job Description Job Description field gets filled
5.7 Test123@QA$ Click on Save button A success message gets displayed
5.8 Search the recently added job title The recently added job title was added in the system
HRM-6 Delete a job User should have accessed to OrangeHRM website Visit https://opensource-demo.orangehrmlive.com/ User is redirected to OrangeHRM website
6.1 User should have logged in with correct credentials Click on "Admin" from left sidepanel Admin page gets opened
6.2 Click on "Job" in top bar menu A context menu gets displayed
6.3 Click on "Job Title" in the context menu Job Titles page gets displayed
6.4 QA Automation Engineer Search {Test Data} job title and click on trash button A pop up is displayed
6.5 Click on "Yes, Delete" button A success message gets displayed
6.6 QA Automation Engineer Search {Test Data} job title and validate it should not appear The deleted job title doesn't appear
HRM-7 Add an employe User should have accessed to OrangeHRM website Visit https://opensource-demo.orangehrmlive.com/ User is redirected to OrangeHRM website
7.1 User should have logged in with correct credentials Click on "PIM" from left sidepanel PIM page gets opened
7.2 Click on "Add Employee" in top bar menu Add Employee page gets displayed
7.3 Enter {Test Data} as First Name First Name field gets filled
7.4 Enter {Test Data} as Last Name Last Name field gets filled
7.5 Click on "Save" button A success message gets displayed and user is redirected to the employee page
HRM-8 Edit an employee User should have accessed to OrangeHRM website Visit https://opensource-demo.orangehrmlive.com/ User is redirected to OrangeHRM website
8.1 User should have logged in with correct credentials Click on "PIM" from left sidepanel PIM page gets opened
8.2 Click on "Employee List" in top bar menu Employee List page gets displayed
8.3 Automation Engineer Type {Test Data} in the Employee Name field Employee name field gets filled
8.4 Green
Blue
Click on "Search" button The Employee gets listed
8.5 1
20
Click on pencil icon in the employee row User is redirected to the employee page
8.6 Python Change the employee first name to {Test Data} First Name field gets filled
8.7 Developer Change the employee last name to {Test Data} Last Name field gets filled
8.8 Click on "Save" button A success message gets displayed and user is redirected to the employee page
8.9 Click on "Employee List" in top bar menu Employee List page gets displayed
8.10 Python Developer Type {Test Data} in the Employee Name field Employee name field gets filled
8.11 Click on "Search" button The Employee gets listed
HRM-9 Delete an employee User should have accessed to OrangeHRM website Visit https://opensource-demo.orangehrmlive.com/ User is redirected to OrangeHRM website
9.1 User should have logged in with correct credentials Click on "PIM" from left sidepanel PIM page gets opened
9.2 Click on "Employee List" in top bar menu Employee List page gets displayed
9.3 Python Developer Type {Test Data} in the Employee Name field Employee name field gets filled
9.4 Click on "Search" button The Employee gets listed
9.5 Click on trash icon in the employee row A pop up is displayed
9.6 Click on "Yes, Delete" button A success message gets displayed
9.7 Python Developer Search {Test Data} in the employee name and validate it should not appear The employee name doesn't appear
HRM-10 Add a vacancy User should have accessed to OrangeHRM website Visit https://opensource-demo.orangehrmlive.com/ User is redirected to OrangeHRM website
10.1 Click on "Recruitment" from left sidepanel Recruitment page gets opened
10.2 Click on "Vacancies" in top bar menu Vacancies page gets displayed
10.3 Click on "+ Add" button Add Vacancy page gets displayed
10.4 Automation Engineer Enter {Test Data} as Vacancy Name Vacancy Name field gets filled
10.5 QA Engineer Select {Test Data} as Job Title Job Title gets filled
10.6 Linda Jane Anderson Type {Test Data} as Hiring Manager Hiring Manager field gets filled
10.7 Click on "Save" button A success message gets displayed
HRM-11 Delete a vacancy User should have accessed to OrangeHRM website Visit https://opensource-demo.orangehrmlive.com/ User is redirected to OrangeHRM website
11.1 User should have logged in with correct credentials Click on "Recruitment" from left sidepanel Recruitment page gets opened
11.2 Click on "Vacancies" in top bar menu Vacancies page gets displayed
11.3 QA Engineer Select {Test Data} as Job Title Job Title field gets selected
11.4 Automation Engineer Select {Test Data} as Vacancy Vacancy field gets selected
11.5 Click on "Search" button The vacancy gets listed
11.6 Click on trash icon in the vacancy row A pop up is displayed
11.7 Click on "Yes, Delete" button A success message gets displayed
HRM-12 Access to maintenance mode User should have accessed to OrangeHRM website Visit https://opensource-demo.orangehrmlive.com/ User is redirected to OrangeHRM website
12.1 User should have logged in with correct credentials Click on "Maintenance" from left sidepanel Maintenance login page gets opened
12.2 admin123 Enter {Test Data} as the password Password field gets filled
12.3 Click on "Confirm" button User is redirected to maintenance mode page
HRM-13 Access to maintenance mode with incorrect credentials User should have accessed to OrangeHRM website Visit https://opensource-demo.orangehrmlive.com/ User is redirected to OrangeHRM website
13.1 Click on "Maintenance" from left sidepanel Maintenance login page gets opened
13.2 test123 Enter {Test Data} as the password Password field gets filled
13.3 Click on "Confirm" button An error message gets displayed
HRM-14 Create a post User should have accessed to OrangeHRM website Visit https://opensource-demo.orangehrmlive.com/ User is redirected to OrangeHRM website
14.1 User should have logged in with correct credentials Click on "Buzz" from left sidepanel Buzz login page gets opened
14.2 Hello World! Type {Test Data} in the post field Post field gets filled
14.3 Password123 Click on "Post" button A success message gets displayed
14.4 Validate the newest post has been added The newest post has been added
HRM-15 Like a post User should have accessed to OrangeHRM website Visit https://opensource-demo.orangehrmlive.com/ User is redirected to OrangeHRM website
15.1 User should have logged in with correct credentials Click on "Buzz" from left sidepanel Buzz login page gets opened
15.2 Hello World! Search the newest post and click on heart icon The number of likes gets incremented

Test Execution

Test Execution
The project was executed using Visual Studio Code as JavaScript development environment and Electron as test execution browser.

Test Results

Test Results
The pass rate for the 15 test cases was 100%. Run time was 3 minutes and 21 seconds. It was run on a Mac OS X computer.
Results
Test results

Tools

Tools

JavaScript

Cypress

Mocha

Chai

Cypress Cloud

Test Driven Development