Foto de perfil del aprendiz

Jhon Jairo Mejia Avila

Aprendiz en Desarrollo y Analisis de Software - Ficha 2885525

SENA - Servicio Nacional de Aprendizaje

Taller de Pruebas de Software

Análisis de la calidad en el sistema SIS-FP

1. Tipos de Pruebas de Software

Las pruebas de software son un proceso vital para garantizar que una aplicación cumpla con sus requisitos y funcione sin errores. Existen diferentes categorías, cada una con un objetivo específico:

Pruebas Funcionales

Verifican que cada función del software opere según las especificaciones. Se enfocan en la lógica de negocio y en las entradas/salidas.

Pruebas de Rendimiento

Miden la velocidad, la capacidad de respuesta y la estabilidad de una aplicación bajo diferentes cargas. Se evalúan métricas como el tiempo de respuesta y la escalabilidad.

Pruebas de Usabilidad

Evalúan qué tan fácil e intuitiva es la interfaz de usuario. Se busca que la navegación sea simple y que el usuario pueda completar sus tareas sin confusión.

Pruebas de Seguridad

Buscan vulnerabilidades en el software para protegerlo de amenazas externas. Se verifican la autenticación, la autorización y la protección de datos sensibles.

2. Pruebas para el Proyecto SIS-FP

Dado que el proyecto SIS-FP es un sistema de gestión portuaria integral, se recomienda un enfoque de pruebas que combine la funcionalidad con la seguridad y el rendimiento. Los tipos de pruebas clave son:

Pruebas de Seguridad

Son cruciales ya que SIS-FP maneja datos sensibles (antecedentes, accesos, etc.). Es vital validar la autenticación JWT y la protección de rutas para prevenir accesos no autorizados.

Pruebas de Integración

La arquitectura cliente-servidor con APIs RESTful exige validar la correcta comunicación entre el frontend y el backend para asegurar que los datos se envíen y reciban sin errores.

Pruebas de Rendimiento

El "Registro de Accesos Centralizado" puede recibir muchas solicitudes simultáneas. Las pruebas de carga garantizan que el sistema responda eficientemente y no colapse en picos de uso.

3. Demostración con Pruebas Unitarias

Para garantizar la fiabilidad del código a nivel de componente, realizamos pruebas unitarias. Estas pruebas se centran en la lógica de negocio del backend, asegurando que cada función se comporte como se espera en diferentes escenarios.

Análisis de la Lógica de Administración de Usuarios

La lógica de negocio reside en el controlador `adminUserController.js`. Para validar su robustez, se probaron individualmente sus funciones, como la creación, actualización y eliminación de usuarios.

El Código del Controlador: El cerebro de la lógica

Este pantallazo muestra la lógica de la función `createUser`, que maneja múltiples validaciones antes de crear un nuevo usuario.

Pantallazo del código del controlador de usuario

Las Pruebas Unitarias: Nuestra metodología

Utilizamos Jest para simular las respuestas de la base de datos (con 'mocking') y probar la función en diferentes escenarios, tanto exitosos como de error.

Pantallazo del código de las pruebas unitarias

El Resultado Final: Prueba de Confiabilidad

La ejecución de las pruebas unitarias confirma que toda nuestra lógica es sólida, garantizando que las operaciones de usuario sean confiables.

Pantallazo de los resultados de Jest

4. Demostración con Jmeter

Se utilizó Jmeter para realizar una prueba básica de inicio de sesión, validando que el servidor responda correctamente a la solicitud de autenticación.

Resumen de la Prueba de Login

El plan de pruebas en Jmeter se configuró para simular el inicio de sesión de 6 usuarios virtuales de forma concurrente. Se enviaron múltiples peticiones `POST` al endpoint `http://localhost:3000/api/login`, cada una con credenciales únicas de usuarios previamente registrados.

El resultado fue un éxito total: todas las solicitudes obtuvieron un código de respuesta `200 (OK)`. Esto confirma que el servicio de autenticación es robusto y puede manejar eficientemente la carga de múltiples inicios de sesión simultáneos sin presentar fallos.

Capturas de pantalla de las pruebas realizadas con Jmeter.

Captura de pantalla de Jmeter - solicitud inicio de sesión Captura de pantalla de Jmeter - arbol de resultados Captura de pantalla de Jmeter - informe de resumen