Pruebas de integración: validando la unión de componentes

Las pruebas de integración aseguran que todas las unidades desarrolladas funcionan en conjunto y ayudan a prevenir contratiempos posteriores.

¿Qué son las pruebas de integración?

Las pruebas de integración son aquellas que se realizan para comprobar las interacciones entre distintos componentes o sistemas tras su integración.

Si bien los test unitarios son responsabilidad del autor del código, los test de integración se realización habitualmente por equipos más especializados en pruebas.

Las pruebas de integración son de tan imprescindibles como las unitarias. El hecho de haber comprobado todos los componentes con resultado satisfactorio, no asegura el correcto funcionamiento entre ellos.

Y ahí es donde radica la importancia de asegurar la integración.

Para realizar este tipo de test, se hace uso de objetos que simulen en muchos casos los datos que contenga la aplicación, como por ejemplo: Stubs, drivers, subsistemas, bases de datos, API’s, microservicios…

Es importante también destacar, en este tipo de pruebas, la importancia de la descripción del error detectado, ya que estos defectos se localizan sobre elementos creados por varios desarrolladores, quienes únicamente conocerán a fondo la parte del código desarrollada por ellos mismos.

Objetivos de las pruebas de integración

Este tipo de pruebas debe enfocarse a conseguir:

  • Reducir el riesgo de seguridad de la aplicación
  • Verificar que el comportamiento del software entre las distintas interfaces es el esperado
  • Asegurar la confianza en la calidad de las interfaces
  • Encontrar defectos en las comunicaciones
  • Prevenir la aparición de defectos en fases posteriores de pruebas

Ejemplos de pruebas de integración

Y esto es una ejemplo de como las pruebas de integración evitan problemas… 🙂

Ahora en serio, aquí van un par de ellos en el desarrollo de una aplicación de tareas:

Objetivo

Descripción de la prueba

Resultados esperados

Validar el enlace entre el login y la pantalla de inicio

Introducir credenciales de acceso y pulsar botón Acceder

La aplicación dirige al panel de control de la página de inicio

Validar la comunicación entre el módulo de modificación de tareas y el de lista.

Pulsar botón Modificar

La aplicación dirige a la interfaz que muestra la lista de tareas abiertas

Niveles de pruebas de integración

Se diferencian dos niveles distintos de pruebas de integración.

Pruebas de integración de componentes

Principalmente enfocado en la interacción e interfaces entre los componentes integrados.

Este tipo de pruebas debe realizarse de forma posterior a las pruebas unitarias.

Generalmente se automatizan, lo que supone obviamente una ventaja en cuanto a tiempo y dinero se refiere.

En desarrollos ágiles, la integración de los distintos componentes, son habitutualmente parte de un proceso de integración continua.

Pruebas de integración de sistemas

En este caso, se centran en la interacción e interfaces entre distintos sistemas, paquetes o microservicios

Aquí también entrarían las pruebas de interacciones con elementos externos a la organización como, por ejemplo, servicios web (mail, almacenamiento cloud, redes sociales, etc…) Esto supone un reto mayor al no tener todo el control de estos elementos externos.

Los test de integración de sistemas se pueden realizar tanto después de las pruebas de sistema, como de forma paralela a ellas.

Estrategias de pruebas de integración

Big Bang

Tranqui, ni va a explotar nada, ni necesitas ser Sheldon Cooper para realizarlas.

Esta integración es no incremental, ya que se realiza cuando todos los componentes están completamente integrados.

De ahí su nombre. Una vez está todo integrado, se inician estos test juntos.

El inconveniente de esta estrategia es que, como se ha consumido ya bastante tiempo esperando a que estuviera todo integrado, en esta fase los retrasos estarían más penalizados.

La ventaja es que cuentas con el resto de componentes y, por ejemplo, puedes aportar más información en muchos casos sobre el resultado.

Ad Hoc

Con esta estrategia realizaremos las pruebas inmediatamente después de que el componente ya se haya integrado.

Gracias a ello, podemos aprovechar mejor el tiempo para ser más exhaustivos con las pruebas y aún así evitar retrasos.

Top Down

En este caso, la integración se realiza de arriba a abajo.

Es decir, se empieza por los componentes que no reciben ninguna llamada de otros componentes, y se continúa por los que a estos últimos llamen.

En este caso, necesitarás hacer uso de stubs (recibe llamadas de un método)

Down Top

De forma inversa a la anterior, la estrategia se realiza de abajo a arriba.

Por lo que se empezaría por los componentes que no llaman a ningún a ningún otro, para continuar por lo que éstos son llamados

Para esta estrategia, necesitarás utilizar drivers o controladores de pruebas (realiza llamadas a los métodos)

Hybrid

En algunos casos, puede ser una ventaja no seguir una estrategia de las anteriores, sino una combinación de ellas.

Por ejemplo, la integración híbrida, es aquella que combina las estrategias Top Down y Down Top

Defectos encontrados habitualmente en las pruebas de integración

Gracias a este tipo de pruebas, lo defectos que puedes encontrar habitualmente son:

  • Cálculos incorrectos
  • Comportamiento incorrecto en aspectos funcionales y no funcionales
  • Flujo incorrecto de la información entre los componentes
  • Defectos únicamente reproducibles en entornos de producción
  • Funcionamientos incorrectos respecto a la documentación del producto.

Así que ya sabes, las pruebas de integración son tan importantes como las unitarias.

Qué todos los elementos individuales funcionen no significa que el sistema completo vaya a funcionar.

Si realizas las pruebas de integración te ahorrarás más de una sorpresa, y si no, recuerda lo que ocurría en Dragon Ball…

Fuentes:

Lectura recomendada

Gorgias Templates: herramienta para gestionar las plantillas email Las plantillas email te ahorran un valioso tiempo cada vez que tengas que escribir un mismo correo electrónico. Descubre cómo usarlas.

Deja un comentario