Skip to main content

Test de integración: Objetivos, Tipos y Ejemplos

# Fecha
octubre 5, 2022
# Categorías
# Siguenos

Los test de integración verifican que los distintos componentes ensamblen correctamente, después de que fueron probados individualmente, esto permite corroborar que interactúan bien mediante sus interfaces internas y externas, que cumplen con la funcionalidad establecida y que se ajustan bien a los requisitos no funcionales especificados en las verificaciones que corresponden.

Con los test de integración pueden examinar las interfaces entre grupos de componentes o subsistemas de forma que se asegure que serán llamados cuando sea necesario y que los mensajes o datos transmitidos son los solicitados.

Incluso pueden llegar a combinarse con las pruebas unitarias, dado que en estas se crean módulos auxiliares que simulan las acciones de los componentes solicitados por el cual se está probando, puesto que se crean componentes conductores que establecen las precondiciones necesarias, incluso se llama el componente que es objeto de la prueba y se examinan los resultados de dicha prueba.

Es por ello que en este post te hablaremos sobre los objetivos del test de integración, sus tipos, algunos ejemplos y las preguntas más frecuentes sobre este tema, continúa leyendo para que conozcas más sobre los test de integración.

Objetivo del test

Los test de integración tienen por objetivo:

  1. Disminuye la inseguridad de la aplicación.
  2. Comprueba que el software se comporte de acuerdo a lo esperado entre las distintas interfaces.
  3. Certifica que la calidad de las interfaces sea confiable.
  4. Consigue los defectos en las comunicaciones.
  5. Advierte los defectos en fases posteriores de pruebas.

Tipos de test de integración de software

Existen varios tipos o enfoques de test de integración de software, siendo el más popular el de Big Bang, el ascendente y el incremental, que son de los que hablaremos a continuación. La selección de uno u otro depende de varios factores, como el coste, complejidad, criticidad de aplicación, entre otros. Hay otros tipos de test de integración, pero son menos conocidos, tal como el de servicios distribuidos, el de integración sándwich, integración de la red troncal, integración de alta frecuencia, integración de capas, entre otros.

Incremental

Todos los programadores se integran uno por uno y realizan una prueba después de cada paso. Este tipo de test tiene la ventaja de que consigue los defectos en corto tiempo en un ensamblaje más pequeño, que es cuando resulta relativamente más sencillo detectar la causa.

La desventaja es que puede tomar mucho tiempo debido a que los stubs y controladores tienen que desarrollarse y usarse en la prueba. Dentro de este tipo de test cuentas con un gran abanico de posibilidades, dependiendo de la arquitectura del sistema.

Ascendente

Se realiza el test de integración desde la parte inferior del flujo de control hacia arriba, sustituyendo los componentes o sistemas por controladores. La ventaja de este enfoque es que tanto el desarrollo como el test se pueden hacer en conjunto para que así el producto o aplicación sea realmente eficiente y vaya acorde con las especificaciones dadas por el cliente.

No obstante, la desventaja es que solo puede detectar los defectos de la interfaz clave al finalizar el ciclo. Y necesita crear los controladores de prueba para los módulos en todos los niveles, menos el control superior.

Big Bang

En este tipo de test, los componentes y módulos se integran todos simultáneamente, y posteriormente se prueban como un todo. La ventaja es que todo está terminado antes de que comiencen las pruebas de integración. Pero su desventaja es que lleva mucho tiempo y resulta difícil rastrear la causa de las fallas gracias a la integración.

Sándwich

Este tipo de test combina los enfoques ascendente y descendente, también es llamado test de integración híbrido o mixto. En este se considera que el sistema se compone por 3 capas, la del medio es el objetivo de las pruebas, la capa superior y la inferior. Las pruebas comienzan por la capa superior y convergen la intermedia.

La ventaja de este test es que las capas superior e inferior se pueden probar en paralelo, pero como desventaja está, que no se realizan pruebas exhaustivas de los subsistemas antes de hacer la integración.

tipos test integracion

Ejemplo

A continuación, te mostramos dos ejemplos sobre los test de integración en el desarrollo de una aplicación de tareas:

ObjetivoDescripción de la pruebaResultados esperados
Aprobar el enlace entre el login y la pantalla de inicio.Colocar credenciales de acceso y hacer clic en el botón Acceder.La aplicación lo envía al panel de control en la página de inicio.
Verificar la comunicación entre el módulo de modificación de tareas y el de la lista.Hacer clic en el botón ModificarLa aplicación lo envía a la interfaz donde se muestra la lista de tareas abiertas.

Preguntas frecuentes

En esta sección se dará respuesta a las dos preguntas más comunes sobre los test de integración:

¿Qué tipos de errores se pueden encontrar al realizar este tipo de test?

Los errores que se pueden encontrar al realizar este tipo de test son:

  1. Cálculos incorrectos.
  2. Procedimiento equivocado en aspectos funcionales y no funcionales.
  3. Flujo erróneo de la información entre los componentes.
  4. Fallas que solo son reproducibles en entornos de producción.
  5. Funcionamientos imperfectos comparado con la documentación del producto.

¿Cuál es la diferencia entre una prueba unitaria y una de integración?

Las pruebas unitarias corresponden al más bajo nivel, es decir programación. Con ellas se prueban las unidades del software que corresponden normalmente a métodos. Estas pruebas unitarias son la visión de los desarrolladores que se encargan de elaborarlas, pues son los que programaron el código y por ende, lo conocen y entienden mejor que nadie, sabiendo que es lo que se debe realizar en cada método.

Para gestionar las dependencias complejas o interacciones con el exterior realizan stubs (objetos con un comportamiento programado frente a ciertas llamadas de determinado test) o mocks (objetos previamente programados con los datos que esperan recibir). Su interés principal es como funciona la unidad, contrario a los test de integración, que se interesan por la interacción entre los componentes.

Estas pruebas tardan menos tiempo en ejecutarse que los test de integración, por ello suelen ser más usadas, adicionalmente, estas tienden a forzarte a escribir clases menos acopladas, lo cual favorece las mejoras del diseño del software. Cuando falla una prueba unitaria, se sabe que es por un problema con el código. Para automatizarlas y llevarlas a cabo, usan framework de tests o Junit en el caso de Java.

Caso opuesto ocurre con los test de integración, los cuales dependen del entorno donde se ejecuten, si fallan, pues puede que el código esté bien, pero quizás haya un cambio en el entorno.

Como ves, los test de integración son igual de importantes que las pruebas unitarias, debes ser consciente de que si los elementos individuales funcionan no significa que el sistema en conjunto va a funcionar.

Los test de integración te permiten evitarte sorpresas por ello son tan útiles, y cuentan con varios tipos de enfoques. Esperamos que con esta información ahora entiendas mejor la importancia de aplicar los test de integración y de que forma pueden ayudarte en el desarrollo de un software.

Comunicaciones