Pruebas de Integración orientadas a objetos

 

Pruebas de Integración orientadas a objetos

Las pruebas de integración orientadas a objetos se enfocan a la interacción entre unidades, suponiendo que cada una fue probada a nivel de unidad. A este nivel se mezclan aspectos estructurales que relacionan las maneras de interactuar de las unidades y también los aspectos típicamente funcionales.

Las pruebas de integración se ven dificultadas por el polimorfismo y la liga tardía al tiempo de ejecución. También, en sistemas distribuidos, el uso de objetos remotos resulta problemático (Fernández Peña, 2020).

Según Quiñones (2019) en las pruebas de integración se busca:

  • Configuración (Mal control de versiones)
  • Funciones faltantes
  • Incompatibilidades por versiones
  • Inconsistencias en archivos y bases de datos
  • Violación de integridad
  • Llamado a método equivocado
  • Una unidad cliente envía un mensaje que viola la precondición del servidor

Cuando se desarrolla software orientado a objetos guiado por casos de uso, éstos se convierten en la unidad mínima de funcionalidad. Se recomienda incluir un diagrama para el caso típico exitoso y otro para un caso alterno, generalmente una falla típica.

Un diagrama de secuencia presenta varios elementos importantes para las pruebas de integración:

  • El conjunto de clases (objetos) que interactúan.
  • Las interacciones entre los objetos, mostradas como secuencias de mensajes que activan métodos.

Cada caso de uso ameritará varios casos de prueba; al menos uno por cada diagrama de secuencia que se haya preparado, pero usualmente más. El mayor número se origina por dos elementos:

  • El estado de los diversos componentes del diagrama
  • Los posibles valores que pueden tomar los diversos parámetros de los métodos invocados.

Debido a que el software orientado a objeto no tiene una estructura de control jerárquica, las estrategias convencionales de integración ascendente y descendente poseen un significado muy pequeño (Colina 2015).

Nuevos paradigmas en Orientación a Objetos:

Pruebas basadas en hilos

Integra las clases requeridas para responder a una entrada o suceso del sistema (diagramas de secuencia de UML). Cada hilo se integra y prueba individualmente

Pruebas basadas en el uso

  • Se comienza probando las clases más independientes
  • Se continúa con las más dependientes hasta probar todo el sistema

Pruebas de Pruebas de agrupamiento

  • Se selecciona un agrupamiento de clases colaboradoras
  • Se prueba diseñando las clases de pruebas que revelan errores en las colaboraciones

Las pruebas de caminos son una estrategia de pruebas estructurales cuyo objetivo es probar cada camino de ejecución independiente en un componente o programa. Si cada camino independiente, entonces todas las sentencias en el componente deben haberse ejecutado al menos una vez. Además, todas las sentencias condicionales comprueban para los casos verdadero y falso. En un proceso de desarrollo orientado a objetos, pueden utilizarse las pruebas de caminos cuando se prueban los métodos asociados a los objetos.

El número de caminos en un programa es normalmente proporcional a su tamaño. Puesto que los módulos se integran en sistemas, no es factible utilizar técnicas de pruebas estructurales. Por lo tanto, las técnicas de pruebas de caminos son principalmente utilizadas durante las pruebas de componentes.

Las pruebas de caminos no prueban todas las posibles combinaciones de todos los caminos en el programa. Para cualquier componente distinto de un componente trivial sin bucles, este es un objetivo imposible. Existe un número infinito de posibles combinaciones de caminos en los programas con bucles. Incluso cuando todas las sentencias del programa se han ejecutado al menos una vez, los defectos del programa todavía pueden aparecer cuando se combinan determinados caminos.

El punto de partida de una prueba de caminos es un grafo de flujo del programa. Este es un modelo del esqueleto de todos los caminos en el programa. Un grafo de flujo consiste en nodos que representan decisiones y aristas que muestran el flujo de control. El grafo de flujo se construye reemplazando las sentencias de control del programa por diagramas equivalentes. Si no hay sentencias goto en un programa, es un proceso sencillo derivar su grafo de flujo. Cada rama en una sentencia condicional (if-then-else o case) se muestra como un camino independiente. Una flecha que vuelve al nodo de la condición denota un bucle.

El objetivo de la prueba de caminos es asegurar que cada camino independiente en el programa se ejecuta al menos una vez. Un camino independiente del programa es aquel que recorre al menos una nueva arista en el grafo de flujo. En términos de programas, esto significa ejecutar una o más condiciones nuevas. Se deben ejecutar las ramas verdadera y falsa de todas las condiciones (Sommerville, 2005).

Videos:



Referencias bibliográficas

Colina, Alejandra. 2015. “Prueba de Aplicaciones Orientadas a Objeto.”

Fernández Peña, Juan Manuel. 2020. “Guía Mínima de Prueba de Software Orientado a Objetos.”

Quiñones, I. 2019. “Prueba Software Orientado a Objetos.” Retrieved November 24, 2022 (https://es.slideshare.net/IreneQuionesOsorio/prueba-software-orientado-a-objetos).

Sommerville, Ian. 2005. “(99+) Ingenieria de Software - Ian Sommerville 7a Edicion | Felipe Ariel Collipal Cruz - Academia.Edu.” Retrieved November 17, 2022 (https://www.academia.edu/15059886/Ingenieria_de_Software_Ian_Sommerville_7a_Edicion).

 

Comentarios

Entradas populares de este blog

Pruebas de integración descendentes