Aseguramiento de la calidad y pruebas de software 7- Métricas de la calidad del Software Métricas del producto Blanca A. Vargas Govea vargasgovea@itesm.mx Mayo 3, 2013
Objetivo Conocer y determinar las métricas a aplicar en el producto de software. 2
2. Clasificación de métricas Ciclo de vida Métricas del proceso Relacionadas con el proceso de desarrollo de software Métricas* del producto Relacionadas con el mantenimiento de software 3
Métricas del producto Se refieren a la fase operacional del sistema. Años de uso regular. El desarrollador proporciona servicios al cliente: Help Desk (HD) Servicios de mantenimiento correctivo Está seguro de que oprimió guardar y no eliminar? e 4
Help Desk Las métricas de HD se basan en llamadas del cliente. Pocos casos están asociados a fallas reales. Las métricas se basan en llamadas del usuario. Mantenimiento correctivo Las fallas se relacionan directamente con la calidad del software. Las métricas se basan en los reportes de falla. Las métricas del producto se basan en registros recopilados durante un año o periodo de tiempo específico. Se facilitan las comparaciones entre años sucesivos, además de las comparaciones entre diferentes unidades 5 y sistema de software.
HD: métricas de densidad de llamadas Métricas del producto Métrica HDD WHDD Nombre Densidad de llamadas Densidad pesada de llamadas Fórmula HDD= NHYC KLMC WHDD= WHYC KLMC NHYC = Número de llamadas recibidas durante un año de servicio KLMC = miles de línea de código mantenido WHYC = número (pesado) de llamadas recibidas durante un año de servicio Fuentes de datos: Reportes de HD 6
Métricas del producto Métricas de mantenimiento correctivo Métrica SSFD WSSFD Nombre Densidad de fallas del sistema Densidad pesada de fallas del sistema Fórmula SSFD= NYF KLMC WSSFD= WYF KLMC NYF = número de fallas de software detectadas durante un año de servicio KLMC = miles de línea de código mantenido WYF = número pesado de fallas anuales detectadas Fuentes de datos: Reportes de mantenimiento de software 7
Relación con el modelo de madurez (TMM) 8
Testing y el modelo de madurez Nivel 1 Caos, sin metas. Las pruebas se desarrollan al terminar el software de forma ad-hoc. Objetivo mostrar que el software funciona. Nivel 2 Fase de definición. Desarrollar metas de testing. Institucionalizar técnicas básicas de testing. Objetivo mostrar que el software cumple con las especificaciones. 9
Testing y el modelo de madurez Nivel 3 Integración. Nivel 4 Integrar testing al ciclo de vida del software. Entrenamiento, control y monitoreo. Objetivos se establecen de acuerdo a las necesidades del cliente y se usan para diseño de casos de prueba. Administración y medición. Establecer un programa de pruebas y métricas. Evaluación de la calidad del software. Objetivo medición y evaluación del software. 10
Testing y el modelo de madurez Nivel 5 Optimización y prevención. y me dijo que yo sería un nivel 5 en CMM pero no le entendí Prevención de defectos, control de calidad yoptimización del proceso de pruebas. Automatización del proceso de pruebas. 11
Métricas aplicables en cada nivel de madurez (recomendadas) Nivel 1: caos Tamaño Líneas de código No. atributos a ser evaluados. No. de casos de prueba desarrollados. No. de casos de prueba ejecutados. Defectos No. de reportes de fallas. Número de defectos/kloc. Costo/Esfuerzo Costo total del proyecto. Horas en tareas de testing. Costo del testing. 12
Métricas aplicables en cada nivel de madurez (recomendadas) Nivel 2: definición Tiempo/esfuerzo en planeación de pruebas pruebas unitarias pruebas de integración pruebas del sistema pruebas de regresión No. de casos de prueba planeados No. de casos de prueba no planeados. Grado de cobertura de instrucciones/ramas (planeado y actual) No. y tipo de defectos encontrados 13
Métricas aplicables en cada nivel de madurez (recomendadas) Nivel 3: integración Grado de cobertura de instrucciones y ramas. No. de atributos cubiertos. No. de casos de prueba ejecutados con éxito. No. de casos producidos/semana (por tester). No. de defectos detectado por unidad de tiempo y nivel de severidad. 14
Métricas aplicables en cada nivel de madurez (recomendadas) Nivel 3: integración Tamaño del staff de entrenamiento. Costo del programa de entrenamiento. Tiempo de dominar el entrenamiento. Tiempo dedicado a sesiones de entrenamiento por tester. Costos de herramientas: evaluación, mantenimiento y actualización. Costos de las tareas de testing. Métricas de testing: complejidad ciclomática. 15
Métricas aplicables en cada nivel de madurez (recomendadas) Nivel 3: integración No. de llamadas de ayuda. No de quejas del cliente. No. de reportes de problemas cuando el software está en operación.. No. de casos de prueba reutilizados. No. de casos de prueba añadidos a la base de datos o repositorio. No. de casos reejecutados después de 16 cambios.
Métricas aplicables en cada nivel de madurez (recomendadas) Nivel 4: automatización y medición / Nivel 5 Tamaño del ítem revisado. Tiempo de las reuniones de revisión. No. de defectos encontrados por hora. Costo de mantenimiento de BD. LOC ó páginas de un documento revisadas por hora. Costo de entrenamiento. Costo de herramientas. Tamaño de BD históricas. No. de referencias a datos históricos.... 17
Limitaciones de las métricas Presupuesto Recursos humanos Fondos Incertidumbre con respecto a los datos Factores humanos Oposición a la evaluación 18
Revisar/aclarar las especificaciones del proyecto 19
Actividad 25 - equipo 20
Tarea 25: equipo Para su proyecto, determinar: En qué nivel de madurez ubican su proyecto? Por qué lo clasifican en ese nivel? Qué recomendarían para subir al nivel que sigue? Agregar al reporte final en la sección 10 Resultados y acciones correctivas Examen Viernes 10 Martes 14 21
Tarea 25: equipo Tomando como base la actividad, Agregar al reporte final en la sección 10 Resultados y acciones correctivas Examen Viernes 10 Martes 14 22
Referencia Cinta medir Photo Credit: <a href="http://www.flickr.com/photos/33839049@n00/499144972/">redteam</a> via <a href="http://compfight.com">compfight</a> <a href="http://creativecommons.org/licenses/by-nc-nd/2.0/">cc</a> Photo Credit: <a href="http://www.flickr.com/photos/27384147@n02/5073536991/">ano Lobb. @healthyrx</a> via <a href="http://compfight.com">compfight</a> <a href="http://creativecommons.org/licenses/by/2.0/">cc</a> Photo Credit: <a href="http://www.flickr.com/photos/70981241@n00/509096042/">kecko</a> via <a href="http://compfight.com">compfight</a> <a href="http://creativecommons.org/licenses/by-nd/2.0/">cc</a> Photo Credit: <a href="http://www.flickr.com/photos/62586117@n05/6924160790/">neil. Moralee</a> via <a href="http://compfight.com">compfight</a> <a href="http://creativecommons.org/licenses/by-nc-nd/2.0/">cc</a> 23