14.3. Pruebas automatizadas en el proceso de CI: herramientas de automatización de pruebas

Las pruebas automatizadas son una parte crucial del proceso de integración continua (CI) y entrega continua (CD). Permiten a los equipos de desarrollo comprobar rápidamente la calidad del código y garantizar que la nueva funcionalidad no introduzca errores en el sistema existente. En este contexto, se utilizan varias herramientas de automatización de pruebas para optimizar e implementar esta práctica esencial. Entre los más populares se encuentran JUnit, Selenium y Jest, cada uno de los cuales satisface diferentes necesidades de prueba de software.

JUnit: El pilar de las pruebas unitarias en Java

JUnit es una de las herramientas de prueba más conocidas y utilizadas en el ecosistema Java. Está diseñado para realizar pruebas unitarias, que son pruebas que verifican el comportamiento de pequeñas unidades de código, como métodos y clases. Automatizar las pruebas unitarias con JUnit es esencial en el proceso de CI, ya que permite a los desarrolladores identificar y solucionar problemas rápidamente antes de que el código se integre en el repositorio principal.


@Prueba
vacío público cuandoAdding1and1_thenResultIs2() {
    Calculadora calculadora = nueva Calculadora();
    afirmarEquals(2, calculadora.add(1, 1));
}

El ejemplo anterior demuestra una prueba unitaria simple usando JUnit. La anotación @Test indica que el método es una prueba y la función assertEquals se utiliza para comprobar si el resultado esperado es igual al resultado obtenido. JUnit proporciona varias otras afirmaciones y anotaciones que facilitan la redacción de pruebas claras y concisas.

Selenium: Automatización de pruebas de interfaz de usuario

Selenium es una poderosa herramienta para automatizar las pruebas de la interfaz de usuario (UI). Es capaz de interactuar con navegadores web y simular acciones del usuario, como hacer clic en botones, completar formularios y navegar entre páginas. Esto es particularmente útil en el proceso de CI, ya que le permite probar cómo se comporta la aplicación en condiciones de uso del mundo real.


Controlador WebDriver = nuevo ChromeDriver();
controlador.get("http://www.ejemplo.com");
Elemento WebElement = driver.findElement(By.name("q"));
elemento.sendKeys("DevOps");
elemento.enviar();

En el ejemplo anterior, Selenium se utiliza para abrir el navegador Chrome, acceder a un sitio web, localizar un campo de búsqueda por nombre, ingresar el término "DevOps" y enviar el formulario. Selenium admite múltiples navegadores y lenguajes de programación, lo que lo convierte en una herramienta flexible e indispensable para las pruebas de UI en entornos CI/CD.

Jest: Pruebas modernas para aplicaciones JavaScript

Jest es un marco de prueba moderno para JavaScript, mantenido por Facebook, que ha ganado popularidad por su simplicidad y funciones integradas. Se utiliza tanto para pruebas unitarias como para pruebas de integración en aplicaciones JavaScript, incluidos proyectos que usan React, Angular o Vue.js. Jest ofrece una experiencia de desarrollo agradable con funciones como simulación de funciones, instantáneas y un modo de observación que vuelve a ejecutar pruebas automáticamente cuando se detectan cambios en el código.


prueba('suma 1 + 2 para igualar 3', () => {
  esperar(suma(1, 2)).toBe(3);
});

El ejemplo anterior muestra una prueba simple con Jest, donde la función sum se prueba para garantizar que la suma de 1 y 2 dé como resultado 3. La función expect juntas con el comparador toBe se utiliza para comprobar el resultado. Jest es conocido por su velocidad y eficiencia, lo que lo hace ideal para entornos CI/CD que requieren retroalimentación rápida.

Integración de herramientas de prueba en el proceso CI/CD

La integración de herramientas de automatización de pruebas en el proceso CI/CD se lleva a cabo a través de canales de CI. Estas canalizaciones están configuradas para ejecutar pruebas automáticamente con cada confirmación o envío al repositorio de código. Herramientas como Jenkins, GitLab CI/CD y GitHub Actions se utilizan comúnmente para crear y administrar estos canales.

Una canalización de CI típica incluye los siguientes pasos:

  1. Pago del código fuente.
  2. Ejecución de pruebas unitarias y de integración.
  3. Construcción de la aplicación.
  4. Ejecución de UI y pruebas de aceptación.
  5. Implementar en un entorno de prueba o de ensayo.

Es importante que la canalización esté configurada para tratar los errores de prueba como bloqueadores críticos, evitando que el código pase a la siguiente etapa. Esto garantiza que solo el código que pase todas las pruebas automatizadas se considere para su implementación en producción.

Conclusión

Las herramientas de automatización de pruebas como JUnit, Selenium y Jest son esenciales para implementar pruebas efectivas y confiables en el proceso de CI/CD. Proporcionan la capacidad de realizar pruebas de forma rápida y repetitiva, lo cual es fundamental paraMantener la calidad y estabilidad del software en ciclos de desarrollo acelerados. Al integrar estas herramientas en los canales de CI/CD, los equipos pueden detectar y solucionar problemas antes, reducir el tiempo de comercialización de nuevas funciones y aumentar la satisfacción del cliente con entregas más frecuentes y confiables.

Ahora responde el ejercicio sobre el contenido:

¿Cuál de las siguientes afirmaciones sobre las herramientas de automatización de pruebas es verdadera según el texto proporcionado?

¡Tienes razón! Felicitaciones, ahora pasa a la página siguiente.

¡Tú error! Inténtalo de nuevo.

Imagen del artículo Pruebas automatizadas en el proceso de CI: Integración de herramientas de prueba con servidores de CI (Jenkins, GitLab CI, etc.)

Siguiente página del libro electrónico gratuito:

33Pruebas automatizadas en el proceso de CI: Integración de herramientas de prueba con servidores de CI (Jenkins, GitLab CI, etc.)

4 minutos

¡Obtén tu certificado para este curso gratis! descargando la aplicación Cursa y leyendo el libro electrónico allí. ¡Disponible en Google Play o App Store!

Disponible en Google Play Disponible en App Store

+ 6,5 millones
estudiantes

Certificado gratuito y
válido con código QR

48 mil ejercicios
gratis

Calificación de 4.8/5
en tiendas de aplicaciones

Cursos gratuitos de
vídeo, audio y texto.