CompuwareCorporation Maximizar la Calidad de la aplicación con Continuous Integrated Testing Page 2 Un líder en la industria del Software 32 años ayudando a las principales compañías del mundo a aumentar el valor de las TI 8,000+ empleados 84 oficinas en 60 paises 3 Laboratorios de desarrollo + TIC certificado CMM nivel 3 Situación financiera sólida y estable – Ingresos de 1.230 millones de $ en FY’05 – Alta liquidez, sin deudas – 40% de Facturación en EMEA Nombrada por la revista Fortune como una de las 10 compañías de software más admiradas. Nuestro compromiso: VALOR real y ROI para cada EURO que invierta Page 3 Soluciones Compuware IT Management Application Development IT Operations Page 4 Existe un precio a pagar por la Baja Calidad del Código? "The average cost of unplanned downtime for a mission-critical application is $100,000 per hour" Theresa Lanowitz Gartner App Dev Summit in Sept 04 SERVICIO SANITARIOS: Perdidas de $78M durante un trimestre debido a los problemas de calidad en sus aplicaciones (HMO). Los retrasos en los pagos y los errores llevaron a sobreestimar las ganancias, y como resultado dio lugar a una multa de 3M$ por parte del gobierno. EMPRESAS DE MANUFACTURAS La implantación de un sistema informático de 115M $ sin ningún tipo de pruebas. Debido a poblemas de software que podrían haber sido detectados con anterioridad, está empresa informó de una reducción del 12% en sus ventas y de un 19% en sus ingresos. TRAGEDIAS: En los últimos 16 años, los errores de software han provocado accidentes que van desde el lanzamiento de un satélite corrupto, la caida del sistema de ambulancias en Lóndres y hasta la destrucción de un avión de pasajeros por una mala información dada a un avión militar. Page 5 ¿Cuál es el problema? 5.5% 1965 “los desarrolladores cometen 1 error por cada 18 líneas de código” 7% Profesor del Computing Imperial College London 2004 El Desarrollo de Aplicaciones siempre ha tendido a cometer errores 10%15% “De media, un programador profesional comete entre 100 y 150 errores por cada 1000 líneas de código” Mann, Charles. “Why Software is so Bad” Technology Review 1999 “7% de todos los cambios tuvieron errores” Estudio de los cambios del Año 2000 (Cutter Organisation) Vamos a peor !!!!! Page 6 ¿Cuanto cuesta corregir un Defecto? “Los errores descubiertos durante la fase de pruebas cuesta resolverlos entre un 15 a un 75 mas de tiempo que los que son descubiertos y solucionados en la fase de codificación.” Software Engineering Economics, Barry W. Boehm El Coste asociado a corregir un defecto aumenta según avanza el ciclo de vida de la aplicación Page 7 Que ocurre hoy Defectos e incidencias relacionadas con el rendimiento y la escalabilidad se encuentran en fases tardìas del ciclo de desarrollo. El código se reenvía a Desarrollo lo que provoca retrasos en las entregas, consecuencia de lo cual la fase de Testing se ve reducida. Muchas incidencias se encuentran una vez la aplicación está en producción esto se debe a la reducción de la fase de Testing. Go Live Planning Coding Debugging Testing Production Page 8 Existe un camino que aune Coste con Efectividad para solucionar este problema? “Per reviews” de software pueden captar hasta el 60% de los defectos. Institute of Electrical and Electronics Engineers Gracias a los Diseños formales y a las Inspecciones de Código se mejora hasta en un 65% en la eliminación de defectos. La mayoria de los planes de Testing están por debajo del 30% de eficiencia “Software Quality: Analysis and Guidelines for Success” Capers Jones Page 9 Continuous Integrated Testing Probar antes, Probar a menudo… Pruebas Automáticas, Pruebas con Confianza! Tres componentes en el Proceso – Recolección – Análisis – Resolución Incrementar el número de ciclos de pruebas por proyecto Reducir el uso innecesario de recursos – Tests completamente automátizados permiten ser ejecutados de forma desatendida. Go Live ? Test Cases Planning Coding Continuous Integrated Testing Testing Production Page 10 Qué es Continuous Integrated Testing? Proceso Repetible, Consistente e Iterativo que mejora la calidad de la aplicación Comenzar las pruebas a la vez que la codificación! – Encontrar defectos nada mas comenzar el desarrollo – Las pruebas son efectivas desde el primer dia del desarrollo – Se mueve código al grupo de Pruebas con confianza Incrementa de forma exponencial los ciclos de Test! – Se ejecuta un ciclo cada día – Se prueba de nuevo lo arreglado ese día – Traspaso de pruebas válidas al equipo de pruebas Page 11 El valor de incorporar CIT: Muchos errores de desarrollo pueden ser descubiertos pronto ~ Al tiempo en que son escritos. – Detectado el código que no es ejecutado. – Incidencias de rendimiento y memoría pueden ser descubiertas durante la ejecución de pruebas diarias. Recoger estadísticas de la cobertura de código minuciosas trás la ejecución de los scripts de pruebas. Según avanzan los días los scripts de pruebas crecen exponencialemente. – Según los módulos son desarrollados, se crean los scripts de pruebas para ellos cada día. – Según los scripts de pruebas son desarrollados cada día, se añaden al conjunto de pruebas a realizar de forma desatendida cada noche. Solo el denominado Código de Calidad se envía a la fase formal de Pruebas funcionales y de stress. De esta forma las capacidades de los desarrolladores se alinean con los objetivos de Negocio de las empresas. Compuware: Solución de Calidad SW Page 12 Gestión de Defectos Requisitos Individuales Datos Prueba NO Pruebas Carga Pruebas Manuales Requisitos Integrados SI SI Plan de Pruebas Pruebas Automat. Pruebas Caja Blanca Datos Prueba [CIT] Pruebas Funcionales Aplicación Correcta Page 13 “Hardware Store” es una aplicación web que va a ser desarrollada usando CIT. Page 14 El desarrollador se encargará de generar el código necesario. A su vez el establecimiento de reglas detectan el nivel de calidad de ese código Page 15 • Análisis estático de código • Optimización del código: •Mejorar el tiempo de respuesta •Reducir Errores •Reducir consumo de recursos Scripts automáticos de TP lanzados en modo desatendido sobre el código ya desarrollado. Ayudará a mejorar el rendimiento ya a conocer la cobertura de código. A comparar las mejoras tras ciertos cambios. Entega de scripts automáticos al equipo de Testing Page 16 • Análisis estático de código • Optimización del código: •Mejorar el tiempo de respuesta •Reducir Errores •Reducir consumo de recursos • Optimización del código: •Mejorar el tiempo de respuesta •Reducir Errores •Reducir consumo de recursos • Medición de la cobertura • Comparativas Page 17 Static Code Analysis DevPartner ha remarcado que el uso de la clase StringBuilder podría ser mas eficiente en este punto del código Page 18 Memory & Performance Analysis La Memoría y el Rendimiento se ven impatados por no haber usado la clase que se recomendaba. Page 19 Application Performance Results Before and After the repair is made Page 20 Code Coverage Analysis Quickly identify how thorough your test scripts are by seeing what code has not been executed. Page 21 Automated Test Script La opción de Captura de TestPartner se usa para generar los scripts automáticos. Compuware: Solución de Calidad SW Page 22 Gestión de Defectos Requisitos Individuales Requisitos Integrados Datos Prueba NO [RBT] Pruebas Carga Pruebas Manuales SI SI Plan de Pruebas Pruebas Automat. Pruebas Caja Blanca Datos Prueba [CIT] Pruebas Funcionales Aplicación Correcta Page 23 CIT Resumen Automatizar muchas de las tareas manuales: – Revisión de Código, Análisis de Memoria y Rendimiento y Análisis de Cobertura de Código. Mayor rapidez en el aprendizaje: – Ayuda Online, tutoriales, ejemplos, enlaces a white papers. Creación de “best practices” repetibles Reducir tiempo conjunto entre desarrollo y pruebas. Desarrollando aplicaciones con mejor rendimiento y mayor fiabilidad.