la eutanasia en el código penal peruano. un análisis dogmático
Compuware Corporation - Calidad del Software Semana CMMI/10-Compuware.pdf– Revisión de Código,...
Transcript of Compuware Corporation - Calidad del Software Semana CMMI/10-Compuware.pdf– Revisión de Código,...
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
IT Operations
Application Development
IT Management
IT Operations
Application Development
IT Operations
Soluciones Compuware
Page 4
SERVICIO SANITARIOS:Perdidas de $78M durante un trimestre debido a los problemas de calidad en susaplicaciones (HMO). Los retrasos en los pagos y los errores llevaron a sobreestimar las ganancias, y comoresultado dio lugar a una multa de 3M$ por parte del gobierno.
EMPRESAS DE MANUFACTURASLa implantación de un sistemainformá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ónmilitar.
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
Page 5
¿Cuál es el problema? El Desarrollo de Aplicaciones siempreha tendido a cometer
errores1965“los desarrolladorescometen 1 error por cada18 líneas de código”
Profesor del ComputingImperial College London
1999“7% de todos loscambios tuvieronerrores”Estudio de los cambios del Año
2000 (Cutter Organisation)
Vamos a peor !!!!!
2004
“De media, un programador profesionalcomete entre 100 y 150 errores por cada1000 líneas de código”
Mann, Charles. “Why Software is so Bad”
Technology Review
5.5%
7%
10%-15%
Page 6
¿Cuanto cuesta corregir un Defecto?
“Los errores descubiertosdurante la fase de pruebascuesta resolverlos entre un 15 a un 75 mas de tiempo quelos que son descubiertos y solucionados en la fase de codificación.”
Software Engineering Economics, Barry W. Boehm
El Coste asociado a corregir un defectoaumenta según avanza el ciclo de vidade la aplicación
Page 7
Que ocurre hoy� Defectos e incidencias relacionadas con el rendimientoy 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 lasentregas, consecuencia de lo cual la fase de Testing se vereducida.
� 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.
Planning Coding Testing Production
Go Live
Debugging
Page 8
“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
Existe un camino que aune Coste con Efectividad para solucionar este
problema?
Page 9
Continuous Integrated TestingProbar 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.
Planning Coding Testing Production
Go Live ?
Continuous Integrated Testing
Test Cases
Page 10
Qué esContinuous Integrated Testing?
� Proceso Repetible, Consistente e Iterativo quemejora 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 efectivasdesde el primer dia del desarrollo
– Se mueve código al grupode Pruebas con confianza
� Incrementa de forma exponencial los ciclosde Test!
– Se ejecuta un ciclo cadadía
– Se prueba de nuevo lo arreglado ese día
– Traspaso de pruebasvá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.
– Incidencias de rendimiento y memoría pueden ser descubiertas durante la ejecución de pruebasdiarias.
� Detectado el código que no es ejecutado.
– 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 realizarde forma desatendida cada noche.
� Solo el denominado Código de Calidad se envía a la faseformal de Pruebasfuncionales y de stress.
� De esta forma las capacidades de los desarrolladores se alinean con los objetivos de Negocio de las empresas.
Page 12Compuware: Solución de Calidad SW
RequisitosIntegrados
RequisitosIndividuales
PruebasFuncionales
PruebasCarga
SI
PruebasManuales
PruebasAutomat.
AplicaciónCorrecta
SI
NO
Gestión de Defectos
DatosPrueba
Pruebas Caja
Blanca
Plan de Pruebas
DatosPrueba
[CIT]
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 usode 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 venimpatados por no haber usado la clase
que se recomendaba.
Page 19
Application Performance ResultsBefore 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.
Page 22Compuware: Solución de Calidad SW
RequisitosIntegrados
RequisitosIndividuales
PruebasFuncionales
PruebasCarga
SI
PruebasManuales
PruebasAutomat.
AplicaciónCorrecta
SI
NO
Gestión de Defectos
DatosPrueba
Pruebas Caja
Blanca
Plan de Pruebas
DatosPrueba
[RBT]
[CIT]
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.