Resultado de aprendizaje (Temas del Segundo Parcial)

 Herramientas para el proceso de desarrollo e integración continua

La integración continua (CI) es la práctica de automatizar la integración de los cambios de código de varios contribuidores en un único proyecto de software. Es una de las principales prácticas recomendadas de DevOps, que permite a los desarrolladores fusionar con frecuencia los cambios de código en un repositorio central donde luego se ejecutan las compilaciones y pruebas. Las herramientas automatizadas sirven para verificar que el nuevo código es correcto antes de la integración. Un sistema de control de versiones del código fuente es el punto clave del proceso de CI. El sistema de control de versiones también se complementa con otras comprobaciones como las pruebas automatizadas de calidad del código, las herramientas de revisión de estilo de sintaxis y mucho más. (Atlassian, 2022)
El objetivo de la CI/CD es reducir el tiempo que se tarda en entregar el software a los usuarios sin sacrificar la calidad. Para conseguirlo, tiene que comprobar los cambios con frecuencia, probarlos de manera rigurosa y gestionar los comentarios con rapidez, de manera que pueda implementar sus cambios en la versión pública con la frecuencia que desee.


Etapas de un proceso de compilación

Aunque la forma exacta de su proceso de CI/CD dependerá del tipo de producto que esté creando, además de los requisitos de su organización, existe un patrón general que todos los procesos suelen seguir, que describimos aquí.
El proceso comienza con una confirmación en el máster (o en cualquier rama que haya designado como la rama de la CI), que desencadena un build o un conjunto inicial de pruebas de unidad. Los resultados se envían de vuelta a un panel y, si falla el build o la prueba, se marca con una notificación automática.
Puede configurar el proceso para que se detenga a fin de que pueda abordar el problema y comenzar de nuevo con una nueva confirmación, o crear excepciones para tipos concretos de errores para que el proceso pueda continuar.
La siguiente etapa implica una serie de pruebas automatizadas, con feedback proporcionado después de cada ronda de pruebas. Por lo general, las pruebas están estructuradas para que las pruebas más rápidas se ejecuten primero y ofrezcan feedback lo antes posible.
Las pruebas más elaboradas que ocuparán los servidores durante más tiempo, como las pruebas de extremo a extremo, solo se ejecutan cuando las pruebas anteriores se han completado correctamente. Esto permite un uso más eficiente de los recursos.
Una vez que se han completado las pruebas automatizadas, el software se suele implementar en una serie de entornos de pruebas, algunos de los cuales se pueden usar para pruebas manuales adicionales, mientras que otros se pueden usar para formación, asistencia y vistas previas del cliente.
La etapa final del proceso de CI/CD consiste en implementar los cambios y puede activarse manualmente (en el caso de la entrega continua) o automáticamente (como en el caso de la implementación continua). (teamCity, 2022)

Herramientas de automatización de la compilación (build)

Jenkins

¿Que es? Servidor de automatización utilizado para construir, implementar y automatizar cualquier proyecto. (myservername, 2022)

Características
  • Puede orquestar cualquier tipo de proceso.
  • Utilizada para ejecutar tareas manuales, periódicas o automáticas.
  • Cuenta con más de 1400 plugins.
  • Puede aumentar su capacidad de cómputo añadiendo nuevos agentes o servidores.
  • Fácil de usar.

Maven

¿QUE ES? Herramienta de gestión y comprensión de proyectos.(myservername, 2022)

Características
  • Un sistema de gestión dependencias.
  • Un mecanismo distribuido de distribución de librerías. El comportamiento distribuido es siempre desde el repositorio local de Maven hacia los repositorios que están publicados en Internet o en la red corporativa.
  • Mecanismos para ser extensible, por la creación de plugins customizables.
  • Es multi-plataforma, puede funcionar tanto en entornos Linux como Windows al ser una aplicación Java.(Carlos Yagüe, 2019)


Herramientas de automatización de pruebas

SELENIUM

Selenium es un entorno de pruebas que se utiliza para comprobar si el software que se está desarrollando funciona correctamente. Esta herramienta permite: grabar, editar y depurar casos de pruebas que se pueden automatizar.
Es una herramienta portátil de código abierto y proporciona pruebas funcionales de varios módulos de aplicaciones web en plataformas y navegadores. Admite la ejecución de texto en paralelo, lo que ahorra mucho tiempo de prueba. Selenium admite muchos lenguajes como Java, Ruby, C #, Python, etc. (Khatri, 2022)
Lo interesante de Selenium es que se pueden editar acciones o crearlas desde cero. También ayuda mucho en las pruebas de regresión porque consigue pruebas automatizadas que luego se pueden reutilizar cuando se necesite. Comenzó a desarrollarse en 2004 por Jason Huggins y poco a poco se fueron uniendo varios especialistas.


TESTIM

Testim es una solución integral de automatización de pruebas ágiles que emplea aprendizaje automático para la creación, ejecución y mantenimiento de pruebas. Los usuarios pueden crear pruebas en minutos, ejecutar miles de pruebas en paralelo en diferentes navegadores, integrarse con sus herramientas existentes de CI/CD y colaboración y más.
Permite ejecutar miles de pruebas en paralelo en múltiples navegadores para proporcionar resultados en minutos. Las pruebas se pueden ejecutar de manera local, en nubes privadas de los usuarios o en la nube de Testim. Mediante la integración con sistemas CI/CD, las aplicaciones se pueden implementar automáticamente cuando pasan todas las pruebas. También permite transmitir los comentarios sobre los problemas rápidamente a los desarrolladores. Accede a toda la información de pruebas fallidas e informa de errores a los probadores con un solo clic.




Comentarios