Decima Semana


about-img

Estrategias de prueba del software

Es un elemento crítico para la garantía de la calidad del software y representa una revisión final de las especificaciones, del diseño y de la codificación.

Bohem lo define:
Verificación: ¿Estamos construyendo el software correctamente?
Validación: ¿Estamos construyendo el producto correcto?

Objetos de la prueba

1. La prueba es un proceso de ejecución de un programa con la intención de descubrir un error.

2. Un buen caso de prueba es aquel que tiene una alta probabilidad de mostrar un error no descubierto hasta entonces.

3. Una prueba tiene éxito si descubre un error no detectado hasta entonces.

Pruebas de Unidad

La prueba de unidad centra el proceso de verificación en la menor unidad del diseño del software: “el módulo”. Usando la descripción del diseño procedimental como guía, se prueban los caminos de control importantes, con el fin de descubrir errores dentro del límite del módulo. La prueba de unidad está orientada a caja blanca y este paso se puede llevar a cabo en paralelo para múltiples módulos


Pruebas de Unidad: Pruebas de caja blanca

La prueba de caja blanca denominada a veces prueba de caja de cristal es un método de diseño de casos de prueba que usa la estructura de control del diseño procedimental para obtener los casos de prueba. Se comprueban los caminos lógicos del software proponiendo casos de prueba que ejerciten conjuntos específicos de condiciones y/o bucles. Se puede examinar el estado del programa en varios puntos para determinar si el estado real coincide con el esperado.


Pruebas de Unidad: Pruebas de caja negra

Se llevan a cabo sobre la interfaz del sistema reduciendo el número de casos de prueba mediante la elección de entradas y salidas válidas y no válidas que ejercitan toda la funcionalidad del sistema. Se centran en los requisitos funcionales del software. Permite al ingeniero del software obtener conjuntos de condiciones de entrada que ejerciten completamente todos los requisitos funcionales de un programa, es decir consideran la función para la cual fue creado el producto (lo que hace).

Pruebas de Integración

  • 1. El objetivo es tomar los módulos probados en una unidad y construir una estructura de programa que esté de acuerdo con lo que establece el diseño.

  • 2. Se comprueba la compatibilidad y funcionalidad de los interfaces entre las distintas ‘partes’ que componen un sistema, estas ‘partes’ pueden ser módulos, aplicaciones individuales, aplicaciones cliente/servidor, etc.

  • 3. Este tipo de pruebas es especialmente relevante en aplicaciones distribuidas

Pruebas de Validación

Tras la culminación de la prueba de integración, el software está completamente ensamblado como un paquete; se han encontrado y corregido los errores de interfaz y puede comenzar una serie final de pruebas del software: la prueba de validación. La validación del software se consigue mediante una serie de pruebas de caja negra que demuestran la conformidad con los requisitos. Una vez que se procede con cada caso de prueba de validación, puede darse una de las siguientes condiciones:

  • 1. Las características de funcionamiento o de rendimiento están de acuerdo con las especificaciones y son aceptables

  • 2. Se descubre una desviación de las especificaciones se crea una lista de deficiencias.

Pruebas de Sistema

Está constituida por una serie de pruebas diferentes cuyo propósito primordial es ejercitar profundamente el sistema basado en computadora. Aunque cada prueba tiene un propósito diferente, todas trabajan para verificar que todos los elementos del sistema se han integrado adecuadamente y que realizan las funciones apropiadas.


Prueba de recuperación

Es una prueba del sistema que fuerza el fallo del software de muchas formas y verifica que la recuperación se lleva a cabo apropiadamente. Si la recuperación es automática (llevada a cabo por el propio sistema) hay que evaluar la corrección de la inicialización, de los mecanismos de recuperación del estado del sistema, de la recuperación de datos y del proceso de arranque. Si la recuperación requiere la intervención humana, hay que evaluar los tiempos medios de reparación para determinar si están dentro de límites aceptables.


Prueba de seguridad

La prueba intenta verificar que los mecanismos de protección incorporados en el sistema lo protegerán de accesos impropios por parte de piratas informáticos. Durante la prueba de seguridad, el responsable (de la prueba) desempeña el papel de un individuo que desea ingresar al sistema, debe intentar conseguir las claves de acceso por cualquier medio, debe producir a propósito errores del sistema. Con tiempo y recursos suficientes, una buena prueba de seguridad terminará por acceder al sistema. El papel del diseñador del sistema es hacer que el coste de la entrada ilegal sea mayor que el valor de la información obtenida.