¿Por qué la integración continua?
La mayor ventaja de la integración continua La integración continua anima a los desarrolladores de proyectos a confirmar (registrar) con frecuencia sus cambios en el código fuente en un único repositorio de código fuente y verificar que estos cambios no interrumpan el proyecto, incluido el. siguientes puntos clave:
Acceso a un único repositorio de código fuente, todo el código fuente se almacena en una única ubicación (sistema de control de código fuente), todos pueden acceder al último código fuente (así como a versiones anteriores)
Se admiten scripts de compilación automatizados, lo que hace que el proceso de creación sea completamente automatizado y cualquiera puede crear el sistema con un solo comando.
Las pruebas están completamente automatizadas, lo que requiere que los desarrolladores proporcionen un código de autoprueba. para que cualquiera pueda ejecutar un conjunto completo de pruebas del sistema con un solo comando
Proporciona capacidades de creación de maestros para que cualquiera pueda ejecutar un conjunto completo de pruebas del sistema con un solo comando para iniciar la creación de maestros. /p>
Se anima a los desarrolladores a enviar (registrar) código modificado con frecuencia.
La clave para la integración continua es la automatización completa; la lectura del código fuente, la vinculación, las pruebas y todo el proceso de creación. debe ser automatizado. Para crear un éxito, cada paso en el proceso de automatización debe estar libre de errores, y el paso más importante es la prueba; solo la creación que pasa la prueba es una creación exitosa. Para la integración, la creación ya no es solo la compilación y vinculación tradicionales, sino que también incluye la autoprueba. El código de autoprueba se envía al mismo tiempo que el desarrollador envía el código fuente. Es una prueba unitaria para el código fuente (fuente). desde O llamado Prueba de aceptación de integración, Prueba de verificación de compilación o BVT en Integración continua Las pruebas BVT son la base de la calidad y el equipo de control de calidad no percibe la existencia de BVT, solo prueban compilaciones exitosas, p.
Las pruebas BVT deben ser lo más detalladas posible para que se puedan descubrir más problemas y la información de retroalimentación obtenida pueda ser más rica. La prueba debe ejecutarse completamente para que la información de retroalimentación sea completa en lugar de abandonar la prueba. proceso cuando se encuentran errores.
En comparación con la creación diaria, la integración continua también tiene las siguientes características:
La integración continua enfatiza la frecuencia de la integración, que es mucho mayor que la creación diaria. Actualmente, la mejor recomendación es La. La práctica es integrar cada hora.
La integración continua enfatiza la retroalimentación oportuna. El objetivo de la creación diaria es obtener una versión estable utilizable, mientras que la integración continua enfatiza proporcionar retroalimentación rápida a los desarrolladores después de una falla en la integración. Por supuesto, el resultado de una creación exitosa es obtener una versión estable.
La creación diaria no enfatiza la frecuencia con la que los desarrolladores verifican el código fuente, mientras que la integración continua alienta y apoya a los desarrolladores a realizar cambios en el código fuente lo más rápido posible y obtener comentarios lo más rápido posible.
A partir de las características de la integración continua en comparación con la construcción diaria enumeradas anteriormente, podemos ver claramente que las dos palabras frecuencia y retroalimentación aparecen con mucha frecuencia, y la integración continua tiene otra La idea básica contraintuitiva es que la integración frecuente es mejor que la integración esporádica.
Martin Fowler cree que para la integración continua, cuanto mayor sea la frecuencia de la integración, mejor será el efecto. Si la integración es poco frecuente (menos de una vez al día), entonces la integración es algo doloroso si la integración es solo una vez a la semana (una. semana o incluso un mes), esperar hasta la etapa de integración para descubrir el error y luego buscar la causa del error le costará mucho tiempo y energía, y este enfoque es un poco como el modelo de integración tradicional, que ejecuta en contra de la intención original de una integración continua.
Según Martin Fowler, el aumento de errores y tiempo del proyecto no es lineal, sino proporcional al cuadrado del tiempo. Cuanto más tiempo pase entre integraciones, más errores esperará, más trabajo dedicará a resolverlos y cuanto más trabajo realice, más querrá posponer la integración para más adelante. Cuanto más trabajo pongas, más tentado estarás de posponer la integración para más tarde en un intento de solucionar el problema de una vez por todas, y cuantos más errores encuentres, más trabajo requerirá la próxima integración. y cuanto más sientas el dolor de la integración, más querrás posponerlo y terminarás en un círculo vicioso.
Entonces, si la consolidación es dolorosa, entonces tal vez deberías hacerlo con más frecuencia. La integración frecuente y la retroalimentación oportuna alentarán al equipo del proyecto a enfrentar los problemas de manera proactiva en lugar de posponerlos una y otra vez. Si se hace bien, las integraciones más frecuentes deberían reducir su dolor y ahorrarle mucho tiempo.
Debido a que la integración continua se crea en última instancia a través de pruebas, descubrirá que la frecuencia de la integración continua es consistente con el enfoque de desarrollo basado en pruebas de Kent Beck, que prioriza las pruebas. Cabe señalar que la introducción de la integración continua desde el comienzo del proyecto puede detectar errores lo antes posible, pero esto no significa que la integración continua pueda ayudarlo a detectar todos los errores. La capacidad de la integración continua para eliminar errores depende de las técnicas de prueba y, como todos sabemos, no podemos probar que se hayan encontrado todos los errores en el código que se ha probado.