9.3. Pruebas de integración¶
Son fundamentales para asegurar que diferentes módulos o componentes de un sistema funcionen correctamente cuando se combinan. A diferencia de las pruebas unitarias, que verifican el funcionamiento de componentes individuales, las pruebas de integración se centran en la interacción entre esos componentes.
Estas ayudan a identificar problemas en las interfaces entre módulos y aseguran que el sistema completo opere como se espera. Son esenciales en entornos de desarrollo ágiles y en aplicaciones grandes y complejas, donde la integración de servicios, bases de datos y APIs externas debe funcionar sin problemas para garantizar un rendimiento adecuado y una experiencia de usuario sin fallos.
Además verifican la interacción entre diferentes módulos o componentes de un software. Su objetivo es garantizar que las unidades individuales de código trabajen correctamente cuando se combinan, previniendo fallos en la comunicación entre ellas.
9.3.1. Importancia¶
Estas permiten identificar errores que pueden surgir cuando diferentes módulos trabajan juntos. Son esenciales para garantizar la estabilidad del software y evitar problemas en etapas avanzadas del desarrollo.
9.3.2. Tipos¶
Big Bang: Se prueban todos los módulos en conjunto después del desarrollo.
Top-Down: Se prueban los módulos superiores primero, integrando gradualmente los módulos inferiores.
Bottom-Up: Se prueban primero los módulos más básicos, integrando progresivamente los módulos superiores.
Sandwich: Combinación de los enfoques de pruebas
Top-Downy de pruebasBottom-Up.
9.3.3. Instalación¶
El módulo unittest esta incluida en librería estándar de Python, puede probar la
instalación existe, ejecutando el siguiente comando:
python3 -c "import unittest ; print(unittest.__package__)"
python3 -c "import unittest ; print(unittest.__package__)"
Si muestra el nombre del módulo unittest, tiene correctamente instalado el módulo.
Con esto, ya tiene todo listo para continuar.
9.3.4. Práctica - Caso real¶
A continuación se presenta una práctica más real de implementar el uso de proyectos
con unittest, a continuación la estructura de proyecto llamado integracion:
9.3.4.1. Estructura de archivos¶
Para crear la estructura de archivos del proyecto unittest debe ejecutar los siguientes comandos:
Crear y acceder al directorio integracion en un solo comando, ejecutando el siguiente comando:
mkdir -p ~/proyectos/pruebas/integracion && cd $_
El comando anterior crea la siguiente estructura de directorios:
proyectos/
└── pruebas/
└── integracion/
Si tiene la estructura de archivo previa, entonces puede continuar con la siguiente sección.
Debe crear el directorio integracion, ejecutando el siguiente comando:
md .\proyectos\pruebas\integracion
Debe acceder al directorio , ejecutando el siguiente comando:
cd .\proyectos\pruebas\integracion
El comando anterior crea la siguiente estructura de directorios:
proyectos/
└── pruebas/
└── integracion/
Si tiene la estructura de archivo previa, entonces puede continuar con la siguiente sección.
A continuación se presenta y explica el uso de cada archivo para este proyecto:
Archivo instagram.py
Módulo de funciones para el componente API de Instagram.
1 2 3 4 5 6 7 8 9 10 | |
Archivo whatsapp.py
Módulo de funciones para el componente API de WhatsApp.
1 2 3 4 5 6 7 8 9 10 | |
Archivo installation.py
Módulo de integración de componentes de redes sociales.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 | |
Archivo test_installation.py
Módulo de pruebas unitarias para la integración de componentes de redes sociales.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 | |
Para ejecutar el código del proyecto llamado integracion abra una consola de comando, cree la
siguiente estructura de directorio y acceda al mismo donde se encuentra el programa:
proyectos/
└── pruebas/
└── integracion/
├── __init__.py
├── instagram.py
├── installation.py
├── test_installation.py
└── whatsapp.py
Si tiene la estructura de archivo previa, entonces puede continuar los procesos de ejecución del código fuente.
Teniendo creada la anterior estructura de proyecto, vuelva a ejecutar ahora el módulo con el siguiente comando, el cual a continuación se presentan el correspondiente comando de tu sistema operativo:
Truco
Para ejecutar el código fuente de esta práctica debe invocar al módulo installation.py,
abra una consola de comando, acceda al directorio donde se encuentra la estructura previa
y ejecute el siguiente comando:
python3 installation.py
El anterior código al ejecutar debe mostrar el siguiente mensaje:
📜 The Instagram message is: 'Hi, from Instagram API'.
📜 The Whatapp message is: 'Hello, from WhatsApp API'.
Este es el funcionamiento normal del módulo installation.py. Por defecto, la API de Instagram siempre
devolvera el valor Hi, from Instagram API y la API de WhatsApp siempre devolvera el valor
Hello, from WhatsApp API.
Este código evalúa la integración entre la función sent_message() en el módulo installation.py
y la función greetings() en cada módulo como instagram.py y whatsapp.py, verificando que
funcionen correctamente juntas.
Truco
Para ejecutar el código fuente de esta práctica debe invocar al módulo test_installation.py,
abra una consola de comando, acceda al directorio donde se encuentra la estructura previa
y ejecute el siguiente comando:
python3 test_installation.py
El anterior código al ejecutar debe mostrar el siguiente mensaje:
..
----------------------------------------------------------------------
Ran 4 tests in 0.000s
OK
Si la ejecución anterior muestra el mensaje anterior, quiere decir que la prueba unitaria fue exitosa.
Truco
Para ejecutar el código fuente de esta práctica debe invocar al módulo installation.py,
abra una consola de comando, acceda al directorio donde se encuentra la estructura previa
y ejecute el siguiente comando:
python3 installation.py
El anterior código al ejecutar debe mostrar el siguiente mensaje:
📜 The Instagram message is: 'Hi, from Instagram API'.
📜 The Whatapp message is: 'Hello, from WhatsApp API'.
Este es el funcionamiento normal del módulo installation.py. Por defecto, la API de Instagram siempre
devolvera el valor Hi, from Instagram API y la API de WhatsApp siempre devolvera el valor
Hello, from WhatsApp API.
Este código evalúa la integración entre la función sent_message() en el módulo installation.py
y la función greetings() en cada módulo como instagram.py y whatsapp.py, verificando que
funcionen correctamente juntas.
Truco
Para ejecutar el código fuente de esta práctica debe invocar al módulo test_installation.py,
abra una consola de comando, acceda al directorio donde se encuentra la estructura previa
y ejecute el siguiente comando:
python3 test_installation.py
El anterior código al ejecutar debe mostrar el siguiente mensaje:
..
----------------------------------------------------------------------
Ran 4 tests in 0.000s
OK
Si la ejecución anterior muestra el mensaje anterior, quiere decir que la prueba unitaria fue exitosa.
Así de esta forma puede replicar una práctica real de un proyecto para realizar pruebas de integración
usando unittest para el módulo installation.py, aplicando buenas prácticas de código funcional.
Importante
Usted puede descargar el código usado en esta sección haciendo clic en los siguientes enlaces:
Las pruebas de integración son una parte crucial del desarrollo de software. Implementarlas correctamente ayuda a garantizar que los módulos trabajen juntos sin problemas, reduciendo errores en la etapa de producción.
Ver también
Consulte la sección de lecturas suplementarias del entrenamiento para ampliar su conocimiento en esta temática.
¿Cómo puedo ayudar?
¡Mi soporte está aquí para ayudar!
Mi horario de oficina es de lunes a sábado, de 9 AM a 5 PM. UTM - Madrid, España.
La hora aquí es actualmente 7:35 PM UTM.
Mi objetivo es responder a todos los mensajes dentro de un día hábil.