Ingeniería de Sistemas · 2024
Implementación de Pruebas de Integración Automatizadas en la Capa Backend de los Aplicativos Web del Proyecto RSI
Dentro del proceso de desarrollo de un software, una de las diferentes etapas cruciales para garantizar la calidad es la realización de pruebas de las funcionalidades implementadas. Dependiendo del alcance que se le quieran dar a dichas pruebas se aplica el tipo respectivo; por ejemplo, se pueden probar unidades de código aisladas mediante pruebas unitarias, o la interacción de varios componentes del sistema haciendo uso de pruebas de integración. No obstante, aprovechar herramientas que faciliten el proceso de ejecución de pruebas resulta ser de vital importancia para optimizar recursos temporales y humanos, a esto se le conoce como automatización de pruebas de software. El enfoque principal de este proyecto es diseñar e implementar una solución para la necesidad de usar pruebas automatizadas en la capa backend del proyecto RSI, el cual es un proyecto desarrollado con el fin de renovar los sistemas de información de la Universidad Industrial de Santander, poniendo en uso nuevas tecnologías.
Texto completo 100 páginas con texto
Leer la tesis completa Ficha en el repositorio
Contenido
- Introducciónp. 12
- 1. Planteamiento y Justificaciónp. 14
- 2. Objetivosp. 16
- 3. Marco de Referenciap. 17
- 3.1. Pruebas de softwarep. 17
- 3.1.1. Tipos de pruebas de softwarep. 17
- 3.2. Pruebas unitariasp. 18
- 3.3. Pruebas de integraciónp. 19
- 3.4. Automatización de pruebas de softwarep. 10
- 3.4.1. Importancia de la automatización de pruebas en un esquema de CDp. 20
- 3.5. Metodología TDDp. 20
- 3.6. Metodología BDDp. 20
- 3.7. Arquitectura de microserviciosp. 21
- 3.8. Arquitectura del proyecto RSIp. 22
- 3.8.1 Capa de base de datosp. 23
- 3.8.2 Capa backendp. 23
- 3.8.2.1 Arquitectura hexagonalp. 25
- 3.8.2.2 Implementación de pruebas automatizadas en la capa backendp. 26
- 3.8.2.3 Comunicación entre microserviciosp. 27
- 3.8.3 Capa frontendp. 27
- 4. Marco Metodológicop. 28
- 4.1 Marco de trabajo Scrump. 28
- 4.2 Control de versionesp. 29
- 4.3 Integración continuap. 29
- 4.4 Flujo de trabajop. 30
- 5. Implementaciónp. 13
- capa backend del proyecto RSIp. 32
- 5.1.1 Objetivop. 32
- 5.1.2 Criterios de aceptaciónp. 33
- 5.1.3 Ejecuciónp. 33
- 5.1.3.1 Pruebas de integraciónp. 19
- 5.1.3.2 Pruebas de integración con SpringBootTestp. 34
- 5.1.3.2.1 Pruebas de integración con SpringBootTest y MockMVCp. 42
- 5.1.3.3 Pruebas de integración con TestContainersp. 45
- 5.1.3.4 Evaluación de herramientasp. 52
- 5.1.3.5 Pruebas de integración automatizadas aplicadas con CIp. 56
- 5.1.3.6 Reporte de cobertura por pruebas de integraciónp. 59
- automatizadas para la capa backend en el proyecto RSIp. 62
- casos con comunicación entre microserviciosp. 63
- 5.2.1 Objetivop. 32
- 5.2.2 Criterios de aceptaciónp. 33
- 5.2.3 Ejecuciónp. 33
- 5.2.3.1 Pruebas por contrato empleando mock de la respuesta del productorp. 69
- 5.2.3.2 Pruebas por contrato empleando stubs para la respuesta del productorp. 72
- 5.3. Investigar sobre metodología TDD y posibles aportes al proyectop. 79
- 5.3.1 Objetivop. 32
- 5.3.2 Criterios de aceptaciónp. 33
- 5.3.3 Ejecuciónp. 33
- de pruebas de integraciónp. 81
- 5.4.1 Objetivop. 32
- 5.4.2 Criterios de aceptaciónp. 33
- 5.4.3 Ejecuciónp. 33
- 5.4.3.1 Estrategias de aplicación de pruebas de integración y su adopción en el proyecto RSIp. 83
- 5.4.3.2 Evaluación de desarrollos para la aplicación de pruebas de integraciónp. 87
- requieranp. 33
- 5.5.1 Objetivop. 32
- 5.5.2 Criterios de aceptaciónp. 33
- 5.5.3 Ejecuciónp. 33
- automatizadas dentro de RSIp. 92
- 5.6.1 Objetivop. 32
- 5.6.2 Criterios de aceptaciónp. 33
- 5.6.3 Ejecuciónp. 33
- de integración automatizadas en la capa backendp. 94
- 5.7.1 Objetivop. 32
- 5.7.2 Criterios de aceptaciónp. 33
- 5.7.3 Ejecuciónp. 33
- 6. Resultadosp. 95
- 7. Conclusionesp. 96
- 8. Trabajo Futurop. 97
- Referencias Bibliográficasp. 99
- Tabla 1. Comparación entre herramientas para implementación de pruebas de integraciónp. 53
- integraciónp. 87
- integraciónp. 87
- Tabla 4. Diagrama de cobertura por test de integración con SpringBootTestp. 90
- Tabla 5. Esquema de pruebas de integración con MockMvcp. 90
- Tabla 6. Esquema del flujo de pruebas de integración con TestContainersp. 91
- Figura 1. Arquitectura de software del proyecto RSIp. 22
- Figura 2. Estructura de la arquitectura hexagonalp. 25
- Figura 3. Flujo de trabajo de RSI para desarrolladoresp. 30
- Figura 4. Diagrama de cobertura por test de integración con SpringBootTestp. 36
- Figura 5. Esquema de pruebas de integración con MockMvcp. 43
- Figura 6. Esquema del flujo de pruebas de integración con TestContainersp. 47
- predevp. 58
- Figura 8. Visualización de porcentaje de cobertura por pruebas automatizadasp. 60
- Figura 9. Informe general sobre coverage por testp. 60
- Figura 10. Reporte de porcentaje de coverage por cada paquete del proyecto backendp. 61
- microservicios backend de RSIp. 63
- Figura 13. Pirámide de pruebas de software de Cohnp. 66
- Figura 14. Flujo de prueba por contrato haciendo mocks de la respuesta del proveedorp. 69
- Figura 15. Esquema del flujo de prueba por contrato usando stubs de verificaciónp. 72