SlideShare una empresa de Scribd logo
1 de 23
Integración Continua con Jenkins
Introducción - 1
Antonio Ramón Molina Milla
Arquitecto
Integración de Sistemas [ARIS]
¿Integración Contínua?
[Buena] práctica de desarrollo software donde los miembros de un
proyecto integran su trabajo frecuentemente y de forma automática
favoreciendo la detección de fallos en las fases más tempranas de
desarrollo.
Cada integración se verifica con un build SNAPSHOT automático (que
incluye la ejecución de pruebas) para detectar errores de integración
tan pronto como sea posible.
Si la verificación es correcta el SNAPSHOT puede convertirse en
RELEASE para avanzar por los distintos entornos de la empresa.
Introducción - 3
¿Jenkins?
Es el software encargado de orquestar el proceso de Integración
contínua.
Está basado en Java y es ampliable mediante plugins:
- SonarQube
- Nexus
- Maven
- Git
Sus funciones principales son:
- Compilar el proyecto
- Aplicar el control de calidad basándose en los umbrales de
Release o Snapshot.
- Publicar en Nexus el compilado (.jar, .war, etc).
- Realizar los tags necesarios en GIT.
Introducción - 4
¿Jenkins?
Introducción - 5
¿Jenkins?
Introducción - 6
SNAPSHOT y RELEASE
SNAPSHOT: Dentro de Maven una instantánea es una versión de un
artefacto que está en desarrollo. El código puede ser modificado y
vuelto a compilar bajo el mismo nombre.
Umbral de pruebas más permisivo.
RELEASE: Versión inmutable originada por un SNAPSHOT.
Umbral de pruebas más estricto.
Dentro de Nexus existirán dos repositorios para garantizar que no se
mezclen los dos tipos de versiones y la persistencia de las Releases.
Introducción - 7
TDD
Test-Driven Development
Primero diseñamos las pruebas unitarias y posteriormente se
desarrolla el código fuente necesario para superarlas. Una vez se han
superado se simplifica el código y se refactoriza el código.
1. Se define una funcionalidad.
2. Se escoge el criterio de aceptación más simple y se traduce en
una prueba unitaria con resultado fallo.
3. Se escribe el código que hace pasar la prueba.
4. Se ejecutan todas las pruebas automatizadas.
5. Se refactoriza y se limpia el código.
Introducción - 8
Pruebas
Unitarias: Probar cada uno de los métodos del código de forma
aislada. Simulando la entrada de datos y verificando la salida obtenida
con la esperada. Usaremos: JUnit + Mockito + PowerMock.
Regresivas: Verificar que la interacción entre los métodos es correcta.
Estas pruebas son dependientes del entorno en el que se ejecutan y
suelen lanzarse de forma manual.
Integración, estrés, i18N, etc.
Introducción - 9
Cobertura
La cobertura mide el porcentaje de código que es ejecutado dentro de
alguna de nuestras pruebas unitarias.
No tiene sentido llegar a un 100% de cobertura. Una buena práctica
sería pedir el 60% y ajustar en los componentes que sean necesarios
incluso desactivar este tipo de análisis en las librerías de terceros.
Introducción - 10
Cobertura
Introducción - 11
Sonarqube
Aplicación de software libre para la evaluación de código estático
basado en Checkstyle, PMD o FindBugs.
Introducción - 12
Actualmente existen unas 495
reglas para Java.
Que permiten verificar los
siguientes puntos en nuestro
código:
Sonarsource
VB.NET
Introducción - 13
PYTHON
PHP JavaScript
NullPointerExcepcion
Introducción - 14
IF/ELSE idénticos
Introducción - 15
Devolución del mismo valor
Introducción - 16
Recurso no cerrado tras su uso
Introducción - 17
Integrantes principales perfiles
Introducción - 18
Desarrolladores Quality Assurance Sistemas
Sistemas dedicados
Introducción - 19
Jenkins
Nexus
Sonar
GIT
docker + swarm
Sistemas dockerizados
Introducción - 20
Serv1 Serv2
Sonar Git Nexus
Jenkins 1 Jenkins 2
Entornos
- Desarrollo: Normalmente la máquina del desarrollador dónde suele tener facilidad para debugar el código
desarrollado con acceso a los recursos en local y facilitar las pruebas unitarias.
- Preproducción o integración: Entorno donde los nuevos desarrollos conviven con el resto de la aplicación.
Es interesante que exista una volcado de datos ofuscados de producción para poder realizar pruebas
regresivas y de integración.
- Producción: Entorno en el que desplegamos nuestro código probado y validado con anterioridad para
mantener un alto nivel de calidad de la aplicación.
Introducción - 21
Dudas
Flujo de desarrollo:
Un equipo de desarrolladores planea generar un backend basado en
microservicios para nutrir una página web y una posible futura
aplicación móvil.
Introducción - 22
Introducción - 23
www.commitea.es
armolinamilla@gmail.com
@commiteatv
www.linkedin.com/in/armolinamilla
web
email
Twitter
Linkedin
Contacto

Más contenido relacionado

La actualidad más candente

Control de Versiones con Subversion (SVN)
Control de Versiones con Subversion (SVN)Control de Versiones con Subversion (SVN)
Control de Versiones con Subversion (SVN)Fco Javier Lucena
 
Configuración de software
Configuración de softwareConfiguración de software
Configuración de softwareJorge Rodriguez
 
Administración de la calidad del software a través del análisis estático de c...
Administración de la calidad del software a través del análisis estático de c...Administración de la calidad del software a través del análisis estático de c...
Administración de la calidad del software a través del análisis estático de c...César Hernández
 
Gestión del software con Maven y Jenkins
Gestión del software con Maven y JenkinsGestión del software con Maven y Jenkins
Gestión del software con Maven y JenkinsBEEVA_es
 
Testing Con Visual Studio Team System 2008
Testing Con Visual Studio Team System 2008Testing Con Visual Studio Team System 2008
Testing Con Visual Studio Team System 2008Diego Ferreyra
 
Test Driven Infrastructure
Test Driven InfrastructureTest Driven Infrastructure
Test Driven InfrastructureAngel Nuñez
 
Test Automation .NET
Test Automation .NETTest Automation .NET
Test Automation .NETAngel Nuñez
 
Pruebas software con junit ..
Pruebas software con junit ..Pruebas software con junit ..
Pruebas software con junit ..siticfje
 
Semana3 Jorge Armas
Semana3 Jorge ArmasSemana3 Jorge Armas
Semana3 Jorge ArmasIsrael
 

La actualidad más candente (20)

Control de Versiones con Subversion (SVN)
Control de Versiones con Subversion (SVN)Control de Versiones con Subversion (SVN)
Control de Versiones con Subversion (SVN)
 
Introduction to unit testing
Introduction to unit testingIntroduction to unit testing
Introduction to unit testing
 
Configuración de software
Configuración de softwareConfiguración de software
Configuración de software
 
Introduccion a XP
Introduccion a XPIntroduccion a XP
Introduccion a XP
 
Introduccion a MPI
Introduccion a MPIIntroduccion a MPI
Introduccion a MPI
 
Actividad N° 1 Unidad 4
Actividad N° 1   Unidad 4 Actividad N° 1   Unidad 4
Actividad N° 1 Unidad 4
 
Pruebas Unitarias
Pruebas Unitarias Pruebas Unitarias
Pruebas Unitarias
 
Juancho
JuanchoJuancho
Juancho
 
Framework
FrameworkFramework
Framework
 
Administración de la calidad del software a través del análisis estático de c...
Administración de la calidad del software a través del análisis estático de c...Administración de la calidad del software a través del análisis estático de c...
Administración de la calidad del software a través del análisis estático de c...
 
Gestión del software con Maven y Jenkins
Gestión del software con Maven y JenkinsGestión del software con Maven y Jenkins
Gestión del software con Maven y Jenkins
 
Testing Con Visual Studio Team System 2008
Testing Con Visual Studio Team System 2008Testing Con Visual Studio Team System 2008
Testing Con Visual Studio Team System 2008
 
Test Driven Infrastructure
Test Driven InfrastructureTest Driven Infrastructure
Test Driven Infrastructure
 
Selenium
SeleniumSelenium
Selenium
 
Unit testing
Unit testingUnit testing
Unit testing
 
7iSF-4 test driver development
7iSF-4   test driver development7iSF-4   test driver development
7iSF-4 test driver development
 
Test Automation .NET
Test Automation .NETTest Automation .NET
Test Automation .NET
 
Pruebas software con junit ..
Pruebas software con junit ..Pruebas software con junit ..
Pruebas software con junit ..
 
Semana3 Jorge Armas
Semana3 Jorge ArmasSemana3 Jorge Armas
Semana3 Jorge Armas
 
Pucela testingdays testing_en_php
Pucela testingdays testing_en_phpPucela testingdays testing_en_php
Pucela testingdays testing_en_php
 

Similar a Meetup Integración Continua y Jenkins

Herramientas de integración continua en proyectos software
Herramientas de integración continua en proyectos softwareHerramientas de integración continua en proyectos software
Herramientas de integración continua en proyectos softwareJose Manuel Ortega Candel
 
Pruebas software (1)
Pruebas  software (1)Pruebas  software (1)
Pruebas software (1)René Pari
 
tipos de pruebas.
tipos de pruebas.tipos de pruebas.
tipos de pruebas.Juan Ravi
 
Integracion Continua
Integracion ContinuaIntegracion Continua
Integracion ContinuaLenin Lozano
 
Pruebas Unitarias - Uso de NUnit dentro de proyectos .NET
Pruebas Unitarias - Uso de NUnit dentro de proyectos .NETPruebas Unitarias - Uso de NUnit dentro de proyectos .NET
Pruebas Unitarias - Uso de NUnit dentro de proyectos .NETLa Red DBAccess
 
¿Cómo poner software de calidad en manos del usuario de forma rápida?
¿Cómo poner software de calidad en manos del usuario de forma rápida?¿Cómo poner software de calidad en manos del usuario de forma rápida?
¿Cómo poner software de calidad en manos del usuario de forma rápida?Micael Gallego
 
Ingeniería del software y metodologías ágiles
Ingeniería del software y metodologías ágilesIngeniería del software y metodologías ágiles
Ingeniería del software y metodologías ágilesRodrigo Corral
 
Herramientas Ágiles para Desarrollo
Herramientas Ágiles para DesarrolloHerramientas Ágiles para Desarrollo
Herramientas Ágiles para DesarrolloGastón Guillerón
 
Herramientas agilesdesarrollo
Herramientas agilesdesarrolloHerramientas agilesdesarrollo
Herramientas agilesdesarrollogabrielpiccoli
 
Meetup TestingUy 2019 - Plataforma de integración y testing continuo
Meetup TestingUy 2019 - Plataforma de integración y testing continuoMeetup TestingUy 2019 - Plataforma de integración y testing continuo
Meetup TestingUy 2019 - Plataforma de integración y testing continuoTestingUy
 
pruebasunitarias-110921232512-phpapp02.pptx
pruebasunitarias-110921232512-phpapp02.pptxpruebasunitarias-110921232512-phpapp02.pptx
pruebasunitarias-110921232512-phpapp02.pptxCompusoftnetCiaLtda
 
Remote System Controller with Android technologies
Remote System Controller with Android technologiesRemote System Controller with Android technologies
Remote System Controller with Android technologiesMiguel Garcia Ponce
 

Similar a Meetup Integración Continua y Jenkins (20)

Pruebas unitarias
Pruebas unitariasPruebas unitarias
Pruebas unitarias
 
Herramientas de integración continua en proyectos software
Herramientas de integración continua en proyectos softwareHerramientas de integración continua en proyectos software
Herramientas de integración continua en proyectos software
 
Las mejores herramientas para realizar pruebas de software
Las mejores herramientas para realizar pruebas de softwareLas mejores herramientas para realizar pruebas de software
Las mejores herramientas para realizar pruebas de software
 
Pruebas software (1)
Pruebas  software (1)Pruebas  software (1)
Pruebas software (1)
 
tipos de pruebas.
tipos de pruebas.tipos de pruebas.
tipos de pruebas.
 
Integracion Continua
Integracion ContinuaIntegracion Continua
Integracion Continua
 
TDD
TDDTDD
TDD
 
Practicas tecnicas
Practicas tecnicasPracticas tecnicas
Practicas tecnicas
 
Pipeline de Integración continua
Pipeline de Integración continuaPipeline de Integración continua
Pipeline de Integración continua
 
Pruebas Unitarias - Uso de NUnit dentro de proyectos .NET
Pruebas Unitarias - Uso de NUnit dentro de proyectos .NETPruebas Unitarias - Uso de NUnit dentro de proyectos .NET
Pruebas Unitarias - Uso de NUnit dentro de proyectos .NET
 
¿Cómo poner software de calidad en manos del usuario de forma rápida?
¿Cómo poner software de calidad en manos del usuario de forma rápida?¿Cómo poner software de calidad en manos del usuario de forma rápida?
¿Cómo poner software de calidad en manos del usuario de forma rápida?
 
Ingeniería del software y metodologías ágiles
Ingeniería del software y metodologías ágilesIngeniería del software y metodologías ágiles
Ingeniería del software y metodologías ágiles
 
El coste de no usar integración continua
El coste de no usar integración continuaEl coste de no usar integración continua
El coste de no usar integración continua
 
Herramientas Ágiles para Desarrollo
Herramientas Ágiles para DesarrolloHerramientas Ágiles para Desarrollo
Herramientas Ágiles para Desarrollo
 
Herramientas agilesdesarrollo
Herramientas agilesdesarrolloHerramientas agilesdesarrollo
Herramientas agilesdesarrollo
 
Integrando sonar
Integrando sonarIntegrando sonar
Integrando sonar
 
Meetup TestingUy 2019 - Plataforma de integración y testing continuo
Meetup TestingUy 2019 - Plataforma de integración y testing continuoMeetup TestingUy 2019 - Plataforma de integración y testing continuo
Meetup TestingUy 2019 - Plataforma de integración y testing continuo
 
pruebasunitarias-110921232512-phpapp02.pptx
pruebasunitarias-110921232512-phpapp02.pptxpruebasunitarias-110921232512-phpapp02.pptx
pruebasunitarias-110921232512-phpapp02.pptx
 
software del sistema
software del sistemasoftware del sistema
software del sistema
 
Remote System Controller with Android technologies
Remote System Controller with Android technologiesRemote System Controller with Android technologies
Remote System Controller with Android technologies
 

Último

Cortes-24-de-abril-Tungurahua-3 año 2024
Cortes-24-de-abril-Tungurahua-3 año 2024Cortes-24-de-abril-Tungurahua-3 año 2024
Cortes-24-de-abril-Tungurahua-3 año 2024GiovanniJavierHidalg
 
La era de la educación digital y sus desafios
La era de la educación digital y sus desafiosLa era de la educación digital y sus desafios
La era de la educación digital y sus desafiosFundación YOD YOD
 
KELA Presentacion Costa Rica 2024 - evento Protégeles
KELA Presentacion Costa Rica 2024 - evento ProtégelesKELA Presentacion Costa Rica 2024 - evento Protégeles
KELA Presentacion Costa Rica 2024 - evento ProtégelesFundación YOD YOD
 
Redes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdfRedes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdfsoporteupcology
 
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricGlobal Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricKeyla Dolores Méndez
 
Trabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnologíaTrabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnologíassuserf18419
 
Plan de aula informatica segundo periodo.docx
Plan de aula informatica segundo periodo.docxPlan de aula informatica segundo periodo.docx
Plan de aula informatica segundo periodo.docxpabonheidy28
 
trabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdftrabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdfIsabellaMontaomurill
 
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE  DE TECNOLOGIA E INFORMATICA PRIMARIACLASE  DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIAWilbisVega
 
International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)GDGSucre
 
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...silviayucra2
 
9egb-lengua y Literatura.pdf_texto del estudiante
9egb-lengua y Literatura.pdf_texto del estudiante9egb-lengua y Literatura.pdf_texto del estudiante
9egb-lengua y Literatura.pdf_texto del estudianteAndreaHuertas24
 
guía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Josephguía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan JosephBRAYANJOSEPHPEREZGOM
 
EPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveEPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveFagnerLisboa3
 
Hernandez_Hernandez_Practica web de la sesion 12.pptx
Hernandez_Hernandez_Practica web de la sesion 12.pptxHernandez_Hernandez_Practica web de la sesion 12.pptx
Hernandez_Hernandez_Practica web de la sesion 12.pptxJOSEMANUELHERNANDEZH11
 
Proyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptxProyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptx241521559
 

Último (16)

Cortes-24-de-abril-Tungurahua-3 año 2024
Cortes-24-de-abril-Tungurahua-3 año 2024Cortes-24-de-abril-Tungurahua-3 año 2024
Cortes-24-de-abril-Tungurahua-3 año 2024
 
La era de la educación digital y sus desafios
La era de la educación digital y sus desafiosLa era de la educación digital y sus desafios
La era de la educación digital y sus desafios
 
KELA Presentacion Costa Rica 2024 - evento Protégeles
KELA Presentacion Costa Rica 2024 - evento ProtégelesKELA Presentacion Costa Rica 2024 - evento Protégeles
KELA Presentacion Costa Rica 2024 - evento Protégeles
 
Redes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdfRedes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdf
 
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricGlobal Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
 
Trabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnologíaTrabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnología
 
Plan de aula informatica segundo periodo.docx
Plan de aula informatica segundo periodo.docxPlan de aula informatica segundo periodo.docx
Plan de aula informatica segundo periodo.docx
 
trabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdftrabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdf
 
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE  DE TECNOLOGIA E INFORMATICA PRIMARIACLASE  DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIA
 
International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)
 
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
 
9egb-lengua y Literatura.pdf_texto del estudiante
9egb-lengua y Literatura.pdf_texto del estudiante9egb-lengua y Literatura.pdf_texto del estudiante
9egb-lengua y Literatura.pdf_texto del estudiante
 
guía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Josephguía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Joseph
 
EPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveEPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial Uninove
 
Hernandez_Hernandez_Practica web de la sesion 12.pptx
Hernandez_Hernandez_Practica web de la sesion 12.pptxHernandez_Hernandez_Practica web de la sesion 12.pptx
Hernandez_Hernandez_Practica web de la sesion 12.pptx
 
Proyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptxProyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptx
 

Meetup Integración Continua y Jenkins

  • 1. Integración Continua con Jenkins Introducción - 1
  • 2. Antonio Ramón Molina Milla Arquitecto Integración de Sistemas [ARIS]
  • 3. ¿Integración Contínua? [Buena] práctica de desarrollo software donde los miembros de un proyecto integran su trabajo frecuentemente y de forma automática favoreciendo la detección de fallos en las fases más tempranas de desarrollo. Cada integración se verifica con un build SNAPSHOT automático (que incluye la ejecución de pruebas) para detectar errores de integración tan pronto como sea posible. Si la verificación es correcta el SNAPSHOT puede convertirse en RELEASE para avanzar por los distintos entornos de la empresa. Introducción - 3
  • 4. ¿Jenkins? Es el software encargado de orquestar el proceso de Integración contínua. Está basado en Java y es ampliable mediante plugins: - SonarQube - Nexus - Maven - Git Sus funciones principales son: - Compilar el proyecto - Aplicar el control de calidad basándose en los umbrales de Release o Snapshot. - Publicar en Nexus el compilado (.jar, .war, etc). - Realizar los tags necesarios en GIT. Introducción - 4
  • 7. SNAPSHOT y RELEASE SNAPSHOT: Dentro de Maven una instantánea es una versión de un artefacto que está en desarrollo. El código puede ser modificado y vuelto a compilar bajo el mismo nombre. Umbral de pruebas más permisivo. RELEASE: Versión inmutable originada por un SNAPSHOT. Umbral de pruebas más estricto. Dentro de Nexus existirán dos repositorios para garantizar que no se mezclen los dos tipos de versiones y la persistencia de las Releases. Introducción - 7
  • 8. TDD Test-Driven Development Primero diseñamos las pruebas unitarias y posteriormente se desarrolla el código fuente necesario para superarlas. Una vez se han superado se simplifica el código y se refactoriza el código. 1. Se define una funcionalidad. 2. Se escoge el criterio de aceptación más simple y se traduce en una prueba unitaria con resultado fallo. 3. Se escribe el código que hace pasar la prueba. 4. Se ejecutan todas las pruebas automatizadas. 5. Se refactoriza y se limpia el código. Introducción - 8
  • 9. Pruebas Unitarias: Probar cada uno de los métodos del código de forma aislada. Simulando la entrada de datos y verificando la salida obtenida con la esperada. Usaremos: JUnit + Mockito + PowerMock. Regresivas: Verificar que la interacción entre los métodos es correcta. Estas pruebas son dependientes del entorno en el que se ejecutan y suelen lanzarse de forma manual. Integración, estrés, i18N, etc. Introducción - 9
  • 10. Cobertura La cobertura mide el porcentaje de código que es ejecutado dentro de alguna de nuestras pruebas unitarias. No tiene sentido llegar a un 100% de cobertura. Una buena práctica sería pedir el 60% y ajustar en los componentes que sean necesarios incluso desactivar este tipo de análisis en las librerías de terceros. Introducción - 10
  • 12. Sonarqube Aplicación de software libre para la evaluación de código estático basado en Checkstyle, PMD o FindBugs. Introducción - 12 Actualmente existen unas 495 reglas para Java. Que permiten verificar los siguientes puntos en nuestro código:
  • 16. Devolución del mismo valor Introducción - 16
  • 17. Recurso no cerrado tras su uso Introducción - 17
  • 18. Integrantes principales perfiles Introducción - 18 Desarrolladores Quality Assurance Sistemas
  • 19. Sistemas dedicados Introducción - 19 Jenkins Nexus Sonar GIT
  • 20. docker + swarm Sistemas dockerizados Introducción - 20 Serv1 Serv2 Sonar Git Nexus Jenkins 1 Jenkins 2
  • 21. Entornos - Desarrollo: Normalmente la máquina del desarrollador dónde suele tener facilidad para debugar el código desarrollado con acceso a los recursos en local y facilitar las pruebas unitarias. - Preproducción o integración: Entorno donde los nuevos desarrollos conviven con el resto de la aplicación. Es interesante que exista una volcado de datos ofuscados de producción para poder realizar pruebas regresivas y de integración. - Producción: Entorno en el que desplegamos nuestro código probado y validado con anterioridad para mantener un alto nivel de calidad de la aplicación. Introducción - 21
  • 22. Dudas Flujo de desarrollo: Un equipo de desarrolladores planea generar un backend basado en microservicios para nutrir una página web y una posible futura aplicación móvil. Introducción - 22