La prueba de integración es una fase de desarrollo y prueba de software en la que se reúnen y prueban varias unidades o módulos dentro de un programa o configuración de hardware. Por lo general, estas diversas unidades se han probado individualmente para garantizar que cada unidad funcione correctamente por sí sola; esta fase de prueba integra estas unidades dispares en un sistema más grande. Esto se puede hacer en el desarrollo de software para garantizar que diferentes aspectos de un programa más grande puedan trabajar juntos o en pruebas de hardware para garantizar la funcionalidad adecuada entre diferentes unidades. Las pruebas de integración son una fase clave de las pruebas, ya que se pueden encontrar muchos errores y se pueden desarrollar versiones iniciales del software o hardware en general.
También conocidas como integración y prueba, o I&T, las pruebas de integración se consideran típicamente como la segunda fase principal de las pruebas. La primera fase se denomina prueba unitaria y se centra principalmente en probar unidades individuales o partes de un programa o sistema más grande para garantizar que cada unidad funcione por sí sola. Estas unidades separadas se reúnen en pruebas de integración, una vez que han pasado las pruebas unitarias, para luego asegurarse de que pueden trabajar juntas en grupos más grandes. Posteriormente, normalmente se agruparán en el sistema o programa completo que se está desarrollando y probando como parte de ese sistema completo, lo que se denomina prueba del sistema.
Hay muchas formas de realizar pruebas de integración, aunque hay algunos métodos comunes que se utilizan normalmente. Las pruebas de abajo hacia arriba son bastante comunes y generalmente implican probar diferentes aspectos de un sistema integrado comenzando con los niveles más bajos del sistema. Una vez que estos aspectos «inferiores» del sistema pasan la prueba, la prueba se mueve «hacia arriba» a aspectos más importantes. También se puede realizar una forma de prueba de integración de arriba hacia abajo, en la que los niveles más altos de un sistema se prueban primero y el proceso continúa moviéndose «hacia abajo» a niveles más bajos.
Sin embargo, uno de los principales problemas con estos dos tipos de pruebas de integración es que ninguno puede establecer fácilmente un lanzamiento temprano de un producto con funcionalidad básica. Este tipo de lanzamiento de la versión alfa puede ser vital para mayores oportunidades de prueba, por lo que normalmente se deben tomar otros enfoques para permitir dicho lanzamiento. Uno de estos enfoques es una forma de prueba «big bang» en la que todas las partes del sistema integrado se prueban simultáneamente. Esto puede ser ventajoso si hay pocos problemas o errores con el software que se está probando, pero puede ser difícil identificar problemas específicos si hay demasiados.
También existe un tipo de prueba de integración denominada «prueba sándwich» que busca aliviar algunos de estos problemas. Básicamente, este tipo de prueba comienza con pruebas de arriba hacia abajo y de abajo hacia arriba simultáneamente, y ambas formas de prueba efectivamente «se encuentran en el medio». Esto permite realizar pruebas tempranas de sistemas lógicos básicos, una ventaja de las pruebas descendentes, e identifica problemas más pequeños antes, como con las pruebas ascendentes. Dichas pruebas también pueden producir más rápidamente una versión de lanzamiento temprano del producto para pruebas a mayor escala o demostraciones de medios avanzadas del producto.