QA

CI/CD para QA - Orquestación con Integración Continua y Entrega Continua

Publicado por
Vanessa San Martin
CI/CD para QA - Orquestación con Integración Continua y Entrega Continua
Escrito por
Vanessa San Martin
Publicado en
February 27, 2024
Tiempo de lectura
Categoría
QA

Incluir tus pruebas o automatizaciones dentro de un flujo de trabajo de Integración Continua va a significar una gran ventaja para la manera en que vas aprendiendo para testing.

¿Qué es IC y por qué se usa?

La Integración Continua se refiere a una práctica de ingeniería de un software Development Life Cycle, que consiste en automatizar la mayor parte de integraciones de un proyecto lo más recurrente posible, y se utiliza para detectar los fallos a tiempo y antes de los pasos a producción y de estar en manos de los usuarios.

Ahora bien, ¿para qué sirve exactamente Integración Continua?

Imagina que, al principio de los tiempos, antes de que existiera todo lo que es la metodología ágil, la automatización de pruebas e Integración Continua y DevOps hubiese entrado a la escena.

El software se hacía de la siguiente manera: teníamos desarrolladores que realizaban muchas funcionalidades, un sinfín de código y, una vez que sentían que eso estaba listo, se mandaba y se hacían las pruebas. El tester decía: “¿Sabes qué? Esta funcionalidad no pasa” y debías volver atrás y el developer tenía que buscar entre toda esa mañana (o tarde) lo que estaba ocurriendo en el código y luego arreglar ese error, para luego volver a hacer el envío del aplicativo al tester.

Entonces lo que logran la Integración Continua y DevOps es que estas iteraciones sean mucho más rápidas, flexibles, o más ágiles si se quiere, gracias a que se automatiza el proceso de integración para que cada cambio en el código que se ha implementado se haga lo más eficiente y rápidamente posible. ¿Y por qué? Porque permite tener feedback mucho más rápido y saber qué ocurrió y cómo poder proceder a solucionarlo.  

En los pipelines –una tubería para revisar el código– va pasando por displays a través de distintos ambientes, pruebas de performances y también pruebas de seguridad, pruebas en el código mismo (como unit testing) y, una vez que está todo listo, se hace un deploy en producción.

Esa es la utilidad de la Integración Continua, una vez que tienes el test automatizado y ves el próximo paso que debes dar en este tema.

¿Cómo se integra el Testing en este concepto?

La manera en que el Testing se integra es clave, pues es a través de las pruebas automatizadas una vez que tenemos las pruebas automatizadas, ya sean en API, DevOps Azure, Selenium y/o Cypress.

Entonces con la IC lo que hacemos es, una vez que el código llegó a cierto nivel, poder echar a correr nuestras pruebas automatizadas y si está todo bien, seguir. Si algo falla, no dependerás del factor humano para poner a andar otra prueba, ya que estará todo automatizado.

Es fundamental entender que el Testing es parte central de la Integración Continua y lo que le va a permitir al código pasar o no al siguiente nivel.

Code

¿Cuáles son las herramientas más utilizadas dentro de Integración Continua/Entrega Continua?

Si no has oído hablar de Jenkins, te cuento que es una herramienta que la mayoría usa y es Open Source. Cuenta con todos los plugins para correr con Cypress, Selenium, entre otros. Por supuesto, también permite integrar el trabajo de desarrollo, que es lo que queremos hacer en Testing y Desarrollo.

Hace un tiempo, nuestro partner GitHub dio a conocer GitHub Actions, una herramienta de gratuita IC y EC que puede utilizarse sin configurar nada dentro de GitHub. Te ayudará a facilitar el proceso de automatización de flujos de trabajo de software con IC/EC, y podrás desarrollar, probar e implementar código desde GitHub y hacer que la clasificación de problemas, la administración de sucursales y las revisiones de código funcionen como tú lo desees.

Como testers, ¿qué nos interesa de Jenkins?

Buscamos ejecutar los casos de prueba de forma remota en el servidor, y no tener que ejecutar localmente en sus máquinas porque no tiene sentido. Esto debido a que, si uno automatiza los casos de prueba, quieres que la ejecución también sea automatizada.

Ese es el objetivo de Jenkinks, poder correr los casos de pruebas en el servidor, que se encargará de tomar los casos del repositorio que esté, por ejemplo, en GitHub u otra plataforma y ejecutará una línea de comando o lo que estemos especificando en el pipeline y no en el código. Y todo esto será ejecutado dentro del servidor de Jenkins, ante lo que debemos tener en cuenta que no vas a estar ahí presencialmente, por lo que tendrás que generar los reportes necesarios para que, si algo falla, puedas ver rápido el pipeline, qué pasó, por qué pasó y desde allí estar pendiente a la necesidad de plugins para instalarlo.

Para concluir, tanto GitHub Actions como Jenkins pueden agregar una gran ventaja de IC a sus proyectos, aunque de distinta manera. Elegir la mejor herramienta para ti hará que el proceso de agregar IC sea mucho más fácil y podrás visualizar el valor agregado.

attach icon
Adjuntar archivo
máximo: 10MB
Descarga el archivo haciendo click en el botón
Click aquí
¡Ups! Algo salió mal al enviar el formulario.

Crea tu propio manual de marca con esta plantilla gratuita.
¡Organiza tus activos de diseño de forma más eficiente!

Es
Eng