SlideShare una empresa de Scribd logo
1 de 51
Descargar para leer sin conexión
Integración Continua
L&L
08/06/17
• Hablemos de Integración Continua?
• En que consiste?.
• Beneficios.
• Actividades
• Herramientas.
Agenda
Hablemosde…
<code>Proceso desarrollo de
Software </code>
RIESGO
Frasescomo….
Pruebas enProducción??
PruebasDEFICIENTES
ok,noincluyamospruebas…
Ysinosencontramosconun“BUG"
Depuremoselcódigo…
Sencillo?
bueno…ahoraIntegremosnuestro código
Resolviendoconflictos
engit…
Pain?
MorePain!
mergedone!!
Y ahora?
INTEGRACIÓN CONTINUA
Un poco de histori@
Kent Beck
1999
• Integrar código frecuentemente en el branch
principal.
• Múltiples integraciones al día.
• La Integración debe ser verificada por pruebas
automatizadas.
• Detectar errores de integración
tempranamente.
Martin Fowler
2006
• Mantener un repositorio único.
• Automatiza la construcción de artefactos.
• Haz test para comprobar la construcción.
• Todos los commits van al branch principal todos los
días.
• Cada commit debe construir el branch principal en un
servidor de integración.
• Corregir compilaciones rotas inmediatamente.
• Mantener la compilación rápida.
• Testear en un clon del entorno de producción.
• Hacerlo fácil, para que cualquiera pueda tener el
último ejecutable.
• Todos pueden ver lo que está pasando.
• Automatizar el deployment.
INTEGRACIÓN CONTINUA
“ Práctica de desarrollo software donde los miembros del equipo
integran su trabajo frecuentemente, al menos una vez al día. Cada
integración se verifica con un build automático (que incluye la
ejecución de pruebas) para detectar errores de integración tan pronto
como sea posible”
• Reducir el riesgo en el desarrollo del producto.
• Minimizar y reducir problemasdeintegración.
• Mejorar la visibilidad del estado del producto de software.
• Saber en todo momento cual es el estado de nuestro
código.
• Acelerar la detección de fallas.
• Disminuir el tiempo dedicado a depurar testear y corregir
errores.
• Evitar la espera para averiguar si un código funciona.
• Conlleva una mejora de la calidad del software.
• Mejora la calidad del equipo.
“Registrar (commit) su código al
menos una vez al día.”
“No registrar códigos con error”
No registrar código sin probar.
“No generar nuevas versiones con
código que NO funciona”
“No pueden terminar sus
actividades del día hasta haber
registrado su código y que el
sistema se integre exitosamente”
“Si rompes tests que no has
escrito tú con tu código, es tu
responsabilidad arreglarlos”
Actividades CI
• Cada desarrollador obtiene una copia del código en su espacio de trabajo
privado.
• Cuando un desarrollador termina su trabajo, envía sus cambios al
repositorio.
• El servidor de integración continua monitorea el repositorio y detecta los
cambios automáticamente.
• El servidor (de integración continua) integra el sistema y corre las pruebas
(unitarias, de integración, mutación, etc.)
• El servidor publica los artefactos ejecutables.
• El servidor asigna una etiqueta a la nueva versión y su ejecutable.
• El servidor informa al equipo el resultado de la integración.
• Si la integración o pruebas fallan, el servidor alerta al equipo y el equipo lo
resuelve lo antes posible.
• Se continúa integrando frecuentemente a lo largo del proyecto.
ActividadesdeCI
El círculo virtuoso.
Herramientas
#graci@s

Más contenido relacionado

La actualidad más candente

Software Testing Life Cycle
Software Testing Life CycleSoftware Testing Life Cycle
Software Testing Life Cycle
Udayakumar Sree
 
DevSecOps Training Bootcamp - A Practical DevSecOps Course
DevSecOps Training Bootcamp - A Practical DevSecOps CourseDevSecOps Training Bootcamp - A Practical DevSecOps Course
DevSecOps Training Bootcamp - A Practical DevSecOps Course
Tonex
 

La actualidad más candente (20)

Fundamentos de Testes de Software
Fundamentos de Testes de SoftwareFundamentos de Testes de Software
Fundamentos de Testes de Software
 
SCS DevSecOps Seminar - State of DevSecOps
SCS DevSecOps Seminar - State of DevSecOpsSCS DevSecOps Seminar - State of DevSecOps
SCS DevSecOps Seminar - State of DevSecOps
 
Software Testing Life Cycle (STLC) | Software Testing Tutorial | Edureka
Software Testing Life Cycle (STLC) | Software Testing Tutorial | EdurekaSoftware Testing Life Cycle (STLC) | Software Testing Tutorial | Edureka
Software Testing Life Cycle (STLC) | Software Testing Tutorial | Edureka
 
Introduction to DevSecOps
Introduction to DevSecOpsIntroduction to DevSecOps
Introduction to DevSecOps
 
STLC
STLCSTLC
STLC
 
Devops Devops Devops, at Froscon
Devops Devops Devops, at FrosconDevops Devops Devops, at Froscon
Devops Devops Devops, at Froscon
 
Software Testing Life Cycle
Software Testing Life CycleSoftware Testing Life Cycle
Software Testing Life Cycle
 
DevSecOps in Baby Steps
DevSecOps in Baby StepsDevSecOps in Baby Steps
DevSecOps in Baby Steps
 
Ingenieria requerimientos
Ingenieria requerimientosIngenieria requerimientos
Ingenieria requerimientos
 
Cypress report
Cypress reportCypress report
Cypress report
 
Software testing course - Manual
Software testing course - ManualSoftware testing course - Manual
Software testing course - Manual
 
Jenkins - From Continuous Integration to Continuous Delivery
Jenkins - From Continuous Integration to Continuous DeliveryJenkins - From Continuous Integration to Continuous Delivery
Jenkins - From Continuous Integration to Continuous Delivery
 
Agile Software Development Model
Agile Software Development ModelAgile Software Development Model
Agile Software Development Model
 
DevSecOps Implementation Journey
DevSecOps Implementation JourneyDevSecOps Implementation Journey
DevSecOps Implementation Journey
 
Software Testing Life Cycle
Software Testing Life CycleSoftware Testing Life Cycle
Software Testing Life Cycle
 
Test planning
Test planningTest planning
Test planning
 
Introdução ao TDD
Introdução ao TDDIntrodução ao TDD
Introdução ao TDD
 
Transforming Organizations with CI/CD
Transforming Organizations with CI/CDTransforming Organizations with CI/CD
Transforming Organizations with CI/CD
 
DevSecOps Training Bootcamp - A Practical DevSecOps Course
DevSecOps Training Bootcamp - A Practical DevSecOps CourseDevSecOps Training Bootcamp - A Practical DevSecOps Course
DevSecOps Training Bootcamp - A Practical DevSecOps Course
 
TESTING STRATEGY.ppt
TESTING STRATEGY.pptTESTING STRATEGY.ppt
TESTING STRATEGY.ppt
 

Similar a Integración Continua

Introducción a testing en php
Introducción a testing en phpIntroducción a testing en php
Introducción a testing en php
Ismael Ambrosi
 

Similar a Integración Continua (20)

Integración y Entrega Continua con Visual Studio Online
Integración y Entrega Continua con Visual Studio OnlineIntegración y Entrega Continua con Visual Studio Online
Integración y Entrega Continua con Visual Studio Online
 
Continuous Integration - Going from Zero to Hero
Continuous Integration - Going from Zero to HeroContinuous Integration - Going from Zero to Hero
Continuous Integration - Going from Zero to Hero
 
Integracion continua
Integracion continuaIntegracion continua
Integracion continua
 
Jenkins ci + selenium
Jenkins ci + seleniumJenkins ci + selenium
Jenkins ci + selenium
 
¿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?
 
Trabajando con código heredado y ser feliz
Trabajando con código heredado y ser felizTrabajando con código heredado y ser feliz
Trabajando con código heredado y ser feliz
 
Victor sanchez saturdaymadrid2020
Victor sanchez saturdaymadrid2020Victor sanchez saturdaymadrid2020
Victor sanchez saturdaymadrid2020
 
Betabeers - continuous deployment
Betabeers - continuous deploymentBetabeers - continuous deployment
Betabeers - continuous deployment
 
Metodologias clase 6 - mejora continua xp
Metodologias   clase 6 - mejora continua xpMetodologias   clase 6 - mejora continua xp
Metodologias clase 6 - mejora continua xp
 
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
 
Agiles 2009 - Integracion Continua: Dando los primeros pasos a traves de un e...
Agiles 2009 - Integracion Continua: Dando los primeros pasos a traves de un e...Agiles 2009 - Integracion Continua: Dando los primeros pasos a traves de un e...
Agiles 2009 - Integracion Continua: Dando los primeros pasos a traves de un e...
 
Ágiles 2009 - Integración Continua: Dando los primeros pasos a través de un e...
Ágiles 2009 - Integración Continua: Dando los primeros pasos a través de un e...Ágiles 2009 - Integración Continua: Dando los primeros pasos a través de un e...
Ágiles 2009 - Integración Continua: Dando los primeros pasos a través de un e...
 
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
 
Jenkins, no me rompas los builds!
Jenkins, no me rompas los builds!Jenkins, no me rompas los builds!
Jenkins, no me rompas los builds!
 
Clean code 9
Clean code 9Clean code 9
Clean code 9
 
Proceso desarrollo de fábrica de software
Proceso desarrollo de fábrica de softwareProceso desarrollo de fábrica de software
Proceso desarrollo de fábrica de software
 
Introducción a testing en php
Introducción a testing en phpIntroducción a testing en php
Introducción a testing en php
 
Desarrollo con Java y metodologías agiles
Desarrollo con Java y metodologías agilesDesarrollo con Java y metodologías agiles
Desarrollo con Java y metodologías agiles
 
Modelo Integración Continua en entornos de QA
Modelo Integración Continua en entornos de QAModelo Integración Continua en entornos de QA
Modelo Integración Continua en entornos de QA
 
Bye bye jenkins welcome bots
Bye bye jenkins welcome botsBye bye jenkins welcome bots
Bye bye jenkins welcome bots
 

Más de Jose Patricio Bovet Derpich

Más de Jose Patricio Bovet Derpich (10)

Scrum overview
Scrum overview Scrum overview
Scrum overview
 
Springboot Overview
Springboot  OverviewSpringboot  Overview
Springboot Overview
 
Diseño de la interfaz de usuario
Diseño de la interfaz de usuarioDiseño de la interfaz de usuario
Diseño de la interfaz de usuario
 
Principios de diseño de la arquitectura del software
Principios de diseño de la arquitectura del softwarePrincipios de diseño de la arquitectura del software
Principios de diseño de la arquitectura del software
 
Principios diseño del software
Principios diseño del software Principios diseño del software
Principios diseño del software
 
POO1501 - Composición java
POO1501 - Composición javaPOO1501 - Composición java
POO1501 - Composición java
 
POO1501 - Composición java
POO1501 - Composición javaPOO1501 - Composición java
POO1501 - Composición java
 
Conociendo Nuestro Fua interno
Conociendo Nuestro Fua internoConociendo Nuestro Fua interno
Conociendo Nuestro Fua interno
 
GitHub y el software libre
GitHub y el software libreGitHub y el software libre
GitHub y el software libre
 
Apache Servicemix
Apache ServicemixApache Servicemix
Apache Servicemix
 

Integración Continua

  • 2. • Hablemos de Integración Continua? • En que consiste?. • Beneficios. • Actividades • Herramientas. Agenda
  • 5.
  • 6.
  • 7.
  • 14.
  • 18.
  • 19.
  • 21. Pain?
  • 25.
  • 26.
  • 28. Un poco de histori@
  • 30. • Integrar código frecuentemente en el branch principal. • Múltiples integraciones al día. • La Integración debe ser verificada por pruebas automatizadas. • Detectar errores de integración tempranamente.
  • 32. • Mantener un repositorio único. • Automatiza la construcción de artefactos. • Haz test para comprobar la construcción. • Todos los commits van al branch principal todos los días. • Cada commit debe construir el branch principal en un servidor de integración. • Corregir compilaciones rotas inmediatamente. • Mantener la compilación rápida. • Testear en un clon del entorno de producción. • Hacerlo fácil, para que cualquiera pueda tener el último ejecutable. • Todos pueden ver lo que está pasando. • Automatizar el deployment.
  • 33.
  • 34. INTEGRACIÓN CONTINUA “ Práctica de desarrollo software donde los miembros del equipo integran su trabajo frecuentemente, al menos una vez al día. Cada integración se verifica con un build automático (que incluye la ejecución de pruebas) para detectar errores de integración tan pronto como sea posible”
  • 35.
  • 36. • Reducir el riesgo en el desarrollo del producto. • Minimizar y reducir problemasdeintegración. • Mejorar la visibilidad del estado del producto de software. • Saber en todo momento cual es el estado de nuestro código. • Acelerar la detección de fallas. • Disminuir el tiempo dedicado a depurar testear y corregir errores. • Evitar la espera para averiguar si un código funciona. • Conlleva una mejora de la calidad del software. • Mejora la calidad del equipo.
  • 37.
  • 38. “Registrar (commit) su código al menos una vez al día.”
  • 39. “No registrar códigos con error” No registrar código sin probar.
  • 40. “No generar nuevas versiones con código que NO funciona”
  • 41. “No pueden terminar sus actividades del día hasta haber registrado su código y que el sistema se integre exitosamente”
  • 42. “Si rompes tests que no has escrito tú con tu código, es tu responsabilidad arreglarlos”
  • 44. • Cada desarrollador obtiene una copia del código en su espacio de trabajo privado. • Cuando un desarrollador termina su trabajo, envía sus cambios al repositorio. • El servidor de integración continua monitorea el repositorio y detecta los cambios automáticamente. • El servidor (de integración continua) integra el sistema y corre las pruebas (unitarias, de integración, mutación, etc.) • El servidor publica los artefactos ejecutables. • El servidor asigna una etiqueta a la nueva versión y su ejecutable. • El servidor informa al equipo el resultado de la integración. • Si la integración o pruebas fallan, el servidor alerta al equipo y el equipo lo resuelve lo antes posible. • Se continúa integrando frecuentemente a lo largo del proyecto. ActividadesdeCI
  • 46.
  • 48.
  • 49.
  • 50.