Please enable JavaScript.
Coggle requires JavaScript to display documents.
Pruebas de integración - Coggle Diagram
Pruebas de integración
Integración basada en el Grafo de Llamadas:
Integración de Vecindad:
Vecindad se define como los nodos vinculados al nodo objetivo que son predecesores o sucesores inmediatos.
Ventajas: Elimina la necesidad de stubs y drivers, reduce el número de sesiones de prueba.
Reduce la cantidad de sesiones de prueba necesarias.
Desventajas: Difícil de aislar fallos.
Agrupa los módulos alrededor del nodo objetivo como un subsistema para ser probado.
Integración de Par-a-Par:
Los pares se basan en los bordes del grafo de llamadas.
Ventajas: Elimina la necesidad de stubs y drivers, utiliza código real.
Cada sesión de prueba se limita a un par de módulos.
Desventajas: Requiere muchas sesiones de prueba.
Integración basada en la Ruta:
Integración basada en MM-Path:
Se representa mediante un grafo dirigido donde los nodos son rutas de ejecución de módulos y los bordes representan mensajes.
Los criterios de quiescencia (mensaje y datos) se utilizan para limitar la profundidad de las rutas MM-Path.
Se basa en MM-Paths, que son secuencias de ejecución de módulos y mensajes.
Ventajas: Prueba híbrida de estructura y función, cercana al comportamiento del sistema real, no requiere stubs ni drivers.
Utiliza un enfoque combinado de estructural y funcional.
Desventajas: Requiere esfuerzo adicional para identificar las rutas MM-Path, número de sesiones de prueba depende del sistema.
Estudio de Caso:
La cantidad de MM-Paths necesarios depende de la cobertura de las rutas fuente-sumidero.
Se pueden reducir la cantidad de rutas utilizando gráficos de condensación de los gráficos dirigidos acíclicos, especialmente para evitar bucles infinitos.
Ejemplo de un programa orientado a datos donde se muestran las MM-Paths.
Estrategias de Integración:
Integración de Arriba hacia Abajo (Top-Down):
Utiliza stubs para reemplazar los nodos hijos.
Ventajas: Prototipo temprano del sistema, permite intercalar diseño e implementación.
Comienza desde el nodo objetivo en la raíz del árbol de descomposición funcional y avanza hacia las hojas.
Desventajas: Codificación de código desechable, pruebas de interacción tardías, difícil de crear casos de prueba.
Integración de Abajo hacia Arriba (Bottom-Up):
Reemplaza los nodos padres por códigos desechables (drivers).
Ventajas: Menos codificación desechable, manejo fácil de excepciones.
Comienza en el extremo opuesto del árbol de descomposición funcional.
Desventajas: Sin prototipo, programa principal probado al final, identificación tardía de errores de diseño, alto costo de corrección de errores.
Big Bang Integration:
Prueba todos los módulos en una sola sesión de prueba.
Ventajas: Requiere pocos recursos, no necesita codificación adicional.
Trata el sistema completo como un subsistema.
Desventajas: No es sistemático, difícil de localizar problemas, difícil de crear casos de prueba.
Integración Sandwich:
Utiliza stubs en los módulos de nivel superior y drivers en los de nivel inferior.
Ventajas: Capas superiores y inferiores se pueden hacer en paralelo, menos stubs y drivers necesarios, fácil construcción de casos de prueba.
Combina los enfoques de arriba hacia abajo y de abajo hacia arriba.
Desventajas: Requiere programación de código desechable, integración parcial de Big Bang, difícil de aislar problemas.