SlideShare una empresa de Scribd logo
1 de 41
© 2015 Nunsys
Estrategia de automatización de
aplicaciones legadas
4 de mayo 2015
Estrategia de automatización en aplicaciones legadas
¿Quién esta haciendo esto?
Estrategia de automatización en aplicaciones legadas
El desarrollo de sw en la actualidad
• Software que cumpla las expectativas del cliente
• Entregas de valor frecuentes con la máxima
funcionalidad posible
• Con la máxima calidad posible
• En el menor tiempo posible
Estrategia de automatización en aplicaciones legadas
Beneficios
• Reduce el tiempo de testing manual
• Aumenta la calidad del software
• Permite entregas parciales de sw sin riesgos
• Aumenta la confianza
Estrategia de automatización en aplicaciones legadas
¿Qué es la automatización?
Estrategia de automatización en aplicaciones legadas
¿Qué es la automatización?
BDD
Estrategia de automatización en aplicaciones legadas
¿Qué es la automatización?
Estrategia de automatización en aplicaciones legadas
• Desconocimiento – curva de aprendizaje
• Falta de arquitectura
• Mantenibilidad del código
• 100% Cobertura de código
¿Por qué fallan los proyectos de automatización?
Estrategia de automatización en aplicaciones legadas
Estrategia de automatización en aplicaciones legadas
¿Por qué fallan los proyectos de automatización?
• Desconocimiento – curva de aprendizaje (20%)
• Falta de presupuesto(17%)
• Falta de tiempo (37%)
• Herramienta incorrecta (11%)
• 100% Cobertura de código (Automatizar todo, todo y todo)
• Falta de arquitectura
• Mantenibilidad del código
• No integrado dentro del desarrollo de sw
Estrategia de automatización en aplicaciones legadas
¿Seguro que con una herramienta basta?
 ¿Qué debemos automatizar y que no?
 ¿Qué debemos automatizar antes?
 ¿Qué herramienta utilizo?
 ¿Cuál es el coste de automatizar?
 ¿Cuál es el retorno de inversión de la automatización?
 ¿Cómo puedo medir el avance de la automatización?
Estrategia de automatización en aplicaciones legadas
Tranquilos………………
Estrategia de automatización en aplicaciones legadas
Estrategia
• Objetivos
• Planificar
– Qué
– Cuanto
– Cuando
– Cómo
• ROI
• Medir evolución
• Al proceso de desarrollo
• Al proceso de testing
• A la planificación y su calendario
• A la tecnología
• A la criticidad de la aplicación
Adaptada
© 2015 Nunsys
Caso real
Estrategia de automatización en aplicaciones legadas
El caso que vamos a presentar pertenece a una empresa del sector servicios. Dicha empresa
dispone de un departamento de IT con un equipo de desarrollo propio. Dicho equipo se
encarga de mantener varios activos software.
El activo sujeto al caso de éxito es una aplicación de escritorio instalado en 200 puestos de
trabajo y que es utilizado por 300 personas.
Caso real
Estrategia de automatización en aplicaciones legadas
o Se liberara una versión a producción cada tres semanas
o Las versiones a producción salen con muchos bugs
o Cada versión de producción supone al menos dos hotfixes
o El 35% del tiempo de los desarrolladores en arreglar bugs
o Time to market elevado dada la poca mantenibilidad del código y el tiempo
empleado en test de regresión
o Riesgo elevado de errores por la falta de Tests. Alto coste de impacto
o Aplicación sin Tests automatizados
o Sin proceso de testing establecido
Situación
Estrategia de automatización en aplicaciones legadas
Responder a…..
 ¿Qué debemos automatizar y que no?
 ¿Qué debemos automatizar antes?
 ¿Qué herramienta utilizo?
 ¿Cuál es el coste de automatizar?
 ¿Cuál es el retorno de inversión de la automatización?
 ¿Cómo puedo medir el avance de la automatización?
Estrategia de automatización en aplicaciones legadas
¿Qué debemos automatizar?
No se puede automatizar todo
• El tiempo es finito
• El presupuesto es finito
• Es costoso llegar al 100%
• Hay casos que no se pueden automatizar
Estrategia de automatización en aplicaciones legadas
¿Qué debemos automatizar?
Automatizaremos todo aquello que:
• Reduzca el coste de los test de regresión manuales
• Aumente la eficiencia de las pruebas
• Aumente la calidad del producto
• Sea imposible o muy costoso hacerlo manualmente
Estrategia de automatización en aplicaciones legadas
¿Por donde empiezo a automatizar?
• ¿Por lo más usado?
• ¿Por lo mas crítico?
• ¿Por lo que tiene más errores actualmente?
Estrategia de automatización en aplicaciones legadas
Solución propuesta
Mitigación Estabilización Integración
Estrategia de automatización en aplicaciones legadas
Risk Based Testing
o pruebas basadas en riesgos, que otorga la mayor prioridad a la ejecución de
éstas en aquellas aplicaciones y procesos con mayor riesgo para el negocio
en el caso de producirse un fallo en Producción
El verdadero valor de las pruebas es contribuir a que el software más crítico
para el negocio sea, por consecuencia, también el más fiable y robusto.
Se entiende como Riesgos del Producto (quality risk) a aquellos eventos que
podrían afectar la aceptación del sistema y/o a problemas potenciales que
pueden afectar la calidad del producto que está siendo entregado al
cliente o usuario final.
Estrategia de automatización en aplicaciones legadas
¿Cómo medimos el riesgo de la aplicación?
Para cada caso de uso mediremos el riesgo del fallo determinando:
• Frecuencia de uso
• Probabilidad de error
• Impacto que produce un error
Hagamos una evaluación de riesgos….de los casos de uso
Estrategia de automatización en aplicaciones legadas
Evaluar el riesgo de los casos de uso
Para el cálculo del riesgo utilizamos las siguientes consideraciones:
o Suponemos un número de casos de uso en la aplicación
o Utilizando la ley de Pareto realizamos una distribución de los casos de uso
según su relevancia
o Utilizando la ley de Pareto realizamos una distribución de los casos de uso
según su riesgo
o La disminución del riesgo se determina por la cantidad de casos de uso
automatizados o testeados
Estrategia de automatización en aplicaciones legadas
Ejemplo
Distribución por Relevancia Relevancia Distribución por relevancia Núm Casos según relevancia
20%
Críticos 5% 5
Importantes 15% 15
80 %
Medios 35% 35
Bajos 45% 45
Mitigación de Riesgo Relevancia % Mitigación por
caso testeado
50% Críticos 10,00%
30% Importantes 2,00%
15% Medios 0,43%
5% Bajos 0,11%
Estrategia de automatización en aplicaciones legadas
Objetivo
o Implantación de un proceso de testing basado en la contención de riesgos
o Automatización de pruebas de aceptación del núcleo de la aplicación para
mitigar los riesgos
o Revisión e implantación de técnicas de prevención de errores en el ciclo
de desarrollo de software.
Mitigación Estabilización Integración
Estrategia de automatización en aplicaciones legadas
Etapa de mitigación
o El primer frente será determinar los casos de uso de la aplicación y realizar
una evaluación de riesgos sobre dichos casos de uso de la aplicación.
o El segundo frente es definir una estrategia para garantizar la calidad de los
entregables futuros.
Una estrategia a corto plazo donde ejecutemos los test funcionales críticos
Una estrategia a medio / largo plazo de automatización de test de regresión.
Estrategia de automatización en aplicaciones legadas
Pirámide de automatización
Estrategia de automatización en aplicaciones legadas
¿Cuánto debemos automatizar?
•Coste
•Presupuesto
•Riesgo aceptable
Estrategia de automatización en aplicaciones legadas
¿Cuál es el coste de automatizar?
• Analizar un caso
• Diseñar un caso
• Preparar un caso
• Ejecutar un caso
• Mantener un caso
• Coste de infraestructura
• Coste de oportunidad
• Coste de las licencias
• Aprendizaje
Estrategia de automatización en aplicaciones legadas
¿Cuándo recuperaré la inversión?
Beneficios Tangibles
• ¿Nº errores detectados por automatización?
• Tiempo ahorrado en testing manual
• Aumento de productividad = Reducción del tiempo de arreglar bugs
Beneficios intangibles
• Aumento cobertura
• Reducción time to market
• Reducción del riesgo de la aplicación
Estrategia de automatización en aplicaciones legadas
Método coste de un bug
Relative Costs to Fix Software Defects (Source: IBM Systems Sciences Institute)
Estrategia de automatización en aplicaciones legadas
Método de Coste Calidad
Costs of conformance es el coste de conformar la calidad del producto
Tareas como revisiones de requerimientos, unit testing => Prevención + Detección
Costs of nonconformance es el coste de arreglar bugs y retesting
Estrategia de automatización en aplicaciones legadas
Método Mitigación de riesgo
• ¿Podemos estimar el dinero que cuesta tener parado el sistema un hora?
• ¿Cuál es la probabilidad de que suceda?
• ¿Cuánta probabilidad mitigo si automatizo?
Estrategia de automatización en aplicaciones legadas
Indicadores -¿Cómo sabemos que lo estamos
haciendo mejor?
1
2
Defect Removal Efficiency DRE
%Errores detectados antes de release
PRODUCTIVIDAD
Midamos coste por caso de uso
3 RENTABILIDAD
Cómo afecta a la rentabilidad de los proyectos
3 RIESGO MITIGADO
Cómo aumenta/disminuye el riesgo de la aplicación
Estrategia de automatización en aplicaciones legadas
Estrategia de automatización en aplicaciones
legadas
“En aplicaciones con una deuda
técnica muy alta se puede obtener un
gran retorno de inversión si
automatizamos test de interfaz con la
funcionalidad más crítica”
Estrategia de automatización en aplicaciones legadas
Desmitificando las pruebas de interfaz
o Son sensibles a los cambios de interfaz
o Necesitas un conocimiento alto de programación
o Alto coste de preparación
o Muchas herramientas para testear
o Son difícilmente reutilizables
Estrategia de automatización en aplicaciones legadas
Etapa de estabilización
• Estabilizar la calidad de los entregables implantando una metodología de testing tradicional
• Determinar los casos de uso de la aplicación no analizados en la etapa anterior
• Alargar 2/3 días cada iteración (solo para testing tradicional)
• Seguir automatizando……
• El objetivo es reducir el periodo de QA al mínimo posible en varias iteraciones.
Estrategia de automatización en aplicaciones legadas
Etapa de incorporación al proceso
• Esta etapa incorporaremos el proceso de testing dentro del ciclo de desarrollo de
software para ello proponemos aunar el análisis de las nuevas funcionalidades con su
evaluación de riesgos basando este análisis en casos de uso.
• Cada caso de uso además de representar la solución al problema debe seguir la guía
propuesta por especificación por ejemplos en la cual añadiremos los criterios de
aceptación de dicho caso.
ERS
CRITERIOS
ACEPTACION
Risk Based
Testing
ERS/RBT
Estrategia de automatización en aplicaciones legadas
Muy bonito pero ¿Cómo lo hacemos?
ERS / RBT PLAN DE QA
PLAN
DEVOPS
PLAN DE
DESARROLL
O
Crear
Infraestructura
Proveer Entorno test Paso a producción
Estrategia de automatización en aplicaciones legadas
Factores clave en la automatización
o Establecer objetivos claros y medibles
o Apoyo de la dirección
o Rentabilidad – ROI
o Equipo formado
o Conocimiento de la aplicación a testear
o Realizar Tests con bajo coste de mantenimiento
o Testear lo antes posible y frecuentemente
o Seleccionar la/s herramientas adecuadas

Más contenido relacionado

La actualidad más candente

ESTUDIO DEL COMPORTAMIENTO DEL FENÓMENO SCOPE CREEP EN UN CENTRO DE DESARROLL...
ESTUDIO DEL COMPORTAMIENTO DEL FENÓMENO SCOPE CREEP EN UN CENTRO DE DESARROLL...ESTUDIO DEL COMPORTAMIENTO DEL FENÓMENO SCOPE CREEP EN UN CENTRO DE DESARROLL...
ESTUDIO DEL COMPORTAMIENTO DEL FENÓMENO SCOPE CREEP EN UN CENTRO DE DESARROLL...Henry Raúl González Brito
 
Spira team
Spira teamSpira team
Spira teamVirgCSan
 
Q Austral
Q AustralQ Austral
Q Australcusmaic
 
QAustral
QAustralQAustral
QAustralcusmaim
 
Conferencia DevOps Academy DevOps-the_journey
Conferencia DevOps Academy   DevOps-the_journeyConferencia DevOps Academy   DevOps-the_journey
Conferencia DevOps Academy DevOps-the_journeyDevOpsAcademy
 
DevOps Cap 5: Test
 DevOps Cap 5: Test DevOps Cap 5: Test
DevOps Cap 5: TestJuan Giraldo
 
DevOps con Visual Studio Team Services
DevOps con Visual Studio Team ServicesDevOps con Visual Studio Team Services
DevOps con Visual Studio Team ServicesLuis Fraile
 
Rational unified process rup
Rational unified process rupRational unified process rup
Rational unified process rupJonathan Arana
 
Modelos clasicos
Modelos clasicosModelos clasicos
Modelos clasicoskaris_58
 
La calidad de los sistemas de información como objetivo estratégico de las or...
La calidad de los sistemas de información como objetivo estratégico de las or...La calidad de los sistemas de información como objetivo estratégico de las or...
La calidad de los sistemas de información como objetivo estratégico de las or...Elizabeth Ontaneda
 

La actualidad más candente (15)

ESTUDIO DEL COMPORTAMIENTO DEL FENÓMENO SCOPE CREEP EN UN CENTRO DE DESARROLL...
ESTUDIO DEL COMPORTAMIENTO DEL FENÓMENO SCOPE CREEP EN UN CENTRO DE DESARROLL...ESTUDIO DEL COMPORTAMIENTO DEL FENÓMENO SCOPE CREEP EN UN CENTRO DE DESARROLL...
ESTUDIO DEL COMPORTAMIENTO DEL FENÓMENO SCOPE CREEP EN UN CENTRO DE DESARROLL...
 
proceso del software_2
proceso del software_2proceso del software_2
proceso del software_2
 
Spira team
Spira teamSpira team
Spira team
 
Q Austral
Q AustralQ Austral
Q Austral
 
QAustral
QAustralQAustral
QAustral
 
Calidad del Software
Calidad del SoftwareCalidad del Software
Calidad del Software
 
Conferencia DevOps Academy DevOps-the_journey
Conferencia DevOps Academy   DevOps-the_journeyConferencia DevOps Academy   DevOps-the_journey
Conferencia DevOps Academy DevOps-the_journey
 
DevOps Cap 5: Test
 DevOps Cap 5: Test DevOps Cap 5: Test
DevOps Cap 5: Test
 
DevOps con Visual Studio Team Services
DevOps con Visual Studio Team ServicesDevOps con Visual Studio Team Services
DevOps con Visual Studio Team Services
 
Devops
DevopsDevops
Devops
 
Rational unified process rup
Rational unified process rupRational unified process rup
Rational unified process rup
 
Paola yzze
Paola yzzePaola yzze
Paola yzze
 
Modeloinc
ModeloincModeloinc
Modeloinc
 
Modelos clasicos
Modelos clasicosModelos clasicos
Modelos clasicos
 
La calidad de los sistemas de información como objetivo estratégico de las or...
La calidad de los sistemas de información como objetivo estratégico de las or...La calidad de los sistemas de información como objetivo estratégico de las or...
La calidad de los sistemas de información como objetivo estratégico de las or...
 

Similar a Estrategia de automatización en aplicaciones legadas

Calidad y Pruebas VIEWNEXT
Calidad y Pruebas VIEWNEXTCalidad y Pruebas VIEWNEXT
Calidad y Pruebas VIEWNEXTViewnext
 
14 Tissat Solo Pruebas 2009
14 Tissat Solo Pruebas 200914 Tissat Solo Pruebas 2009
14 Tissat Solo Pruebas 2009Pepe
 
Argentesting 2017 - Pruebas de software basadas en riesgos
Argentesting 2017 - Pruebas de software basadas en riesgosArgentesting 2017 - Pruebas de software basadas en riesgos
Argentesting 2017 - Pruebas de software basadas en riesgosArgentesting
 
pruebas de calidad.pdf
pruebas de calidad.pdfpruebas de calidad.pdf
pruebas de calidad.pdfChirmi1
 
Seguridad Gestionada
Seguridad GestionadaSeguridad Gestionada
Seguridad Gestionadacomissioosi
 
Capitulo 17 estrategias_de_prueba_de_software
Capitulo 17 estrategias_de_prueba_de_softwareCapitulo 17 estrategias_de_prueba_de_software
Capitulo 17 estrategias_de_prueba_de_softwareAndres Valencia
 
Testing de Aplicaciones Móviles, Públicas, Masivas y Críticas
Testing de Aplicaciones Móviles, Públicas, Masivas y CríticasTesting de Aplicaciones Móviles, Públicas, Masivas y Críticas
Testing de Aplicaciones Móviles, Públicas, Masivas y CríticasBelatrix Software
 
Nexsol (Tecnologías de la Información)
Nexsol (Tecnologías de la Información)Nexsol (Tecnologías de la Información)
Nexsol (Tecnologías de la Información)Nexsol .
 
Plantilla trabajo final_Ana_Jesus
Plantilla trabajo final_Ana_JesusPlantilla trabajo final_Ana_Jesus
Plantilla trabajo final_Ana_JesusAnnie Mrtx
 
Liquid Day - Capitalizando la automatizacion sin programar
Liquid Day - Capitalizando la automatizacion sin programarLiquid Day - Capitalizando la automatizacion sin programar
Liquid Day - Capitalizando la automatizacion sin programarSoftware Guru
 
sesion 14 Gestion de Riesgos
sesion 14 Gestion de Riesgossesion 14 Gestion de Riesgos
sesion 14 Gestion de RiesgosMario Solarte
 
Guia de calidad para desarrollo de software
Guia de calidad para desarrollo de softwareGuia de calidad para desarrollo de software
Guia de calidad para desarrollo de softwareAndres Epifanía Huerta
 
Fundamentos de ingenieria de Sosftware - Unidad 2 metodologias de desarrollo
Fundamentos de ingenieria de Sosftware - Unidad 2 metodologias de desarrolloFundamentos de ingenieria de Sosftware - Unidad 2 metodologias de desarrollo
Fundamentos de ingenieria de Sosftware - Unidad 2 metodologias de desarrolloJosé Antonio Sandoval Acosta
 
Estimación del esfuerzo y costo necesarios para el desarrollo de un proyecto ...
Estimación del esfuerzo y costo necesarios para el desarrollo de un proyecto ...Estimación del esfuerzo y costo necesarios para el desarrollo de un proyecto ...
Estimación del esfuerzo y costo necesarios para el desarrollo de un proyecto ...Software Guru
 
5 Inteco Solo Pruebas 2009
5 Inteco Solo Pruebas 20095 Inteco Solo Pruebas 2009
5 Inteco Solo Pruebas 2009Pepe
 
Testing Software
Testing SoftwareTesting Software
Testing Softwareodelorenzi
 

Similar a Estrategia de automatización en aplicaciones legadas (20)

Calidad y Pruebas VIEWNEXT
Calidad y Pruebas VIEWNEXTCalidad y Pruebas VIEWNEXT
Calidad y Pruebas VIEWNEXT
 
14 Tissat Solo Pruebas 2009
14 Tissat Solo Pruebas 200914 Tissat Solo Pruebas 2009
14 Tissat Solo Pruebas 2009
 
Argentesting 2017 - Pruebas de software basadas en riesgos
Argentesting 2017 - Pruebas de software basadas en riesgosArgentesting 2017 - Pruebas de software basadas en riesgos
Argentesting 2017 - Pruebas de software basadas en riesgos
 
pruebas de calidad.pdf
pruebas de calidad.pdfpruebas de calidad.pdf
pruebas de calidad.pdf
 
Seguridad Gestionada
Seguridad GestionadaSeguridad Gestionada
Seguridad Gestionada
 
Capitulo 17 estrategias_de_prueba_de_software
Capitulo 17 estrategias_de_prueba_de_softwareCapitulo 17 estrategias_de_prueba_de_software
Capitulo 17 estrategias_de_prueba_de_software
 
Testing de Aplicaciones Móviles, Públicas, Masivas y Críticas
Testing de Aplicaciones Móviles, Públicas, Masivas y CríticasTesting de Aplicaciones Móviles, Públicas, Masivas y Críticas
Testing de Aplicaciones Móviles, Públicas, Masivas y Críticas
 
Nexsol (Tecnologías de la Información)
Nexsol (Tecnologías de la Información)Nexsol (Tecnologías de la Información)
Nexsol (Tecnologías de la Información)
 
Plantilla trabajo final_Ana_Jesus
Plantilla trabajo final_Ana_JesusPlantilla trabajo final_Ana_Jesus
Plantilla trabajo final_Ana_Jesus
 
Liquid Day - Capitalizando la automatizacion sin programar
Liquid Day - Capitalizando la automatizacion sin programarLiquid Day - Capitalizando la automatizacion sin programar
Liquid Day - Capitalizando la automatizacion sin programar
 
Técnicas de prueba.docx
Técnicas de prueba.docxTécnicas de prueba.docx
Técnicas de prueba.docx
 
sesion 14 Gestion de Riesgos
sesion 14 Gestion de Riesgossesion 14 Gestion de Riesgos
sesion 14 Gestion de Riesgos
 
sesión 14
sesión 14sesión 14
sesión 14
 
Guia de calidad para desarrollo de software
Guia de calidad para desarrollo de softwareGuia de calidad para desarrollo de software
Guia de calidad para desarrollo de software
 
Qualilogy Servicios - 2014
Qualilogy Servicios - 2014Qualilogy Servicios - 2014
Qualilogy Servicios - 2014
 
Calidad de Software como un gobierno para ALM
Calidad de Software como un gobierno para ALMCalidad de Software como un gobierno para ALM
Calidad de Software como un gobierno para ALM
 
Fundamentos de ingenieria de Sosftware - Unidad 2 metodologias de desarrollo
Fundamentos de ingenieria de Sosftware - Unidad 2 metodologias de desarrolloFundamentos de ingenieria de Sosftware - Unidad 2 metodologias de desarrollo
Fundamentos de ingenieria de Sosftware - Unidad 2 metodologias de desarrollo
 
Estimación del esfuerzo y costo necesarios para el desarrollo de un proyecto ...
Estimación del esfuerzo y costo necesarios para el desarrollo de un proyecto ...Estimación del esfuerzo y costo necesarios para el desarrollo de un proyecto ...
Estimación del esfuerzo y costo necesarios para el desarrollo de un proyecto ...
 
5 Inteco Solo Pruebas 2009
5 Inteco Solo Pruebas 20095 Inteco Solo Pruebas 2009
5 Inteco Solo Pruebas 2009
 
Testing Software
Testing SoftwareTesting Software
Testing Software
 

Estrategia de automatización en aplicaciones legadas

  • 1. © 2015 Nunsys Estrategia de automatización de aplicaciones legadas 4 de mayo 2015
  • 2. Estrategia de automatización en aplicaciones legadas ¿Quién esta haciendo esto?
  • 3. Estrategia de automatización en aplicaciones legadas El desarrollo de sw en la actualidad • Software que cumpla las expectativas del cliente • Entregas de valor frecuentes con la máxima funcionalidad posible • Con la máxima calidad posible • En el menor tiempo posible
  • 4. Estrategia de automatización en aplicaciones legadas Beneficios • Reduce el tiempo de testing manual • Aumenta la calidad del software • Permite entregas parciales de sw sin riesgos • Aumenta la confianza
  • 5. Estrategia de automatización en aplicaciones legadas ¿Qué es la automatización?
  • 6. Estrategia de automatización en aplicaciones legadas ¿Qué es la automatización? BDD
  • 7. Estrategia de automatización en aplicaciones legadas ¿Qué es la automatización?
  • 8. Estrategia de automatización en aplicaciones legadas • Desconocimiento – curva de aprendizaje • Falta de arquitectura • Mantenibilidad del código • 100% Cobertura de código ¿Por qué fallan los proyectos de automatización?
  • 9. Estrategia de automatización en aplicaciones legadas
  • 10. Estrategia de automatización en aplicaciones legadas ¿Por qué fallan los proyectos de automatización? • Desconocimiento – curva de aprendizaje (20%) • Falta de presupuesto(17%) • Falta de tiempo (37%) • Herramienta incorrecta (11%) • 100% Cobertura de código (Automatizar todo, todo y todo) • Falta de arquitectura • Mantenibilidad del código • No integrado dentro del desarrollo de sw
  • 11. Estrategia de automatización en aplicaciones legadas ¿Seguro que con una herramienta basta?  ¿Qué debemos automatizar y que no?  ¿Qué debemos automatizar antes?  ¿Qué herramienta utilizo?  ¿Cuál es el coste de automatizar?  ¿Cuál es el retorno de inversión de la automatización?  ¿Cómo puedo medir el avance de la automatización?
  • 12. Estrategia de automatización en aplicaciones legadas Tranquilos………………
  • 13. Estrategia de automatización en aplicaciones legadas Estrategia • Objetivos • Planificar – Qué – Cuanto – Cuando – Cómo • ROI • Medir evolución • Al proceso de desarrollo • Al proceso de testing • A la planificación y su calendario • A la tecnología • A la criticidad de la aplicación Adaptada
  • 15. Estrategia de automatización en aplicaciones legadas El caso que vamos a presentar pertenece a una empresa del sector servicios. Dicha empresa dispone de un departamento de IT con un equipo de desarrollo propio. Dicho equipo se encarga de mantener varios activos software. El activo sujeto al caso de éxito es una aplicación de escritorio instalado en 200 puestos de trabajo y que es utilizado por 300 personas. Caso real
  • 16. Estrategia de automatización en aplicaciones legadas o Se liberara una versión a producción cada tres semanas o Las versiones a producción salen con muchos bugs o Cada versión de producción supone al menos dos hotfixes o El 35% del tiempo de los desarrolladores en arreglar bugs o Time to market elevado dada la poca mantenibilidad del código y el tiempo empleado en test de regresión o Riesgo elevado de errores por la falta de Tests. Alto coste de impacto o Aplicación sin Tests automatizados o Sin proceso de testing establecido Situación
  • 17. Estrategia de automatización en aplicaciones legadas Responder a…..  ¿Qué debemos automatizar y que no?  ¿Qué debemos automatizar antes?  ¿Qué herramienta utilizo?  ¿Cuál es el coste de automatizar?  ¿Cuál es el retorno de inversión de la automatización?  ¿Cómo puedo medir el avance de la automatización?
  • 18. Estrategia de automatización en aplicaciones legadas ¿Qué debemos automatizar? No se puede automatizar todo • El tiempo es finito • El presupuesto es finito • Es costoso llegar al 100% • Hay casos que no se pueden automatizar
  • 19. Estrategia de automatización en aplicaciones legadas ¿Qué debemos automatizar? Automatizaremos todo aquello que: • Reduzca el coste de los test de regresión manuales • Aumente la eficiencia de las pruebas • Aumente la calidad del producto • Sea imposible o muy costoso hacerlo manualmente
  • 20. Estrategia de automatización en aplicaciones legadas ¿Por donde empiezo a automatizar? • ¿Por lo más usado? • ¿Por lo mas crítico? • ¿Por lo que tiene más errores actualmente?
  • 21. Estrategia de automatización en aplicaciones legadas Solución propuesta Mitigación Estabilización Integración
  • 22. Estrategia de automatización en aplicaciones legadas Risk Based Testing o pruebas basadas en riesgos, que otorga la mayor prioridad a la ejecución de éstas en aquellas aplicaciones y procesos con mayor riesgo para el negocio en el caso de producirse un fallo en Producción El verdadero valor de las pruebas es contribuir a que el software más crítico para el negocio sea, por consecuencia, también el más fiable y robusto. Se entiende como Riesgos del Producto (quality risk) a aquellos eventos que podrían afectar la aceptación del sistema y/o a problemas potenciales que pueden afectar la calidad del producto que está siendo entregado al cliente o usuario final.
  • 23. Estrategia de automatización en aplicaciones legadas ¿Cómo medimos el riesgo de la aplicación? Para cada caso de uso mediremos el riesgo del fallo determinando: • Frecuencia de uso • Probabilidad de error • Impacto que produce un error Hagamos una evaluación de riesgos….de los casos de uso
  • 24. Estrategia de automatización en aplicaciones legadas Evaluar el riesgo de los casos de uso Para el cálculo del riesgo utilizamos las siguientes consideraciones: o Suponemos un número de casos de uso en la aplicación o Utilizando la ley de Pareto realizamos una distribución de los casos de uso según su relevancia o Utilizando la ley de Pareto realizamos una distribución de los casos de uso según su riesgo o La disminución del riesgo se determina por la cantidad de casos de uso automatizados o testeados
  • 25. Estrategia de automatización en aplicaciones legadas Ejemplo Distribución por Relevancia Relevancia Distribución por relevancia Núm Casos según relevancia 20% Críticos 5% 5 Importantes 15% 15 80 % Medios 35% 35 Bajos 45% 45 Mitigación de Riesgo Relevancia % Mitigación por caso testeado 50% Críticos 10,00% 30% Importantes 2,00% 15% Medios 0,43% 5% Bajos 0,11%
  • 26. Estrategia de automatización en aplicaciones legadas Objetivo o Implantación de un proceso de testing basado en la contención de riesgos o Automatización de pruebas de aceptación del núcleo de la aplicación para mitigar los riesgos o Revisión e implantación de técnicas de prevención de errores en el ciclo de desarrollo de software. Mitigación Estabilización Integración
  • 27. Estrategia de automatización en aplicaciones legadas Etapa de mitigación o El primer frente será determinar los casos de uso de la aplicación y realizar una evaluación de riesgos sobre dichos casos de uso de la aplicación. o El segundo frente es definir una estrategia para garantizar la calidad de los entregables futuros. Una estrategia a corto plazo donde ejecutemos los test funcionales críticos Una estrategia a medio / largo plazo de automatización de test de regresión.
  • 28. Estrategia de automatización en aplicaciones legadas Pirámide de automatización
  • 29. Estrategia de automatización en aplicaciones legadas ¿Cuánto debemos automatizar? •Coste •Presupuesto •Riesgo aceptable
  • 30. Estrategia de automatización en aplicaciones legadas ¿Cuál es el coste de automatizar? • Analizar un caso • Diseñar un caso • Preparar un caso • Ejecutar un caso • Mantener un caso • Coste de infraestructura • Coste de oportunidad • Coste de las licencias • Aprendizaje
  • 31. Estrategia de automatización en aplicaciones legadas ¿Cuándo recuperaré la inversión? Beneficios Tangibles • ¿Nº errores detectados por automatización? • Tiempo ahorrado en testing manual • Aumento de productividad = Reducción del tiempo de arreglar bugs Beneficios intangibles • Aumento cobertura • Reducción time to market • Reducción del riesgo de la aplicación
  • 32. Estrategia de automatización en aplicaciones legadas Método coste de un bug Relative Costs to Fix Software Defects (Source: IBM Systems Sciences Institute)
  • 33. Estrategia de automatización en aplicaciones legadas Método de Coste Calidad Costs of conformance es el coste de conformar la calidad del producto Tareas como revisiones de requerimientos, unit testing => Prevención + Detección Costs of nonconformance es el coste de arreglar bugs y retesting
  • 34. Estrategia de automatización en aplicaciones legadas Método Mitigación de riesgo • ¿Podemos estimar el dinero que cuesta tener parado el sistema un hora? • ¿Cuál es la probabilidad de que suceda? • ¿Cuánta probabilidad mitigo si automatizo?
  • 35. Estrategia de automatización en aplicaciones legadas Indicadores -¿Cómo sabemos que lo estamos haciendo mejor? 1 2 Defect Removal Efficiency DRE %Errores detectados antes de release PRODUCTIVIDAD Midamos coste por caso de uso 3 RENTABILIDAD Cómo afecta a la rentabilidad de los proyectos 3 RIESGO MITIGADO Cómo aumenta/disminuye el riesgo de la aplicación
  • 36. Estrategia de automatización en aplicaciones legadas Estrategia de automatización en aplicaciones legadas “En aplicaciones con una deuda técnica muy alta se puede obtener un gran retorno de inversión si automatizamos test de interfaz con la funcionalidad más crítica”
  • 37. Estrategia de automatización en aplicaciones legadas Desmitificando las pruebas de interfaz o Son sensibles a los cambios de interfaz o Necesitas un conocimiento alto de programación o Alto coste de preparación o Muchas herramientas para testear o Son difícilmente reutilizables
  • 38. Estrategia de automatización en aplicaciones legadas Etapa de estabilización • Estabilizar la calidad de los entregables implantando una metodología de testing tradicional • Determinar los casos de uso de la aplicación no analizados en la etapa anterior • Alargar 2/3 días cada iteración (solo para testing tradicional) • Seguir automatizando…… • El objetivo es reducir el periodo de QA al mínimo posible en varias iteraciones.
  • 39. Estrategia de automatización en aplicaciones legadas Etapa de incorporación al proceso • Esta etapa incorporaremos el proceso de testing dentro del ciclo de desarrollo de software para ello proponemos aunar el análisis de las nuevas funcionalidades con su evaluación de riesgos basando este análisis en casos de uso. • Cada caso de uso además de representar la solución al problema debe seguir la guía propuesta por especificación por ejemplos en la cual añadiremos los criterios de aceptación de dicho caso. ERS CRITERIOS ACEPTACION Risk Based Testing ERS/RBT
  • 40. Estrategia de automatización en aplicaciones legadas Muy bonito pero ¿Cómo lo hacemos? ERS / RBT PLAN DE QA PLAN DEVOPS PLAN DE DESARROLL O Crear Infraestructura Proveer Entorno test Paso a producción
  • 41. Estrategia de automatización en aplicaciones legadas Factores clave en la automatización o Establecer objetivos claros y medibles o Apoyo de la dirección o Rentabilidad – ROI o Equipo formado o Conocimiento de la aplicación a testear o Realizar Tests con bajo coste de mantenimiento o Testear lo antes posible y frecuentemente o Seleccionar la/s herramientas adecuadas