VALIDACION Y VERIFICACION El proceso de control que asegura que el software cumple con su especificación y satisface las necesidades del usuario Muchas veces se confunde “verificación” con validación”. Boehm (1979) puso en claro con pocas palabras la diferencia: • Validación: ¿Estamos construyendo el producto correcto? Se ocupa de controlar si el producto satisface los requerimientos del usuario • Verificación: ¿Estamos construyendo correctamente el producto? implica controlar que el producto conforma su especificación inicial.
TECNICAS DE CONTROL DINAMICAS Las técnicas dinámicas, también conocidas como testing (o prueba, en español) se basan en ejercitar una implementación. Por lo tanto, sólo pueden ser aplicadas si existe una versión operativa o ejecutable del producto.
TECNICAS DE CONTROL ESTATICAS Son las primeras pruebas que se aplican al software Tienen como objetivo mejorar la calidad de los productos de software ayudando a los ingenieros a reconocer y arreglar sus propios defectos en etapas tempranas del proceso de desarrollo sin ejecutar código. Busca defectos sin ejecutar el código. Se lleva acabo una vez que se escribe el código. Encuentran las causas de los defectos. Se basan en examen manual (revisiones) o automatizadas (análisis estático) del código o documentación.
TECNICAS DE CONTROL ESTATICAS Las técnicas estáticas tienen que ver con el análisis y control de las representaciones del sistema, es decir de los diferentes modelos construidos durante el proceso de desarrollo de software tales como documentos de requerimientos, diagramas de análisis y diseño y código fuente. En esta categoría caen, por ejemplo, las revisiones técnicas formales o inspecciones de programas, la verificación formal (basada en el uso de notaciones formales con base matemática) y herramientas de análisis estático (muchas de ellas provistas hoy en día como parte del compilador, como por ejemplo la detección de variables no utilizadas, código inalcanzable, etc.).
TECNICAS DE CONTROL ESTATICAS Aunque las técnicas de verificación estáticas son usadas cada vez más, la prueba de programas sigue siendo aún la técnica predominante de validación y verificación. La prueba de programas involucra ejecutar el programa proveyéndole entradas con el fin de detectar la mayor cantidad de defectos posibles. Las pruebas son diseñadas con el propósito de revelar la presencia de defectos. Decimos que un caso de prueba es exitoso cuando lograr poner en evidencia defectos. Esto pone de manifiesto un hecho importante acerca de la prueba: “La prueba de programas demuestra la presencia y no la ausencia de errores”.
TECNICAS DE CONTROL ESTATICAS ANALISIS ESTATICO Son herramientas de software para procesar textos fuente. Estos analizan sintácticamente el texto del programa y tratan de descubrir condiciones potencialmente erróneas y llamar la atención del equipo de V & V. Son una ayuda muy efectiva en las inspecciones (son un complemento, no una sustitución de las inspecciones) ETAPAS DEL ANALISIS ESTATICO - Análisis del flujo de control. Comprueba los bucles con múltiples puntos de entrada o salida, encuentra códigos inalcanzables.
TECNICAS DE CONTROL ESTATICAS ANALISIS DE USO DE LOS DATOS Detecta variables no inicializadas, variables escritas dos veces sin que intervenga una asignación, variables que se declaran pero nunca se usan, etc. ANALISIS DE INTERFAZ. Comprueba la consistencia de una rutina, las declaraciones del procedimiento y su uso. USO DEL ANALISIS ESTATICO Es particularmente valioso cuando se utiliza un lenguaje como C que tiene un tipado débil y por tanto muchos errores no detectados por el compilador Es menos rentable para lenguajes como java que tienen una fuerte comprobación de tipado y por lo tanto pueden detectar muchos errores durante la compilación.