‹ Volver a Portafolio

Tabla de Contenidos

Introducción
Objetivos
Tecnologías utilizadas
Historias de usuario
Alcance
Arquitectura de las pruebas
Capturas de pantalla y ejemplos
Resultados y métricas
Repositorio Github
Conclusión
Lecciones Aprendidas

Descripción del proyecto

El proyecto tiene como objetivo crear las historias de usuario, definir los criterios de aceptación y, a partir de ellas, establecer los escenarios de prueba expresados en lenguaje Gherkin.
Por último, automatizar estos escenarios, implementándolos mediante scripts desarrollados en Java , Selenium y Cucumber.

Se automatizaron los siguientes escenarios clave: login, el alta de un nuevo empleado y la exploración exhaustiva de todas las secciones de la página.

Finalmente, se utilizó un plugin para generar reportes que ofrecen una visión clara de la ejecución de las pruebas. Esto facilita la interpretación de resultados para aquellos interesados en conocer el resultado de las pruebas.

1. Introducción 🌐

El sitio Orange HRM es una plataforma de código abierto diseñada para la gestión integral de recursos humanos en entornos empresariales. Sus funcionalidades incluyen la gestión de empleados, administración de permisos y ausencias, sistema de nómina, gestión de reclutamiento, evaluación del desempeño, generación de informes, gestión de formación, portal del empleado, seguridad y privacidad. La plataforma es escalable, personalizable y ofrece una amplia variedad de herramientas para facilitar la administración eficiente de recursos humanos en organizaciones de diferentes tamaños.

Analisis Funcional

2. Objetivos 🎯

  • Confeccionar las historias de usuario y definir los criterios de aceptación.
  • Automatizar pruebas de funcionalidad para mejorar la eficiencia y precisión de las pruebas.
  • Reducir el tiempo y los recursos requeridos para realizar pruebas manuales.
  • Detectar errores y problemas en el sitio web de manera temprana.

3. Tecnologías utilizadas 💻

Para la construcción del proyecto se emplearon las siguientes tecnologías , librerías , técnicas y herramientas de desarrollo:

3.1 Tecnologías 👨‍💻

  • Selenium Web Driver: Framework de automatización de pruebas para interactuar con los elementos de la interfaz de usuario.
  • Java: Lenguaje de programación utilizado para desarrollar las pruebas automatizadas.
  • Cucumber: Dependencia que posibilita establecer un marco de trabajo para la automatización de pruebas, permitiendo la ejecución de pruebas basadas en el enfoque de Desarrollo Guiado por Comportamiento (BDD).
  • Maven: Gestor de dependencias utilizado para la gestión del proyecto.
  • Multiple Cucumber HTML Reporter: Herramienta que ayuda a visualizar y comunicar de manera efectiva los resultados de las pruebas escritas con Cucumber, genera un informe en formato HTML.

3.2 Herramientas 🛠️

  • IDE : Eclipse

4. Historias de usuario 📔

☑️HU001 - Iniciar sesión en Orange HRM
☑️HU002 - Crear un Nuevo Empleado
☑️HU003 - Asignar Permiso de Administrador a un Usuario
☑️HU004 - Registrar una Ausencia
☑️HU005 - Generar un Informe de Horas Trabajadas
☑️HU006 - Actualizar Información de Empleado
☑️HU007 - Cambiar la Contraseña del Usuario
☑️HU008 - Exploración exhaustiva por todas las secciones de OrangeHRM

Mostrar Historias de Usuario

HU001: Iniciar Sesión

Descripción
Como usuario de Orange HRM
Quiero poder iniciar sesión en el sistema
Para acceder a las funciones y características personalizadas de mi cuenta

Criterios de aceptación

  1. El usuario debería poder ingresar un nombre de usuario válido y una contraseña correcta.
  2. Después de iniciar sesión correctamente, el sistema debe redirigir al usuario al dashboard.

HU002 - Crear un nuevo empleado

Descripción
Como administrador de recursos humanos
Quiero poder agregar un nuevo empleado al sistema
Para mantener actualizada la base de datos de empleados y sus detalles personales

Criterios de Aceptación

  1. Debería ser posible ingresar la información básica del empleado, como nombre, apellido, dirección, etc.
  2. Después de crear un nuevo empleado, la lista de empleados debe actualizarse para incluir al nuevo empleado.

HU003: Asignar permiso de administrador a un usuario

Descripción
Como superadministrador del sistema
Quiero poder asignar privilegios de administrador a un usuario específico
Para permitir la gestión avanzada del sistema a ciertos usuarios

Criterios de aceptación

  1. El superadministrador debe tener la capacidad de asignar permisos de administrador a un usuario existente.
  2. Un usuario con permisos de administrador debe tener acceso a funciones y áreas adicionales en comparación con un usuario estándar.

HU004: Registrar una ausencia

Descripción
Como empleado
Quiero poder registrar mi ausencia (vacaciones, licencia médica, etc.)
Para mantener un registro preciso de las ausencias y permitir una planificación efectiva del trabajo

Criterios de Aceptación

  1. Debería ser posible seleccionar el tipo de ausencia (vacaciones, licencia médica, etc.) al registrar una ausencia.
  2. El sistema debe reflejar con precisión la información de la ausencia en el calendario y en los informes correspondientes.

HU005 - Generar un informe de horas trabajadas

Descripción
Como gerente de departamento
Quiero poder generar un informe que muestre las horas trabajadas por mis subordinados en un período específico
Para facilitar la gestión de la carga de trabajo y la asignación de recursos

Criterios de Aceptación

  1. El gerente debe poder especificar un rango de fechas para el informe.
  2. El informe generado debe incluir las horas trabajadas por cada empleado durante el período seleccionado.

HU006 - Actualizar información de empleado

Descripción
Como administrador de recursos humanos
Quiero poder actualizar la información personal de un empleado en el sistema
Para garantizar que la información de la empresa esté siempre actualizada y precisa

Criterios de Aceptación

  1. Los campos de información del empleado deben ser editables.
  2. Después de actualizar la información de un empleado, los cambios deben reflejarse en la base de datos.

HU007 - Cambiar la contraseña del usuario

Descripción
Como usuario de OrangeHRM
Quiero poder cambiar mi contraseña de inicio de sesión
Para garantizar la seguridad de mi cuenta y la confidencialidad de la información

Criterios de Aceptación

  1. Debería ser posible cambiar la contraseña del usuario después de iniciar sesión.
  2. La nueva contraseña debe cumplir con los requisitos de seguridad establecidos por la aplicación.

HU008 - Exploración por todas las secciones

Descripción
Como tester de automatización
Quiero crear un escenario de prueba que navegue por todas las secciones de OrangeHRM
Para garantizar que todas las funcionalidades del sistema sean accesibles y operen según lo esperado

Criterios de Aceptación

  1. Iniciar sesión en OrangeHRM.
  2. Navegar a la sección de “Inicio” y verificar la visibilidad de la información principal.
  3. Acceder a la sección de “Empleados” y verificar la lista de empleados.
  4. Explorar la sección de “Ausencias” y validar la capacidad de registrar una nueva ausencia.
  5. Acceder a la sección de “Informes” y generar un informe de ejemplo.
  6. Ir a la sección de “Configuración” y verificar la posibilidad de modificar la configuración del usuario.
  7. Navegar a la sección de “Administración” y revisar las opciones disponibles para administradores.
  8. Acceder a la sección de “Ayuda” o “Soporte” para verificar la disponibilidad de recursos de ayuda.

5. Alcance 📍

En el proyecto se realizará la automatización de los siguientes escenarios de prueba:

ESC001 - Iniciar sesión en Orange HRM
ESC002 - Crear un Nuevo Empleado
ESC003 - Exploración por todas las secciones

6. Arquitectura de las pruebas 🏠

El proyecto sigue el patrón Page Object Model (POM) para una mejor organización y mantenibilidad. Los elementos de la interfaz de usuario se encuentran separados en clases individuales, lo que permite un fácil mantenimiento y reutilización del código.

6.1 Estructura del proyecto 📂

OrangeHRM/
├── src/
│   ├── main/java
│   ├── main/test/java
│   │   ├── pages
│   │   │   ├── BasePage.java
│   │   │   ├── AddEmployeePage.java
│   │   │   ├── AdminPage.java
│   │   │   ├── BuzzPage.java
│   │   │   ├── ClaimPage.java
│   │   │   ├── DashBoardPage.java
│   │   │   ├── DirectoryPage.java
│   │   │   ├── LoginPage.java
│   │   │   ├── ViewCandidatesPage.java
│   │   │   ├── MaintenancePage.java
│   │   │   ├── MyInfoPage.java
│   │   │   ├── PerformancePage.java
│   │   │   ├── ViewEmployeeListPage.java
│   │   │   ├── ViewCandidatesPage.java
│   │   │   ├── ViewEmployeeTimesheetPage.java
│   │   │   └── ViewLeaveListPage.java
│   │   ├── runner/
│   │   │   └── TestRunner.java
│   │   ├── runner.browser_manager/
│   │   │   ├── DriverManager.java
│   │   │   ├── DriverManagerFactory.java
│   │   │   ├── DriverType.java
│   │   │   ├── FireFoxDriverManager.java
│   │   │   └── ChromeDriverManager.java
│   │   ├── stepdefinitions/
│   │   │   ├── BaseSteps.java
│   │   │   ├── Hooks.java
│   │   │   ├── OrangeSteps.java
│   │   ├── utilities/
│   │   │   ├── LogHelper.java
│   ├── main/test/
│   │   └── report/
│   │       └── index.html
└── pom.xml
└── README.md

7. Capturas de pantalla y ejemplos 📸

Se adjuntan las evidencias del funcionamiento de los scripts realizados y una demostración de los informes generados.

7.1 Ejecución de Suite Completa

Se ejecutan los casos de prueba para validar el inicio de sesión, el alta de un nuevo empleado y la navegación por todas las secciones de la página.

8. Resultados y métricas 📊

Se adjuntan los reportes de las pruebas realizadas:

8.1 Multiple Cucumber HTML Reporter

El script desarrollado genera un informe exhaustivo que proporciona detalles sobre el entorno de pruebas, incluyendo el navegador y el sistema operativo, la versión del software, el tester responsable y un desglose detallado de cada paso de la ejecución de las pruebas. El informe también presenta información específica sobre el escenario evaluado, resaltando los pasos que fueron ejecutados exitosamente y capturando pantallas para aquellos pasos que no fueron superados.

Para acceder al informe completo, por favor, visite el siguiente enlace:

Ver informe Suite Completa 📒✏️

9. Repositorio Github 🌏💼

Link a repositorio: Git Orange HRM

10. Conclusión 📢

El proyecto demostró habilidades en el diseño de casos de prueba, la implementación de scripts de automatización, el uso de Selenium Web Driver y el conocimiento de programación en Java. Además, se prestaron especial atención a los aspectos de mantenibilidad y extensibilidad del código, lo que facilita futuras actualizaciones y mejoras del proyecto.

La automatización de las pruebas en el sitio Orange HRM resultó en una mayor eficiencia, ya que se redujo el tiempo necesario para realizar pruebas manuales repetitivas. Además, proporcionó una mayor confiabilidad en la detección de errores y problemas funcionales, lo que a su vez mejoró la calidad del sitio web.

11. Lecciones Aprendidas 📚

  • Maven Project
  • Page Object Model
  • Cucumber
  • Gherkin
  • Generación de reportes HTML
  • Metodología BDD