Este documento describe la integración continua y las herramientas necesarias para implementarla. La integración continua automatiza tareas repetitivas como compilar y ejecutar pruebas para detectar errores tempranamente. Se necesitan herramientas como Subversion para control de versiones, Maven para compilar y generar builds, Nexus como repositorio local de Maven, Hudson para automatizar tareas, y Sonar para métricas y análisis de código. La integración continua reduce tiempos de integración y ayuda a encontrar errores más rápido.
Jenkins - don't break my builds! is an introductory talk in spanish I gave at the PHP Conference 2013 in Argentina. I spoke about how I met Contintinuous Integration at Google in 2005, and how my experience has been since. I also gave tips on how to start using it in projects that have no "integration" to speak of (such as most PHP projects).
Jenkins - don't break my builds! is an introductory talk in spanish I gave at the PHP Conference 2013 in Argentina. I spoke about how I met Contintinuous Integration at Google in 2005, and how my experience has been since. I also gave tips on how to start using it in projects that have no "integration" to speak of (such as most PHP projects).
Curso de test driven development usando AngularJS, Jasmine, Karma, Protractor, y Gulp para automatizar todo.
Codigo del proyecto de ejemplo:
https://github.com/rodrigopivi/angularComponentStarter
Las Pruebas Unitarias, son una técnica esencial en la búsqueda de generar software con calidad. Ejemplo de una prueba de unidad con código java utilizando NetBeans y JUnit
¿Cómo poner software de calidad en manos del usuario de forma rápida?Micael Gallego
Ciclo de vida del software, repositorios de código, análisis estático de código, pruebas software, integración continua, entrega continua, despliegue continuo, DevOps.
Con Selenium 2.0 y Webdriver la ejecución de TDD y BDD se ve beneficiado por las fortalezas de ambos proyectos.
Introduciremos el API Java basado en PageObjects y veremos ejemplos de creación de pruebas cross-browser para un interfaz de aplicación web con Ajax
Introduccion a las novedades de Team Foundation Service, basada en las presentaciones del TechEd North America 2012 http://channel9.msdn.com/Events/TechEd/NorthAmerica/2012
Introducción al análisis estático de código en java para mejorar la calidad del software tomando como referencia mejores prácticas, estándares y optimización de código.
Curso de test driven development usando AngularJS, Jasmine, Karma, Protractor, y Gulp para automatizar todo.
Codigo del proyecto de ejemplo:
https://github.com/rodrigopivi/angularComponentStarter
Las Pruebas Unitarias, son una técnica esencial en la búsqueda de generar software con calidad. Ejemplo de una prueba de unidad con código java utilizando NetBeans y JUnit
¿Cómo poner software de calidad en manos del usuario de forma rápida?Micael Gallego
Ciclo de vida del software, repositorios de código, análisis estático de código, pruebas software, integración continua, entrega continua, despliegue continuo, DevOps.
Con Selenium 2.0 y Webdriver la ejecución de TDD y BDD se ve beneficiado por las fortalezas de ambos proyectos.
Introduciremos el API Java basado en PageObjects y veremos ejemplos de creación de pruebas cross-browser para un interfaz de aplicación web con Ajax
Introduccion a las novedades de Team Foundation Service, basada en las presentaciones del TechEd North America 2012 http://channel9.msdn.com/Events/TechEd/NorthAmerica/2012
Introducción al análisis estático de código en java para mejorar la calidad del software tomando como referencia mejores prácticas, estándares y optimización de código.
Presentación utilizada en el Centro Guadalinfo de Sanlúcar la Mayor para la realización del Taller "Sacale partido a tu Android". Hablamos de la Bateria
Qualimatest - Systemintegrator Von VISION & AUTOMATION für die MedizintechnikIvan Meissner
Einzigartige Lösungen für die Qualitätskontrolle
Qualimatest AG:
Ihr Referenzpartner
Die industrielle Bildverarbeitung ermöglicht die Vermessung des Sichtbaren. Diese Technologie wird im Speziellen für Anwendungen in der Qualitätskontrolle und in der Produktionsautomation eingesetzt.
Eine globale Sichtweise
Qualimatest AG (QMT) ist ein schweizer Marktleader für die Realisierung von Bildverarbeitungs- und Automationssystemen. Seit Ihrer Gründung im Jahr 1989, hat die Unternehmung für eine renomierte Kundschaft auf der ganzen Welt und aus allen Industriezweigen (Uhren, Medizin, Automotiv, Eisenbahn) hunderte von Systemen entwickelt, installiert und unterhalten.
Ein interdisziplinäres Team
Die schweizer Qualität in allen QMT-Dienstleistungen wird von einer interdiszipläneren Mannschaft von Ingenieuren und Naturwissenschaftlern mit ausgezeichneter Fachkompetenz, Dynamik und Kreativität erbracht. Im engen Kontakt mit dem Kunden stellt das Entwicklerteam all seine Erfahrung und sein Spezialwissen zusammen und treibt mit vereinten Kräften Projekte voran, die von allen Beteiligten gleichzeitig Kompromissbereitschaft, Flexibilität, Durchsetzungswille, Objektivität und Effizienz abverlangen.
Eine Plattform ”Swiss Made“
Um innovative und leistungsfähige Lösungen anbieten zu können, hat QMT seine eigene Plattform mit dem Namen QMT Vision Inspector entwickelt. Aus dieser Plattform leitet sich eine Auswahl von Ausrüstungen ab, die eine leistungsfähige Standardlösung darstellen, insbesondere für Anwendungen zur Qualitätssicherung der Produkte, die unsere Kunden fertigen.
Beneficios de implementar Integración Continua en el proceso de desarrollo en equipos ya formados, un blanqueo de que todo no es perfecto, pero que mejora la calidad de código y elimina incertidumbres entre los programadores. Instalación y practica de su implementación.
Desafíos de Operaciones e Infraestructura.
Qué es Infraestructura como Código (Infrastructure as Code).
Beneficios de Infraestructura como Código.
Herramientas de Gestión de Configuración e Infraestructura.
Cómo probar la Infraestructura como Código.
Generación de ambientes de manera repetible.
Interrogar el estado real del servidor.
Herramientas de pruebas de integración para el código de infraestructura.
Demostración: Implementar y probar incrementalmente módulo para provisionar un servidor real.
Porqué Continuous Delivery y DevOps necesitan IAC.
Presentación hecha en el Agile Open Lima VII en la Pontificia Universidad Católica del Perú, se introduce la necesidad de la Integración Continua en los procesos de desarrollo asi como los conceptos basicos alrededor de ella
3. Los proyectos de software implican un gran número de archivos que necesitan ser integrados juntos para construir un solo producto. Este proceso puede tardar tiempo valioso para nuestro proyecto, además realizar esta tarea es repetitiva. Luego de esta integración algún código desarrollado por otro desarrollador puede causar conflictos con otro código que ya está implementado. Introducción
4. El objetivo es automatizar tareas que son repetitivas (compilar, ejecución de pruebas, construcción, deployar, documentación). Y que estas tareas sean ejecutadas lo más a menudo posible y de manera automática para así poder detectar fallos cuanto antes. Te permite estar siempre informado sobre el estado de tu proyecto. Integración Continua
5. Integración continua La Integración Continua está asociado con las metodologías de programación extrema (XP) y desarrollo ágil. Es una metodología centrada a disminuir la carga de trabajo a los desarrolladores y la utilización de una mayor potencia del servidor http://www.martinfowler.com/articles/continuousIntegration.html
6. Subversion Nexus Sonar Hudson MySql Internet Developer FeedBack Developer Developer Commit Commit Commit
7. Que Necesitamos Software - Control de Versiones (SVN) - Herramienta para generar Build y automización de tareas (Maven - Hudson) - Repositorio local Maven (Nexus) - Métricas y/o reportes de Analisis de código (Sonar) Hardware - Servidor dedicado a IC - Espacio en el disco
8. Controlador de Versiones Subversion sistema de control de versiones que administra y guarda cualquier fichero,mantiene un historial de cambios realizados. Nos permitirá tener nuestro código centralizado, descargar, actualizar y subir código que se encuentra en este repositorio. Hacer frecuentes commits acelerará la construcción del proyecto, además de encontrar rápido errores.
9. Maven Herramienta para la gestión y construcción de proyectos Java. Es la Base que se tiene para trabajar para la IC (con proyectos Java), ya que cuenta con comandos de compilacion, deploy, test, etc. Con un solo comando puede construir un proyecto .
10. Utiliza un Project Object Model (POM) para describir el proyecto de software a construir, sus dependencias de otros módulos y componentes externo, y el orden de construcción de los elementos.
11. Puedes generar un repositorio local para los Jars (o librerias), donde estarán almacenados localmente o remotamente en un servidor.
12. Nexus Nexus es un administrador visual de repositorios para Maven. Nexus actúa como un repositorio de Maven público. Esto significa que los artefactos (jars) y sus dependencias, sólo tienen que descargar una vez, y después se descargan del Nexus.
14. Hudson Herramienta open source que nos ayuda a monotorizar la ejecución de tareas repetitivas como el compilar un proyecto cada cierto tiempo. Además se enfoca en la construcción y prueba los proyectos de software de forma continua y en monitorizar la ejecución de tareas ejecutadas externamente. Se integra fácilmente con Maven y tiene un sin numero de plugin que se pueden utilizar.
15.
16. Sonar Podemos controlar, lo que podemos medir. Permite la verificación de la calidad del código java, calcula y muestra en formato web métricas de nuestros proyecto. Herramientas como PMD, CheckStyle, FindBugs, Cobertura, etc; ya vienen embebidas en Sonar.
18. Ventajas - Reducción del tiempo de integración. - Detección de errores lo más pronto posible. - Pruebas inmediatas tras un cambio en el código. - Disponibilidad del código para test, demos, etc. Desventajas - Necesidad de un servidor dedicado para IC. - El impacto inmediato al subir código erróneo provoca que los desarrolladores no hagan tantos commits como sería conveniente como copia de seguridad
19. Conclusiones - La IC está enfocada a disminuir el riesgo y a la detención y solución temprana de problemas. - La IC nos brindará información en todo momento. - El éxito de la IC esta fuertemente ligada con las serie de pruebas (Cobertura) que se tiene en el proyecto. - Permite una rápida retroalimentación de nuestro proyecto.