Concepto: Prueba de estructura
La clave de las pruebas de estructura es que todos los resultados de las decisiones deben ejercitarse de forma independiente durante la prueba y que el número de pruebas necesario para un módulo de software es igual a la complejidad ciclomática de dicho módulo.
Relaciones
Elementos relacionados
Descripción principal

El concepto de prueba estructural se utiliza en dos contextos principales. Aunque son de naturalezas diferentes, podría decirse que el concepto o idea raíz que se esconde detrás de la prueba de estructura es la misma en ambos casos.

Prueba de estructura de cualidades esenciales del código

La referencia más antigua y, quizás, el uso más establecido del término "prueba de estructura" están relacionados con la prueba de la estructura interna del código fuente del software. La mayoría de las veces, esta forma de prueba de estructura se realiza como una prueba "estática" en vez de como una prueba "dinámica", en la medida que el software no se ejecuta para realizar la prueba. Las herramientas de diagnóstico analizan el código fuente, buscan errores estructurales y puntos débiles, normalmente proporcionan una lista para activar la siguiente acción correctiva que se debe llevar a cabo. Este tipo de prueba y evaluación la dirigen los desarrolladores, en vez de los verificadores del sistema.

Prueba de estructura de sitios web

Las aplicaciones basadas en web (las que utilizan tecnología de aplicaciones de Internet) son cada vez más frecuentes. Este impulso se ha visto alentado por el hecho de que este método de despliegue y desarrollo de software ofrece a las empresas la capacidad de aprovechar varias de las ventajas empresariales habilitadas para la tecnología, por ejemplo:

  • Auditorio desarrollado de clientes, perspectivas y business partners sin enviar un solo trozo de papel o de software. Cualquier persona que tenga un navegador y acceso a la "red" (Internet o Intranet) puede indicar al navegador que vaya a la URL publicada e, inmediatamente, ejecutar la aplicación.
  • Mantenimiento y control centralizados. El modelo "cliente ligero/servidor pesado" de aplicaciones basadas en web sitúa a la lógica y a los componentes de la aplicación en el servidor web, que centraliza y simplifica el control y el mantenimiento. Esto también permite a los desarrolladores distribuir el software de forma automática. Una vez que la aplicación se encuentre en el servidor, estará disponible inmediatamente para todos los usuarios.

A pesar de que las ventajas que tiene para los que utilizan esta tecnología, las aplicaciones basadas en web aumentan la demanda de pruebas. La prueba de estas aplicaciones basadas en web, al igual que las aplicaciones que no se basan en web (cliente/servidor, herencia, etc.), requiere que se tengan en cuenta las características de rendimiento y función de las aplicaciones. Además, las aplicaciones basadas en web tienen la necesidad añadida de pruebas que se centren en la estructura de la aplicación para garantizar que está bien formada y que todos los enlaces son válidos.

Normalmente, las aplicaciones basadas en web se construyen mediante una serie de documentos (tanto documentos de texto HTML como gráficos GIF/JPEG) que están conectados mediante muchos enlaces estáticos y unos cuantos enlaces activos, o controlados por el programa. Estas aplicaciones también pueden incluir "contenido activo", como formularios, Java Scripts, contenido representado del plug-in o aplicaciones Java. Es frecuente que este contenido activo se utilice únicamente para la salida, por ejemplo, para la presentación de vídeo o de audio. Sin embargo, también se puede utilizar como ayuda para la navegación, para ayudar al usuario a navegar por la aplicación (sitio web). La naturaleza de formato libre de las aplicaciones basadas en web (mediante los enlaces) es una gran ventaja, pero también un gran punto débil, ya que es muy fácil dañar su integridad estructural.

La prueba de estructura se implementa y ejecuta para verificar que todos los enlaces (estáticos o activos) están conectados correctamente. Estas pruebas incluyen:

  • Verificación de que se muestra el contenido correcto (texto, gráficos, etc.) de cada enlace. Se utilizan diferentes tipos de enlaces para hacer referencia al contenido de destino de las aplicaciones basadas en web, como los marcadores, hiperenlaces a otro contenido de destino (en el mismo sitio web o en uno diferente) o zonas activas. Deben comprobarse todos los enlaces para garantizar que se muestra el contenido de destino correcto a los usuarios.
  • Comprobación de que no hay enlaces rotos. Los enlaces rotos son los enlaces cuyo contenido de destino no se puede encontrar. Los enlaces pueden estar rotos por muchos motivos, incluidos el desplazamiento, la eliminación o el cambio de nombre de los archivos de contenido de destino. Los enlaces también pueden estar rotos debido a un uso incorrecto de la sintaxis, incluidos los dos puntos, las barras inclinadas o las letras que falten.
  • Verificación de que no hay contenido huérfano. El contenido huérfano son los archivos que no tienen enlaces "de entrada" en el sitio web actual; es decir, no se puede acceder a su contenido ni se puede presentar. Debe investigarse con cuidado el contenido huérfano para determinar la causa:
    • ¿Es huérfano porque realmente ya no es necesario?
    • ¿Es huérfano debido a un enlace roto?
    • ¿O se accede a él a través de un enlace externo al sitio web actual?

Una vez que se haya determinado la causa, debe llevarse a cabo la acción adecuada, como eliminar el archivo de contenido, reparar el enlace roto o ignorar el huérfano, respectivamente.