Validacion Y Verificacion

7
VALIDACION Y VERIFICACION VALIDACION Y VERIFICACION El proceso de control que asegura que el software El proceso de control que asegura que el software cumple con su especificación y satisface las cumple con su especificación y satisface las necesidades del usuario necesidades del usuario Muchas veces se confunde “verificación” con Muchas veces se confunde “verificación” con validación”. Boehm (1979) puso en claro con pocas validación”. Boehm (1979) puso en claro con pocas palabras la diferencia: palabras la diferencia: Validación: ¿Estamos construyendo el producto Validación: ¿Estamos construyendo el producto correcto? Se ocupa de controlar si el producto satisface correcto? Se ocupa de controlar si el producto satisface los los requerimientos del usuario requerimientos del usuario Verificación: ¿Estamos construyendo correctamente Verificación: ¿Estamos construyendo correctamente el producto? implica controlar que el producto el producto? implica controlar que el producto conforma su especificación inicial. conforma su especificación inicial.

Transcript of Validacion Y Verificacion

Page 1: Validacion Y Verificacion

VALIDACION Y VERIFICACIONVALIDACION Y VERIFICACION

El proceso de control que asegura que el software El proceso de control que asegura que el software cumple con su especificación y satisface las cumple con su especificación y satisface las necesidades del usuarionecesidades del usuarioMuchas veces se confunde “verificación” con Muchas veces se confunde “verificación” con validación”. Boehm (1979) puso en claro con pocas validación”. Boehm (1979) puso en claro con pocas palabras la diferencia: palabras la diferencia: • • Validación: ¿Estamos construyendo el producto Validación: ¿Estamos construyendo el producto correcto? Se ocupa de controlar si el producto satisface correcto? Se ocupa de controlar si el producto satisface los los requerimientos del usuariorequerimientos del usuario• • Verificación: ¿Estamos construyendo correctamente Verificación: ¿Estamos construyendo correctamente el producto? implica controlar que el producto el producto? implica controlar que el producto conforma su especificación inicial. conforma su especificación inicial.

Page 2: Validacion Y Verificacion

TECNICAS DE CONTROL TECNICAS DE CONTROL DINAMICASDINAMICAS

Las técnicas dinámicas, también conocidas como Las técnicas dinámicas, también conocidas como testing testing (o prueba, en español) se basan en (o prueba, en español) se basan en ejercitar una implementación. Por lo tanto, sólo ejercitar una implementación. Por lo tanto, sólo pueden ser aplicadas si existe una versión pueden ser aplicadas si existe una versión operativa o ejecutable del producto.operativa o ejecutable del producto.

Page 3: Validacion Y Verificacion

TECNICAS DE CONTROL TECNICAS DE CONTROL ESTATICASESTATICAS

Son las primeras pruebas que se aplican al Son las primeras pruebas que se aplican al softwaresoftwareTienen como objetivo mejorar la calidad de los Tienen como objetivo mejorar la calidad de los productos de software ayudando a los ingenieros a productos de software ayudando a los ingenieros a reconocer y arreglar sus propios defectos en reconocer y arreglar sus propios defectos en etapas tempranas del proceso de desarrollo sin etapas tempranas del proceso de desarrollo sin ejecutar código. ejecutar código. Busca defectos sin ejecutar el código. Se lleva Busca defectos sin ejecutar el código. Se lleva acabo una vez que se escribe el código. acabo una vez que se escribe el código. Encuentran las causas de los defectos.Encuentran las causas de los defectos.Se basan en examen manual (revisiones) o Se basan en examen manual (revisiones) o automatizadas (análisis estático) del código o automatizadas (análisis estático) del código o documentación.documentación.

Page 4: Validacion Y Verificacion

TECNICAS DE CONTROL TECNICAS DE CONTROL ESTATICASESTATICAS

Las técnicas estáticas tienen que ver con el análisis Las técnicas estáticas tienen que ver con el análisis y control de las representaciones del sistema, es y control de las representaciones del sistema, es decir de los diferentes modelos construidos decir de los diferentes modelos construidos durante el proceso de desarrollo de software tales durante el proceso de desarrollo de software tales como documentos de requerimientos, diagramas como documentos de requerimientos, diagramas de análisis y diseño y código fuente. En esta de análisis y diseño y código fuente. En esta categoría caen, por ejemplo, las revisiones técnicas categoría caen, por ejemplo, las revisiones técnicas formales o inspecciones de programas, la formales o inspecciones de programas, la verificación formal (basada en el uso de notaciones verificación formal (basada en el uso de notaciones formales con base matemática) y herramientas de formales con base matemática) y herramientas de análisis estático (muchas de ellas provistas hoy en análisis estático (muchas de ellas provistas hoy en día como parte del compilador, como por ejemplo día como parte del compilador, como por ejemplo la detección de variables no utilizadas, código la detección de variables no utilizadas, código inalcanzable, etc.). inalcanzable, etc.).

Page 5: Validacion Y Verificacion

TECN

ICAS

DE

TECN

ICAS

DE

CON

TRO

L ES

TATI

CAS

CON

TRO

L ES

TATI

CAS

Aunque las técnicas de verificación estáticas son Aunque las técnicas de verificación estáticas son usadas cada vez más, la prueba de programas usadas cada vez más, la prueba de programas sigue siendo aún la técnica predominante de sigue siendo aún la técnica predominante de validación y verificación. validación y verificación. La prueba de programas involucra ejecutar el La prueba de programas involucra ejecutar el programa proveyéndole entradas con el fin de programa proveyéndole entradas con el fin de detectar la mayor cantidad de defectos posibles. detectar la mayor cantidad de defectos posibles. Las pruebas son diseñadas con el propósito de Las pruebas son diseñadas con el propósito de revelar la presencia de defectos. Decimos que un revelar la presencia de defectos. Decimos que un caso de prueba es exitoso cuando lograr poner en caso de prueba es exitoso cuando lograr poner en evidencia defectos. Esto pone de manifiesto un evidencia defectos. Esto pone de manifiesto un hecho importante acerca de la prueba: “La prueba hecho importante acerca de la prueba: “La prueba de programas demuestra la presencia y no la de programas demuestra la presencia y no la ausencia de errores”. ausencia de errores”.

Page 6: Validacion Y Verificacion

TECN

ICAS

DE

TECN

ICAS

DE

CON

TRO

L ES

TATI

CAS

CON

TRO

L ES

TATI

CAS

ANALISIS ESTATICOANALISIS ESTATICO

Son herramientas de software para procesar textos Son herramientas de software para procesar textos fuente. fuente. Estos analizan sintácticamente el texto del Estos analizan sintácticamente el texto del programa y tratan de descubrir condiciones programa y tratan de descubrir condiciones potencialmente erróneas y llamar la atención del potencialmente erróneas y llamar la atención del equipo de V & V.equipo de V & V.Son una ayuda muy efectiva en las inspecciones Son una ayuda muy efectiva en las inspecciones (son un complemento, no una sustitución de las (son un complemento, no una sustitución de las inspecciones)inspecciones)

ETAPAS DEL ANALISIS ESTATICOETAPAS DEL ANALISIS ESTATICO- Análisis del flujo de control. Comprueba los - Análisis del flujo de control. Comprueba los bucles con múltiples puntos de entrada o salida, bucles con múltiples puntos de entrada o salida, encuentra códigos inalcanzables.encuentra códigos inalcanzables.

Page 7: Validacion Y Verificacion

TECN

ICAS

DE

TECN

ICAS

DE

CON

TRO

L ES

TATI

CAS

CON

TRO

L ES

TATI

CAS

ANALISIS DE USO DE LOS DATOSANALISIS DE USO DE LOS DATOSDetecta variables no inicializadas, variables escritas dos Detecta variables no inicializadas, variables escritas dos veces sin que intervenga una asignación, variables que veces sin que intervenga una asignación, variables que se declaran pero nunca se usan, etc. se declaran pero nunca se usan, etc.

ANALISIS DE INTERFAZ.ANALISIS DE INTERFAZ.Comprueba la consistencia de una rutina, las Comprueba la consistencia de una rutina, las declaraciones del procedimiento y su uso. declaraciones del procedimiento y su uso.

USO DEL ANALISIS ESTATICOUSO DEL ANALISIS ESTATICOEs particularmente valioso cuando se utiliza un Es particularmente valioso cuando se utiliza un lenguaje como C que tiene un tipado débil y por tanto lenguaje como C que tiene un tipado débil y por tanto muchos errores no detectados por el compilador muchos errores no detectados por el compilador Es menos rentable para lenguajes como java que Es menos rentable para lenguajes como java que tienen una fuerte comprobación de tipado y por lo tienen una fuerte comprobación de tipado y por lo tanto pueden detectar muchos errores durante la tanto pueden detectar muchos errores durante la compilación. compilación.