Adrián Eidelman Kinetica Solutions [email_address] Twitter: @aeidelman Rubén Altman Kinetica Solutions [email_address] Twi...
<ul><li>Bienvenidos – Welcome – Bem-vindos </li></ul><ul><li>Términos traducidos al spanglish </li></ul><ul><li>A quién es...
<ul><li>Integración continua es … </li></ul><ul><li>Esquema de un ambiente de IC </li></ul><ul><li>Ventajas de la integrac...
<ul><li>Una  práctica de desarrollo  de software en la cual los miembros de un equipo  integran frecuentemente  su trabajo...
<ul><li>…  cada integración es verificada por un  build automático  (incluyendo tests) para detectar errores de integració...
<ul><li>Generalmente abarcan: </li></ul><ul><ul><li>Compilación </li></ul></ul><ul><ul><li>Testeo </li></ul></ul><ul><ul><...
Esquema de un ambiente de IC
<ul><li>Los desarrolladores ejecutan builds privados </li></ul><ul><li>Los desarrolladores commitean al repositorio al men...
<ul><li>Reduce riesgos </li></ul><ul><li>Reduce la repetición de tareas manuales </li></ul><ul><li>Genera software despleg...
 
Ejemplo práctico
<ul><li>Chequear cambios en línea base </li></ul><ul><li>Compilar cambios </li></ul><ul><li>Ejecutar tests unitarios </li>...
<ul><li>Control de Versiones </li></ul><ul><ul><li>SVN, CVS, Visual SourceSafe, ClearCase </li></ul></ul><ul><li>Servidore...
<ul><li>Commitear cambios frecuentemente </li></ul><ul><li>No commitear código roto </li></ul><ul><li>Arreglar los builds ...
<ul><li>“ Continuous Integration, Improving Software Quality and Reducing Risk”, P. Duvall </li></ul><ul><li>http://www. i...
 
 
Próxima SlideShare
Cargando en…5
×

Ágiles 2009 - Integración Continua: Dando los primeros pasos a través de un ejemplo práctico

626 visualizaciones

Publicado el

Los primeros pasos hasta configurar un ambiente de Integración Continua son siempre complicados, pero una vez creado el ambiente de integración continua ya no imaginamos nuestro trabajo sin él. En esta charla se plantearán los conceptos básicos y teóricos de una de las prácticas más conocidas de Extreme Programming y seguidamente se mostrará un ejemplo práctico paso a paso para la implementación de un ambiente de CI utilizando herramientas como Cruise Control, CC Tray, NUnit y Selenium.

Publicado en: Tecnología
0 comentarios
2 recomendaciones
Estadísticas
Notas
  • Sé el primero en comentar

Sin descargas
Visualizaciones
Visualizaciones totales
626
En SlideShare
0
De insertados
0
Número de insertados
31
Acciones
Compartido
0
Descargas
0
Comentarios
0
Recomendaciones
2
Insertados 0
No insertados

No hay notas en la diapositiva.
  • A build may consist of the compilation, testing, inspection, and deployment - among other things. A build acts as the process for putting source code together and verifying that the software works as a cohesive unit. La idea es saber si el software en su conjunto funciona bien, es por eso que tener tests automaticos es fundamental. Hacer una compilacion continua no tiene poco o ningun valor
  • Describir los componentes tipicos de un ambiente de CI y los pasos que se llevan a cabo: Desarrolladores corren builds privados Commitean codigo al repositorio El Servidor de IC verifica constantemente si hay nuevas versiones del software, y cuando hay dispara una serie de tareas definidas en los scripts de build Tareas: compilacion, integracion de bd, ejecucion de tests, ejecucion de inspecciones, deployment en caso que fuera necesario Los resultados son revisados
  • - Todos los desarrolladores corren builds privados en sus estacions de trabajo antes de comittear código al repositorio de control de versiones, para asegurar que sus cambios no rompan el build de integracion - Los desarrolladores comitean al repositorio al menos una vez al dia - Builds de integracion ocurren varias veces al dia en una maquina separada de builds - 100% de los tests deben pasar para cada build - Corregir builds rotos - Algunos desarrolladores revisan reportes generados en el build, como estandares de codigo o cobertura de los tests, para buscar areas de mejora.
  • Continuous Integration increases your opportunities for feedback. Through it, you learn the state of the project several times a day. CI can be used to reduce the time between when a defect is introduced and when it is fixed, thus improving overall software quality. CI increases the collective confidence of teams and lessens the amount of human activity needed on projects, because it&apos;s often a hands-off process that runs whenever your software changes. CI involves much more than a tool. Requiere compromiso del equipo en relacion a actividades como commitear frecuentemente al repositorio, arreglar los broken builds inmediatamente o usar una maquina de build separada.
  • 10/14/09 12:51 © 2007 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered trademarks and/or trademarks in the U.S. and/or other countries. The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation. Because Microsoft must respond to changing market conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after the date of this presentation. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.
  • Aclarar que herramientas se van a usar, y que otras no
  • Mencionar rápidamente otras herramientas. Mencionar que hay un capitulo completo en el libro de IC.
  • 10/14/09 12:51 © 2007 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered trademarks and/or trademarks in the U.S. and/or other countries. The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation. Because Microsoft must respond to changing market conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after the date of this presentation. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.
  • 10/14/09 12:51 © 2007 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered trademarks and/or trademarks in the U.S. and/or other countries. The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation. Because Microsoft must respond to changing market conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after the date of this presentation. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.
  • Ágiles 2009 - Integración Continua: Dando los primeros pasos a través de un ejemplo práctico

    1. 1. Adrián Eidelman Kinetica Solutions [email_address] Twitter: @aeidelman Rubén Altman Kinetica Solutions [email_address] Twitter: @raltman
    2. 2. <ul><li>Bienvenidos – Welcome – Bem-vindos </li></ul><ul><li>Términos traducidos al spanglish </li></ul><ul><li>A quién está dirigida la charla? </li></ul><ul><ul><li>A todos aquellos que se están iniciando en el tema. </li></ul></ul><ul><ul><li>Desarrolladores, testers, managers, … </li></ul></ul><ul><ul><li>A todo aquel que trata el desarrollo de software de forma PROFESIONAL. </li></ul></ul>Antes de arrancar
    3. 3. <ul><li>Integración continua es … </li></ul><ul><li>Esquema de un ambiente de IC </li></ul><ul><li>Ventajas de la integración continua </li></ul><ul><li>Construcción paso a paso de ambiente IC </li></ul><ul><li>7 buenas prácticas </li></ul><ul><li>Preguntas </li></ul>Agenda
    4. 4. <ul><li>Una práctica de desarrollo de software en la cual los miembros de un equipo integran frecuentemente su trabajo, generalmente cada persona integra al menos de forma diaria resultando en múltiples integraciones por día … </li></ul>Integración continua es … (según Martin Fowler)
    5. 5. <ul><li>… cada integración es verificada por un build automático (incluyendo tests) para detectar errores de integración lo más rápido posible. Muchos equipos encuentran que este acercamiento reduce significativamente los errores de integración y permite a los equipos desarrollar software más rápidamente. </li></ul>Integración continua es … (según Martin Fowler)
    6. 6. <ul><li>Generalmente abarcan: </li></ul><ul><ul><li>Compilación </li></ul></ul><ul><ul><li>Testeo </li></ul></ul><ul><ul><li>Inspección </li></ul></ul><ul><ul><li>Despliegue </li></ul></ul><ul><ul><li>… </li></ul></ul><ul><li>Verificar que el software en su conjunto funciona como se espera </li></ul><ul><li>Integración continua no es compilación continua </li></ul>Integración continua es … Builds automáticos
    7. 7. Esquema de un ambiente de IC
    8. 8. <ul><li>Los desarrolladores ejecutan builds privados </li></ul><ul><li>Los desarrolladores commitean al repositorio al menos una vez al día </li></ul><ul><li>Builds de integración ocurren varias veces al día </li></ul><ul><li>100% de los tests deben pasar </li></ul><ul><li>Algunos desarrolladores revisan reportes en busca de posibles mejoras </li></ul><ul><li>IC es más que una herramienta </li></ul>Esquema de un ambiente de CI Generalmente esto implica …
    9. 9. <ul><li>Reduce riesgos </li></ul><ul><li>Reduce la repetición de tareas manuales </li></ul><ul><li>Genera software desplegable de forma constante </li></ul><ul><li>Aumenta la visibilidad del proyecto </li></ul><ul><li>Genera confianza del equipo sobre el producto </li></ul>Ventajas de la integración continua
    10. 11. Ejemplo práctico
    11. 12. <ul><li>Chequear cambios en línea base </li></ul><ul><li>Compilar cambios </li></ul><ul><li>Ejecutar tests unitarios </li></ul><ul><li>Ejecutar tests IU </li></ul><ul><li>Analizar la cobertura de las pruebas </li></ul><ul><li>Analizar reglas de código fuente </li></ul>Ejemplo práctico Vamos a realizar los siguientes pasos
    12. 13. <ul><li>Control de Versiones </li></ul><ul><ul><li>SVN, CVS, Visual SourceSafe, ClearCase </li></ul></ul><ul><li>Servidores de IC </li></ul><ul><ul><li>CruiseControl.NET, CruiseControl, Hudson </li></ul></ul><ul><li>Herramientas de Build </li></ul><ul><ul><li>MsBuild, Ant, NAnt, Rake </li></ul></ul><ul><li>Testing </li></ul><ul><ul><li>xUnit, Selenium, WebAii, Ranorex </li></ul></ul><ul><li>Inspección </li></ul><ul><ul><li>FxCop, Simian, xDepend </li></ul></ul>Ejemplo práctico Otras herramientas
    13. 14. <ul><li>Commitear cambios frecuentemente </li></ul><ul><li>No commitear código roto </li></ul><ul><li>Arreglar los builds rotos inmediatamente </li></ul><ul><li>Crear tests automáticos </li></ul><ul><li>Todos los tests e inspecciones deben pasar </li></ul><ul><li>Ejecutar builds privados </li></ul><ul><li>Evitar traerse código roto </li></ul>7 buenas prácticas de la IC
    14. 15. <ul><li>“ Continuous Integration, Improving Software Quality and Reducing Risk”, P. Duvall </li></ul><ul><li>http://www. integratebutton .com </li></ul><ul><li>http:// ccnet .thoughtworks.com </li></ul><ul><li>http:// martinfowler .com </li></ul><ul><li>http://groups.yahoo.com/group/ foro-agiles </li></ul><ul><li>[email_address] - solutions.com / twitter: @aeidelman </li></ul><ul><li>[email_address] / twitter: @raltman </li></ul>Recursos

    ×