No tienes acceso a esta clase

¡Continúa aprendiendo! Únete y comienza a potenciar tu carrera

Automatización de pruebas en CI/CD

7/9
Recursos

La industria del software evoluciona rápidamente, por lo tanto, se debe construir y entregar valor constantemente. La integración continua y el despliegue continuo (CI/CD) consiste en distribuir las aplicaciones lo más rápido posible con la ayuda de la automatización de pruebas.

En la siguiente imagen observarás la forma convencional (Waterfall approach) frente a la integración y despliegue continuo (CI/CD). La diferencia principal es la interconectividad del desarrollo del CI/CD.

Diferencia gráfica entre la manera convencional de despliegue frente la integración y despliegue contiguo

Ejemplos de soluciones automatizadas

El primer ejemplo consiste en un repositorio de código (GitHub, GitLab, entre otros), en el cual se construyen las soluciones (Build system), después se implementan las pruebas (Test framework), y finalmente se libera y despliega.

Esto ocurre cuando realizas un commit a una rama principal, entonces se ejecuta el build, después se realizan las pruebas. Esto permite integrar, liberar y desplegar de manera constante.

Forma visual de un ejemplo de integración y despliegue continuo

Pero esto puede cambiar dependiendo de las necesidades de la aplicación o de la empresa, por lo que puedes añadir más pasos, otras pruebas, validaciones, pero manteniendo el despliegue continuo.

Integración y despliegue continuo mediante pruebas unitarias y validaciones

Beneficios de la automatización de pruebas en CI/CD

Las ventajas que conlleva una integración y despliegue continuo son:

  • Mayor agilidad para un desarrollo más rápido.
  • Disminución de costos por la automatización de pruebas manuales y por la rapidez de entrega de valor de un producto.
  • Mayor seguridad en el despliegue a producción, evitando introducir bugs al momento de entregar el producto.
  • Aumento en la productividad y disminución de tiempos, permitiendo a los desarrolladores dedicar más tiempo a la solución de otros errores.

Finalmente, no existen desventajas en el uso de pruebas automatizadas en el flujo de integración y despliegue continuo.

Contribución creada por Andrés Guano.

Aportes 25

Preguntas 2

Ordenar por:

¿Quieres ver más aportes, preguntas y respuestas de la comunidad?

SI, con el Jenkins pero con Selenium webdriver aún no sabemos como hacer el build integrado sin necesidad de arrancarlo externamente.

Automatización de pruebas en CI/CD

CI: Continuous Integration
CD: Continuous Deployment

Las pruebas automatizadas ayudan a realizar las pruebas mas frecuentes sin sobrecargar, a los equipos de desarrollo y pruebas y poder entregar mayor valor al cliente.

VENTAJAS:

  • Ofrece mayor agilidad
  • Permite desarrollar mas rápido reduciendo el costo
    (debido a que el equipo de pruebas manuales no debe estar probando cada uno de las pruebas generando mayor seguridad y productividad.)

DESVENTAJAS
No tiene.
(No hay ninguna razón por la cual no deberías integrar las pruebas automatizadas a tu flujo de CI/CD)

  • Beneficios:
    • Agilidad
    • Costo menor
    • Seguridad
    • Productividad

CI/CD Continuous Integration/Continuous Deployment
.
Hoy en día la industria avanza muy rápido donde se tiene que construir y entregar valor constantemente por lo que la automatización de pruebas es muy importante ya que permite mejorar la calidad de software que se entrega al cliente.
.
Las pruebas automatizadas ayudan a realizar las pruebas mas frecuentes sin sobrecargar, a los equipos de desarrollo y pruebas y poder entregar mayor valor al cliente.
.
Pros
Ofrece mayor agilidad permitiendo desarrollar mas rápido reduciendo el costo debido a que el equipo de pruebas manuales no debe estar probando cada uno de las pruebas generando mayor seguridad y productividad.
.
Contras.
No tiene.

No he tenido la oportunidad de implementar el Continuos Testing, pero lo que he conocido es que muy interesante y cuenta con muchos beneficios tanto para el producto como para los equipos de trabajo, se reducen horas realizando actividades, se incentiva la agilidad y se genera productividad.
Hay algo muy cierto y es que Continuos testing no es nuevo para muchas empresas y profesionales, hoy en dia se presentan cursos, foros, material académico y demos , pero realmente lo que sucede es que hay compañías que realmente no lo implementan , aducen que implica inversión o simplemente siguen usan los métodos tradicionales.
Hay otras empresas que si implementan el Continuos testing y son las que mas ganancias y reconocimiento por su producto tienen hoy en día, sus equipos están altamente capacitados y cada vez mas se genera interés en otras personas que tal vez no hemos tenido la oportunidad de hacer parte de este.

Estas seguro que en CI vamos desarrollando, testeando, construyendo y liberando ? O sera desarrollando, construyendo, testeando y liberando pero de forma continua en cada sprint?

Ni siquiera se que es CI y CD, o en que consiste, creo que para un curso futuro o un remake de éste deberían incluir una mayor explicación sobre dichos temas, ya que muchos ignoramos estos conceptos.

En mi caso estoy tomando la escuela de programación y desarrollo de software y aun no vemos nada de eso, por lo que quedé muy confundido con los flujos y todo eso, ojalá se pueda explicar de mejor forma

lo mejor es jenkins y travis y nos funciona muy bien…
es lo que le ordeno a mis MINIONS usar y funciona muy bien…

incluso hay un curso de eso aqui en PLATZI.
uwu

Actualmente no estoy laborando, pero creo que a lo largo de 10 años de trabajar en varias empresas lo maximo que llegue a ver fue la implementacion de git.

Desventajas:

  • No las hay, no hay ninguna razón por la cual no deberías integrar las pruebas automatizadas a tu flujo de CI/CD

Usamos Jenkins y maven para crear los builds y ejecutar nuestras pruebas.

tristemente no tengo equipo ni empresa 😢, pero comenzaré a diseñar un sistema basado en CI/CD

realmente aun no he implementado estos métodos en algún proyecto, pero me gustaría, para visualizar el proceso que tiene y así saber cual es el mejor que se podría adaptar para futuros proyectos de software.

NO hay razón para no implementar CI/CD 🏆
En mi trabajo anterior usabamos jenkins para el CI/CD y claro que tests para la validación del código. En mi trabajo actual es Bitbucket con Jira Cloud.
La automatización es una excelente opción para así agilizar las pruebas, por lo mismo queremos empezar a implementar La automatización de pruebas.
Eh tenido la posibilidad de implementar procesos de CI/CD para automatizar el despliegue de aplicaciones. Y en el proceso, tuve la chance de implementar test unitarios en el etapa del Continuous Integration y el test de cobertura de código también. Son realmente herramientas muy completas para asegurar calidad en nuestras aplicaciones. Saludos!

En mi caso hemos sugerido lo de añadir las pruebas automatizadas al CI pero debido a la cantidad de trabajo, ha sido complicado abordar esa parte. Seguire sugiriendo espero que pronto se haga.

En mi empresa usamos Azure DevOps se crea una plantilla similar a la que muestran, se hace un build, test luego esto pasa a sonarCloud para un análisis, luego viene una fase de contenerización. Hemos tenido problemas con el dockerfile por aquí, luego sigue seguridad y despliegue. He ido aprendiendo en el camino un poquito de esto pero siempre que falla algo ya sean kubernetes o el docker, me sentía perdida jaja este clase me ha ayudado a comprender mucho mejor todo lo que hace mi pipeline. Yo soy front y poder comprender más sobre lo que está fuera de mis funciones habituales es genial.

Sería beno que mostraran los conceptos con ejempos mucho mas ilustrativos que solo diagramas, podrían mostrar un ejemplo un poco más práctico. La verdad es que habemos personas que apenas estamos empezando y quedamos confundidas.

Soy el Head of engineering en mi empresa y estamos en proceso de implementación de testing en nuestro flujo DevOps y son excelentes ejemplos de como implementarlo en este tipo de cultura

Si nos gustaria implementarlo, hasta el momento todo es manual, y como que si falta un poco mas de ejemplos paa poder saber como iniciar la automatización

Estamos haciendo los primeros pasos para lograr avanzar en la adopción de prácticas automáticas que permitan la optimización de tiempos.

Esperamos poder implementar la integración contínua, sin embargo aún existen limitantes como por ejemplo el número de personas responsables de desarrollo y testing vs el volumen de requerimientos (mejoras y soluciones) que no permite en el momento implementar CI/CD

Actualmente estoy en un proyecto que no me permite automatizar como nos gustaría pero otros proyectos con un número importante de combinaciones requiere algo así para poder avanzar.