6.4 ESTRATEGIAS DE PRUEBA Prueba del sistema Prueba de validación Prueba de integración Prueba de Unidad Código Diseño Requisitos Ingeniería del Sistema 6.4 ESTRATEGIAS DE PRUEBA Las pruebas del software aplican similar estrategia moviéndonos de adentro hacia afuera de la espiral. la prueba de unidad comienza en el vértice de la espiral y se centra en cada unidad del software, tal como está implementada en código fuente. La prueba avanza para llegar a la prueba de integración, donde el foco de atención es el diseño y construcción de la arquitectura del software. Otra vuelta hacia afuera encontramos la prueba de validación, donde se validan los requisitos establecidos como parte del análisis de requisitos del software, comparándolos con el sistema que ha sido construido. Finalmente, llegamos a la prueba del sistema en la que se prueban como un todo el software y otros elementos del sistema. 6.4 ESTRATEGIAS DE PRUEBA PRUEBA DE UNIDAD La prueba de unidad centra el proceso de verificación en la menor unidad del diseño: el módulo. Usando la descripción del diseño detallado como guía, se prueban los caminos de control importantes, con el fin de descubrir errores dentro del módulo. Se prueba la interfase para asegurar que la información fluye de forma adecuada hacia y desde la unidad del programa que está siendo probada. Se examinan las estructuras de datos locales para asegurar que los datos que se mantienen temporalmente conservan su integridad durante la ejecución del algoritmo. 6.4 ESTRATEGIAS DE PRUEBA PRUEBA DE UNIDAD Se prueban las condiciones límite para asegurar que el módulo funciona correctamente con los límites establecidos. Se ejercitan todos los caminos independientes de la estructura de control para asegurar que todas las sentencias del módulo se ejecuten por lo menos una vez. Y finalmente se prueban todos los caminos de manejo de errores. 6.4 ESTRATEGIAS DE PRUEBA PRUEBA DE INTEGRACION Si todos los módulos funcionan bien ¿ por qué dudar de que funcionen bien juntos ?. El problema es "ponerlos juntos". La prueba de integración detecta errores de interacción. El procedimiento adecuado se llama integración incremental con el cual se construye y se prueba en pequeños segmentos en los que los errores son más fáciles de aislar y corregir. 6.4 ESTRATEGIAS DE PRUEBA PRUEBA DE INTEGRACION Un plan general de integración y una descripción de las pruebas específicas deben quedar documentados en una especificación de prueba, es parte esencial del proceso de ingeniería de software y forma parte de la configuración del software. 6.4 ESTRATEGIAS DE PRUEBA Un perfil de la especificación de prueba puede ser el siguiente: I. Alcance de la prueba. II. Plan de prueba. A. Fases de prueba. B. Agenda. C. Software adicional. D. Entorno y recursos. III. Procedimiento de prueba N. A. Orden de integración. 1. Propósito. 2. Módulos a ser probados. B. Pruebas de unidad para los módulos de la subfase. 1. Descripción de pruebas para el módulo M. 2. Descripción del software adicional. 3. Resultados esperados. C. Entorno de prueba. 1. Herramientas o técnicas especiales. 2. Descripción del software adicional. D. Datos de los casos de prueba. E. Resultados esperados para la subfase N. IV. Resultados de prueba obtenidos. V. Referencias. VI. Apéndices. 6.4 ESTRATEGIAS DE PRUEBA El alcance de prueba resume las características funcionales, de rendimiento y diseño interno específicas a probar. Se limita el esfuerzo de prueba, se describen criterios de terminación de cada fase de prueba y se documentan las limitaciones del plan. El plan de prueba describe la estrategia general para la integración. Se divide en fases y subfases. En todas las fases se siguen los siguientes criterios: Integridad de interfase, validez funcional, contenido de la información y rendimiento. 6.4 ESTRATEGIAS DE PRUEBA La sección de procedimiento de prueba describe detalladamente el procedimiento de prueba requerido para llevar a cabo el plan de prueba, describiendo el orden de integración y las pruebas de cada fase. Asimismo se incluye un listado de todos los casos de prueba y resultados esperados. Se registran los resultados reales de prueba obtenidos, problemas y peculiaridades. Esta información es vital para el mantenimiento del software. 6.4 ESTRATEGIAS DE PRUEBA PRUEBA DE VALIDACION Una vez ensamblado como paquete probamos la validación, la cual se logra cuando el software funciona de acuerdo con las expectativas razonables del cliente. Estas expectativas están definidas en la especificación de requisitos que describe los atributos del software visibles al usuario, basado en los criterios de validación de dicho documento. La prueba de validación se lleva a cabo con pruebas de la caja negra que demuestran la conformidad con los requisitos. 6.4 ESTRATEGIAS DE PRUEBA PRUEBA DE VALIDACION Una vez probado cada caso pueden darse dos condiciones: las características de funcionamiento ó de rendimiento están de acuerdo con las especificaciones y son aceptables, ó se descubre una desviación de las especificaciones y se crea una lista de deficiencias. 6.4 ESTRATEGIAS DE PRUEBA PRUEBA DE VALIDACION Se pueden realizar pruebas alfa ó beta, la prueba alfa es conducida por un cliente en el lugar de desarrollo; la prueba beta en uno ó más lugares de clientes y usuarios finales. En la alfa el desarrollador observa, en la beta es una aplicación en vivo en un entorno que no controla el desarrollador. Como resultado el equipo de desarrollo de software lleva a cabo modificaciones y así prepara una versión del producto de software para toda la base de clientes. 6.4 ESTRATEGIAS DE PRUEBA PRUEBA DE SISTEMA Constituida por una serie de pruebas diferentes cuyo propósito es ejercitar profundamente el sistema basado en computadora. Entre pruebas de sistema tenemos: Prueba de recuperación: forza el fallo del software de muchas formas y verifica que la recuperación se lleva a cabo apropiadamente. Se evalúa la corrección de reinicialización, mecanismos de recuperación del estado del sistema, recuperación de datos y rearranque. Prueba de seguridad: intenta verificar que los mecanismos de protección del sistema lo protegerán adecuadamente. 6.4 ESTRATEGIAS DE PRUEBA PRUEBA DE SISTEMA Prueba de resistencia: está diseñada para enfrentar a los programas con situaciones anormales, es decir, ejecuta un sistema de forma que demande recursos en cantidad, frecuencia ó volúmenes anormales. Una variación de esta prueba es la prueba de sensibilidad, utilizando datos que produzcan inestabilidad ó procesamiento incorrecto. Prueba de rendimiento: prueba el rendimiento del software en tiempo de ejecución. Se da en todos los pasos del proceso de prueba. EJERCICIO: Prueba de unidad en el contexto orientado a objetos Prueba de clase Prueba de integracion en el contexto orientado a objetos Prueba basada en subprocesos Prueba basada en el uso Prueba de grupo