validacion y verificacion inspecciones de software.ppt

38
Verificación y Verificación y Validación del Validación del Software Software Unidad 2. Revisiones del Unidad 2. Revisiones del Software (Parte 1) Software (Parte 1)

Upload: dolce19g

Post on 10-Sep-2015

15 views

Category:

Documents


0 download

TRANSCRIPT

  • Verificacin y Validacin del SoftwareUnidad 2. Revisiones del Software (Parte 1)

    Revisiones del Software

  • Revisiones del Software*Unidad 2: Revisiones del SoftwareDefinicin y caractersticas de las revisiones del softwareTipos de revisiones de softwareEstndar IEEE-1028 "Standard for Software ReviewsEl proceso de cada uno de los principales tipos de revisin: inspecciones, recorridos y revisiones personalesRevisin de los principales productos de trabajo: plan del proyecto, requerimientos, diseo, cdigoFormatos propuestos para la documentacin de las revisiones de software

    Revisiones del Software

  • Revisiones del Software*Revisiones de software, qu son?Son parte del proceso de verificacin del software.Las revisiones o inspecciones de software, son un proceso de V&V esttico en el que un sistema software se revisa para encontrar errores, omisiones y anomalas.Generalmente se centran en el cdigo fuente, pero pueden aplicarse a cualquier producto del proceso de desarrollo.Son un filtro para el proceso de software.

    Revisiones del Software

  • Revisiones del Software*Revisiones de software, qu son?En los procesos de manufactura tradicional, las inspecciones por especialistas en aseguramiento de la calidad es una prctica aceptada, y comn.

    Estas inspecciones toman lugar en puntos especficos de la lnea de ensamblaje, y son usadas para asegurar que las partes y los ensamblajes estn correctamente construidos acorde a las especificaciones.

    La forma ms comn de inspeccin sigue siendo una persona haciendo un juicio basado en su experiencia.

    Revisiones del Software

  • Revisiones del Software*Revisiones de software, qu son?Las inspecciones son usadas para asegurar la calidad durante el proceso de desarrollo, no slo en la fase de implementacin.

    Si una organizacin mantiene registros de los resultados de las inspecciones y de todos los otros mtodos de identificacin de defectos, podr detectar el porcentaje promedio de errores localizados, y entonces indicar cundo un producto est listo para pasar a la siguiente etapa del proceso de desarrollo.

    Revisiones del Software

  • Revisiones del Software*Revisiones de software, qu son?Las revisiones de software pueden ser muy variadas,desde revisiones informales, como una reunin informal alrededor de una mquina de caf donde se discuten aspectos tcnicos de algn producto del proceso,hasta revisiones formales, como una presentacin formal del diseo del software ante un auditorio de clientes, gestores y personal tcnico.

    Revisiones del Software

  • Revisiones del Software*Revisiones de Software: VentajasVentaja 1Durante las pruebas, los errores pueden ocultar otros errores.Cuando se descubre un error, nunca se puede estar seguro de si otras anomalas de salida son debidas a un nuevo error o son efectos secundarios del error original.Debido a que la inspeccin es un proceso esttico, no hay que preocuparse de las interacciones entre errores.Una nica sesin de inspeccin puede descubrir muchos errores en un sistema

    Revisiones del Software

  • Revisiones del Software*Revisiones de Software: VentajasVentaja 2Pueden inspeccionarse versiones incompletas de un sistema sin costos adicionales.Si un programa est incompleto, entonces se necesita desarrollar software de soporte especializado para las pruebas a fin de probar aquellas partes que estn disponibles.

    Revisiones del Software

  • Revisiones del Software*Revisiones de Software: VentajasVentaja 3Adems de buscar los defectos en el programa, una inspeccin tambin puede considerar atributos de calidad ms amplios de un programa, tales como grado de cumplimiento con los estndares, portabilidad y mantenibilidad.Puede buscarse ineficiencias, algoritmos no adecuados y estilos de programacin que podran hacer que el sistema fuese difcil de mantener y actualizar.

    Revisiones del Software

  • Revisiones del Software*Algunos problemasProblema 1.Uno de los mayores daos en las inspecciones, es la inhabilidad de los productores y los inspectores de diferenciar un producto de la persona que lo creo.Cuando un producto particular tiene muchos errores, los inspectores en ocasiones pueden ensaarse atacando al productor.Se debe mantener la inspeccin centrada en el producto, as como un tono profesional durante las reuniones de inspeccin.

    Revisiones del Software

  • Revisiones del Software*Algunos problemasProblema 2.Tratar de usar inspecciones sin programar el tiempo adecuado para su preparacin y seguimiento.Una preparacin insuficiente reduce el nmero de lneas o elementos que pueden ser inspeccionados en una reunin particular, dado que el tiempo se consume en tratar de entender el producto.Un seguimiento insuficiente puede causar que los defectos se mantengan. Defectos que podran no ser encontrados en pruebas posteriores.

    Revisiones del Software

  • Qu se busca?La reduccin de defectos, fallas, errores, etc. en el sistema de software.

    Revisiones del Software

  • Algunas enfermedades, dicen los mdicos, son fciles de curar en sus inicios aunque difciles de reconocer pero en el transcurso del tiempo, cuando no han sido reconocidas a primera vista y tratadas, se vuelven fciles de reconocer pero difciles de curarNicols Maquiavelo

    Revisiones del Software

  • Revisiones del Software*Problemas de calidad del softwareLa meta del aseguramiento de la calidad, es eliminar los problemas en el software, los cuales pueden tener distintos nombres como bugs, fallas, errores, defectos, etc.Es importante definir a qu nos referimos con cada cosa, por ejemplo:Error: es un problema descubierto antes de que el software sea liberado entre usuarios finales.Defecto:es un problema detectado slo despus de que el software ha sido liberado entre los usuarios finales.La diferencia tambin podra estar entre si el problema se detecta en la misma fase del proceso donde se gener, o en una fase posterior.

    Revisiones del Software

  • Revisiones del Software*Impacto de los defectosEl objetivo de las inspecciones es encontrar los errores antes de que se conviertan en defectos, de modo que no se propaguen a travs del proceso

    Revisiones del Software

  • Revisiones del Software*Ampliacin y eliminacin de defectosPara ilustrar la generacin y deteccin de errores, usaremos el siguiente modelo de ampliacin de defectos.Errores pasados por altoErrores amplificados 1:xNuevos errores generadosPorcentaje de eficiencia para deteccin de erroresErrores que pasan al siguiente pasoErrores que vienen de pasos previosDefectosDeteccin

    Revisiones del Software

  • Revisiones del Software*Modelo de ampliacin de defectosUn recuadro representa un paso de desarrollo de software.Durante el paso, los errores se pueden generar de manera inadvertida.La revisin puede fallar en descubrir errores generados de manera reciente y errores de pasos anteriores, lo que resulta en cierto nmero de errores que se pasan por alto.En algunos casos, los errores que se pasan por alto de pasos anteriores, se amplifican con el trabajo actual.

    Revisiones del Software

  • Revisiones del Software*Ampliacin y eliminacin de defectos00100%Diseo preliminar64x1.5250%Diseo Detallado1027x32520%Prueba cdigo/unidad1064371027X = 1.5X = 30050%Prueba de integracin0050%Prueba de validacin0050%Prueba de sistema4724A integracin9494Errores latentes12SIN inspeccinEs una suposicin optimista

    Revisiones del Software

  • Revisiones del Software*Ampliacin y eliminacin de defectos001070%Diseo preliminar21x1.52550%Diseo Detallado510x32560%Prueba cdigo/unidad32115510X = 1.5X = 30050%Prueba de integracin0050%Prueba de validacin0050%Prueba de sistema126A integracin2424Errores latentes3CON inspeccin

    Revisiones del Software

  • Revisiones del Software*Ampliacin y eliminacin de defectosPrimer caso:10 errores de diseo se amplifican en 94 antes de empezar las pruebas.12 defectos latentes se liberan al campo.Segundo caso:10 errores iniciales de diseo se amplifican en 24 al comenzar las pruebas.Slo existen 3 defectos latentes.

    Revisiones del Software

  • Revisiones del Software*Ampliacin y eliminacin de defectosAl considerar el costo relativo de la deteccin y eliminacin de errores se puede establecer el costo global.El nmero de errores descubierto se multiplica por el costo de eliminar un error (1.5 unidades para el diseo, 6.5 antes de las pruebas, 15 durante las pruebas, y 67 despus de la liberacin)Usando los datos anteriores, los costos son:Sin revisiones: 2177 unidades de costoCon revisiones: 783 unidades de costo

    Revisiones del Software

  • Algunos casos ejemploTomados de reportes de investigacin publicados

    Revisiones del Software

  • Revisiones del Software*Caso ejemplo 1Inspecciones de diseo y cdigo(Fagan, 1976)

    Revisiones del Software

  • Revisiones del Software*Caso ejemplo 1Resultados del estudio(Fagan, 1976)

    Revisiones del Software

  • Revisiones del Software*Caso ejemplo 1ResumenSe realiz un experimento usando inspecciones de software y recorridos (walkthroughs)Las inspecciones consumieron alrededor del 15% del tiempoSe obtuvo una reduccin en los errores de alrededor del 40%Conclusiones:Las inspecciones incrementan la productividad y la calidad del sistema. Tambin ayudan a mejorar el control del proceso y la administracin de los proyectos.

    Fagan indica que las inspecciones pueden ayudar a encontrar entre un 60 y 90% de los errores (Fagan, 1986)(Fagan, 1976)

    Revisiones del Software

  • Revisiones del Software*Caso ejemplo 2Datos extrados de resultados en proyectos de Northern Telecom.(Rusell, 1991)

    Revisiones del Software

  • Revisiones del Software*Caso ejemplo 2Datos extrados de un sistema con ms de 10 millones de lneas de cdigoMs de 2.5 millones de lneas de cdigo fueron inspeccionadasLa grfica muestra el costo en esfuerzo de encontrar defectos con inspecciones(Rusell, 1991)

    Revisiones del Software

  • Revisiones del Software*Caso ejemplo 2El tiempo dedicado a inspecciones incluye preparacin, presentacin general del producto a inspeccionar y reuniones de inspeccin.El estudio muestra que se puede encontrar un defecto por cada hora hombre dedicada a las inspecciones. Esto es de dos a cuatro veces ms rpido que hacerlo durante las pruebas del cdigo.En la empresa, cada defecto encontrado despus de la liberacin consume alrededor de 4.5 das hombre repararlo.Por tanto, cada hora dedicada a la inspeccin reduce alrededor de 33 horas de mantenimiento asumiendo un da de trabajo de 7.5 horas.(Rusell, 1991)

    Revisiones del Software

  • Revisiones del Software*Caso ejemplo 2Defectos detectados por cada mil lneas de cdigo en cada paso de inspeccin.

    Entre menos lneas se inspeccionen por hora, mayor la tasa de deteccin de errores.(Rusell, 1991)

    Revisiones del Software

  • Tipos de revisiones de software

    Revisiones del Software

  • Revisiones del Software*Tipos de revisiones de softwareLas revisiones de software pueden variar en su tipo y nivel de formalidad (informales y formales)Algunas de las ms comunes son:AuditoriasAuto-inspeccinInspecciones tcnicas formales (o inspecciones)RevisionesRecorridos (Walkthroughs)

    Revisiones del Software

  • Revisiones del Software*AuditoriasEs una tcnica de verificacin realizada durante el proceso de desarrollo de un nuevo producto o durante el mantenimiento.Consiste en que asegurar que tanto un producto se ajusta a los planes, polticas, procedimientos y estndares establecidos.Se realizan a travs de reuniones, observaciones y examinando los productos y procedimientos.

    Revisiones del Software

  • Revisiones del Software*Auto-inspeccinEs una revisin intensa de un producto del trabajo para asegurar que est correcto, completo, que es consistente y claro.Puede involucrar distintas tareas, tales como:Revisin de sintaxisExaminar referencias cruzadasViolacin de conveniosComparacin detallada con la especificacinLectura de cdigoAnlisis de diagramas de flujos de controlSensibilizacin de caminosEs preferible que se realice por alguien no involucrado en el desarrollo del producto.

    Revisiones del Software

  • Revisiones del Software*Inspecciones tcnicas formalesSe realizan por un equipo que examina un producto determinado, siguiendo roles y un proceso bien definido.El equipo normalmente se constituye de cuatro o cinco miembros: moderador, secretario, lector, el productor, el agente de V&V, y uno o ms expertos.El proceso normalmente involucra los siguientes pasos: presentacin general, preparacin, inspeccin, retrabajo, y seguimiento.

    Revisiones del Software

  • Revisiones del Software*RevisionesSe enfoca en evaluar un producto en base a guas, estndares y especificaciones de desarrollo y proveer a los administradores, evidencia de que el proceso se est realizando acorde con los objetivos establecidos.La revisin es similar a las inspecciones y recorridos, con excepcin de que incluye a la administracin.No se enfoca tanto en aspectos tcnicos como las inspecciones.

    Revisiones del Software

  • Revisiones del Software*RecorridosEl objetivo principal es detectar y documentar fallas.Esto debe ser realizado por todos los involucrados.Un equipo tpico para los recorridos es:Coordinador,Presentador,Secretario,Encargado de mantenimiento,Encargado de estndares,Agente de acreditacin, que representa al usuarioRevisores adicionales

    Revisiones del Software

  • Revisiones del Software*Inspecciones vs Recoridos vs RevisionesLas inspecciones son un proceso formal de cinco pasos. Se utiliza una lista de comprobacin para descubrir errores.Un recorrido es menos formal, tiene menos pasos, y no usa una lista de comprobacin, o documento para reportar el trabajo del equipo.Las inspecciones y recorridos se enfocan en asegurar la correccin.Las revisiones se enfocan ms en deficiencias en el diseo, o desviaciones de los modelos conceptuales o los requerimientos, que en los intrincados detalles de cada lnea de la implementacin.El enfoque de las revisiones no es en fallas tcnicas, sino en asegurar que el diseo y el desarrollo concuerdan con las necesidades de la aplicacin.

    Revisiones del Software

  • Revisiones del Software*BibliografaSommerville, captulo: 22Pressman, captulo 26Fagan, M.E., Design and Code inspections to reduce errors in program development, 1976, IBM Systems Journal, Vol. 15, No 3, Page 182-211Fagan, M.E., Advances in Software Inspections, July 1986, IEEE Transactions on Software Engineering, Vol. SE-12, No. 7, Page 744-751Rusell, G.W., Experience With Inspection in Ultralarge-Scale Development, January 1991, IEEE Software, 8(1): 25-31.

    Revisiones del Software

    **************************************