Maximizar la Calidad de la aplicación con Continuous Integrated

Anuncio
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.
Descargar