Documentos de Académico
Documentos de Profesional
Documentos de Cultura
es
Las Pruebas y la Calidad del Software, ahora una necesidad ms que nunca
Desayuno de trabajo Barcelona Pruebas y Calidad de Software de Aplicaciones Barcelona, 20 de abril de 2010
Steria
A pesar de las diferencias existentes entre las empresas, su forma de trabajar en proyectos de desarrollo de software es muy similar:
sin criterio o procedimiento establecido alguien decide que un proyecto se ha de hacer en dos o tres meses ... al final siempre son ms incluyendo adems largas noches, fines de semana de mucho trabajo poco a poco los gerentes ven que los proyectos siempre exceden los costes inicialmente previstos finalmente los clientes no se fan y miran los productos entregados por sus proveedores de software con mucha desconfianza poco despus los nuevos proyectos empiezan como si fuesen una guerra diferente a la anterior y vuelta a empezar
www.steria.com
Ante presiones de tiempo, las pruebas han constituido el elemento que ms se ha visto impactado tanto en los procesos de evaluacin de los entregables como de ejecucin de las propias pruebas durante los proyectos de desarrollo de software.
Las consecuencias: Productos finales no certificados. Fallos en explotacin por falta de eliminacin de defectos. Altos costes de corregir defectos, en mantenimiento y en garantas. Falta de satisfaccin de los clientes. Prdida de confianza e imagen.
www.steria.com
En la mayora de los Procesos de Desarrollo SW los mtodos y las tcnicas de pruebas son poco efectivas y los procesos de prueba ineficientes.
Fuente: Gartner Group
2005 2005 Toyota anunci una retirada de mercado de 160.000 Toyota anunci una retirada de mercado de 160.000 vehculos debido a un error de software que vehculos debido a un error de software que provocaba el encendido de las luces de advertencia provocaba el encendido de las luces de advertencia sin razn alguna y el calado de los motores de forma sin razn alguna y el calado de los motores de forma inesperada inesperada WIRED WIRED 2006 2006 Un error en la aplicacin encargada de desplegar los Un error en la aplicacin encargada de desplegar los paneles solares de la Estacin Espacial Internacional paneles solares de la Estacin Espacial Internacional (ISS) ha causado un retraso en el proyecto (ISS) ha causado un retraso en el proyecto THE INQUIRER THE INQUIRER 2007 2007 Un fallo informtico atasca las bibliotecas Un fallo informtico atasca las bibliotecas universitarias universitarias 20minutos.es 20minutos.es
2005 2005 Cada fallo informtico les cuesta a las empresas Cada fallo informtico les cuesta a las empresas europeas 295.000 euros europeas 295.000 euros Economist Intelligence Unit Economist Intelligence Unit 2007 2007 Aerolnea nipona ANA cancela 114 vuelos internos Aerolnea nipona ANA cancela 114 vuelos internos por fallo informtico por fallo informtico ElEconomista.es ElEconomista.es 2008 2008 Bloqueada durante 8 horas la venta de billetes de Bloqueada durante 8 horas la venta de billetes de RENFE RENFE ELPAIS.com ELPAIS.com 2010 2010 Toyota comunica fallo informtico que causa un Toyota comunica fallo informtico que causa un retraso al frenar en determinadas circunstancias. retraso al frenar en determinadas circunstancias. Supone la revisin de 8,1 millones de coches Supone la revisin de 8,1 millones de coches ELPAIS.com ELPAIS.com
www.steria.com
www.steria.com
Falta de conocimiento del estado real de las aplicaciones de software durante la ejecucin de los proyectos. Los buenos conocimientos tcnicos no son una garanta de xito de un proyecto. Es necesario seguir procedimientos que guen las actividades de desarrollo del producto software durante la ejecucin del proyecto. Para ello, es necesario estandarizar las actividades del desarrollo del software a travs de procesos que permitan realizar los proyectos de una forma repetitiva. Seguir un modelo de buenas prcticas ofrece las lneas maestras para estandarizar los proyectos de desarrollo de software y facilitar su estimacin ms correcta.
Generacin de Defectos
Requisitos y Diseo
Construccin y P. Unitarias
UAT
Produccin
$7.136
60%
$139
Requisitos
$455
Diseo
$977
Construccin
$ /Defecto Co rregido
Pruebas
Mantenimiento
21%
www.steria.com
Errores de codificacin
Problemas de diseo
? %
Procesos ineficientes Funcionalitis Problemas de rendimiento Otros Baja mantenibilidad
www.steria.com
85% de empresas consideran la calidad de las aplicaciones un factor crtico en la efectividad de las TI para demostrar el valor de sus negocios. 54% de estas han invertido en herramientas de pruebas como mecanismo para asegurar un alto nivel de calidad de sus aplicaciones. De estas inversiones (54%), menos de un 30% ha supuesto una mejora significativa en la calidad de las aplicaciones (16.2%).
www.steria.com
Calidad de las Aplicaciones La Los buenos conocimientos tcnicos no son una garanta
Por qu el 70% de las compaas que estn usando herramientas de pruebas para construir calidad en sus aplicaciones no estn obteniendo los resultados deseados? Ms importante, qu caractersticas tienen el 30% de las compaas que estn consiguiendo los objetivos de calidad previstos? 64% reportan mejoras significativas de calidad. 36% reportan mejoras moderadas de calidad.
www.steria.com
Uso de estndares de metodologa de calidad. Consistencia del uso de las metodologas aplicadas. Obtencin de mtricas. Prcticas de mejora continua.
Compaas que tienen una metodologa de calidad definida y usan consistentemente experimentan una elevada calidad de sus aplicaciones a diferencia de compaas que no la tienen. Las mtricas constituyen un elemento crucial para el uso consistente de una metodologa de calidad.
www.steria.com
Calidad de las Aplicaciones La Es necesario estandarizar las actividades de una forma repetitiva.
La falta de calidad de las aplicaciones no es un problema de pruebas sino ms bien un problema de conducta. Las organizaciones que quieren mejoran en calidad deben:
Invertir en tecnologa. Definir objetivos cuantificables. Desarrollar una metodologa repetible y medible. Seguir resultados y tendencias frente a los objetivos previstos. Ajustar el modo de actuacin continua y consecuentemente.
La tecnologa no entrega calidad. Un proceso efectivo de calidad de software y personal cualificado hacen la diferencia.
www.steria.com
No slo basta con ejecutar cdigo sino que es necesario ejecutar lgicamente otros elementos como requisitos, especificaciones funcionales, diseos, Es decir, es necesario verificar los entregable intermedios y validar el software. El objetivo inmediato es EVITAR que los DEFECTOS se propaguen de unas fases a otras hasta llegar a los sistemas en produccin. El propsito ms importante es el de REDUCIR, mediante la deteccin temprana de problemas, los RIESGOS derivados de la aparicin de los posibles defectos en los procesos de implantacin y explotacin de las aplicaciones.
Desarrollar un nivel objetivo de confianza sobre disponibilidad (en el tiempo) y fiabilidad (a lo largo del tiempo) de los productos desarrollados, acorde a las expectativas de cliente.
www.steria.com
Desarrollar un nivel objetivo de confianza sobre disponibilidad (en el tiempo) y fiabilidad (a lo largo del tiempo) de los productos desarrollados, acorde a las expectativas de cliente.
www.steria.com
No es posible probar completamente los productos software, tanto por su complejidad y como por su coste. El propsito ms importante es el de REDUCIR, mediante la deteccin temprana de problemas, los RIESGOS derivados de la aparicin de los posibles defectos en los procesos de implantacin y explotacin. Las pruebas deben entenderse como: Validacin de resultados finales conformes a lo inicialmente requerido. Verificacin de que los resultados intermedios tambin cumplen con lo que se esperaba de los mismos.
www.steria.com
Las zonas de ambas reas de proceso son similares de pero se ocupan de cuestiones diferentes.
www.steria.com
www.steria.com
Se trata de institucionalizar el proceso de Verificacin definido: Establecer y mantener la descripcin del proceso. Recoger informacin para su mejora.
www.steria.com
www.steria.com
Calidad de las Aplicaciones La Aportacin de V&V: Valor real frente al valor percibido
y ty tiy ly lilitit la a a a u u u u Q Q Q Q
T T T T e e ee s s s ts in itin n itt n g g g g
El problema:
Cuanto ms tarde es encontrado un defecto ms cuesta su resolucin.
100
Perceived Value
$139x
La solucin:
Identificar y resolver los defectos tan pronto como son originados es posible con la mejora de los procesos abiertos.
Defects Defects
$455x 50
$7,136x
El resultado:
Entrega de aplicaciones de alta calidad en tiempo, cobertura y costes, en lnea con lo establecido por el negocio.
$977x 10 $139x $455x $7,136x $14,102x
Determining Requirements
Design
Coding
Testing
Maintenance
www.steria.com
Definir indicadores y mtricas Medir de forma continua Analizar tendencias, monitorizar, ajustar donde corresponda TQA es inversin: pensar en el ROI
Obtener ms producto con la misma inversin Controlar los riesgos asociados a la falta de calidad
www.steria.com
Mejora de la satisfaccin del cliente. Incremento de la productividad. Disminuye los riesgos del negocio. Facilitar el crecimiento del negocio.
www.steria.com
Equilibrio Calidad/Coste/Riesgo
La Lacomplejidad complejidadha hatenerse tenersemuy muyen encuenta cuentapara paralograr lograrel elequilibrio equilibrioCALIDAD/COSTE CALIDAD/COSTE que quepermita permitaaportar aportarVALOR VALORal alNEGOCIO NEGOCIOcon conEFICIENCIA EFICIENCIA
www.steria.com
Las pruebas: actividad que intenta descubrir defectos en el software antes de que lo haga el usuario final, tratando de evitar que los defectos lleguen hasta el final mediante una deteccin temprana de los problemas. La calidad: proceso continuo de identificacin, medicin, gestin y eliminacin de los riesgos, con el objetivo de mejorar continuamente la gestin del tiempo, reducir los costes y conseguir entregas de software ms predecibles.
Evaluacin continua de un producto software a lo largo del ciclo de vida completo de su desarrollo. Requiere planificacin, control y seguimiento, anlisis y mejora.
www.steria.com
Teniendo en cuenta que las personas dirigen los procesos y los procesos se facilitan a travs de las herramientas. Metodologa
- procesos y mtodos - practicas and estandares - adopcin ciclo de vida - gestin de imprevistos -
Personas
- responsabilidad - talento y experiencia - canales de comunicacin - gestin de imprevistos -
Herramientas
- tipo y uso de herramientas - grado de automatizacin - nivel de reuso de activos - medicin de efectividad -
Mtricas
- medidas y mtricas - informes y visibilidad - tendencias - alineacin con el negocio -
Mejora de Procesos
- prcticas formales - medidas normalizadas - reuso de procesos - mejores prcticas -
www.steria.com
Calidad de las Aplicaciones La Componentes clave de la Calidad del Software pero cmo
Define el esquema de capacitacin y formacin de los recursos de pruebas Capacitacin personal Define las actividades del ciclo de vida del proceso de pruebas: entradas, salidas, roles, responsables e interaccin con otros procesos Proceso
Tcnicas Permite la sistematizacin de actividades y tareas del proceso para ganancia de efectividad y productividad Herramientas Permite la automatizacin de las actividades del proceso de pruebas, mantenimiento de la trazabilidad e indicadores clave del proceso
www.steria.com
Calidad de las Aplicaciones La Componentes clave de la Calidad del Software pero cmo
Desarrollo Ingeniera Requisitos
Requisitos Anlisis Diseo Construccin
Gestin Proyectos
Calidad
Calidad del Producto Internos
Mantenibilidad Reusabilidad Trazabilidad
Externos
Dependencia Usabilidad Capacidad
Externos
Time-To-Market Visibilidad
www.steria.com
Enfocado en:
Entrega estratgica Aceptacin del Negocio Mtricas de Negocio Ampliar valor al Negocio
Nivel 3 - Servicio
Quality Management Balancear riesgo y coste Excelencia del servicio
Enfocado en:
Ciclo de vida de aplicaciones Eliminacin de introduccin de defectos Gestin de mtricas y tendencias El balance de riesgo, coste y calidad detemina estado y disponibilidad
Nivel 2 Proactivo
SE ESTA AQU Quality Assurance Minimizar defectos Gestionar riesgos
Enfocado en:
Ciclo de vida de calidad Reduccin de defectos cerca de su punto de origen Mtricas obtenidas a travs herramientas Niveles de riesgo y defectos determinan estado y disponibilidad
Nivel 1 - Reactivo
Quality Control Encontrar defectos Contener costes
Enfocado en:
Pruebas de validacin y de aceptacin de usuario Deteccin de defectos antes de produccin Medidas basadas en nmero de defectos e informacin de usuario final El nmero de defectos determina estado y disponibilidad de la aplicacin
www.steria.com
QA
Quality Assurance Minimizar defectos
Ciclo de vida de Calidad Esfuerzo continuo Mide resultados de entrega Equipo de QA Herramientas
QM
Quality Management Equilibrar riesgo y coste
Ciclo de vida de Calidad Proceso continuo Mide entrega y efectividad Organizacin de IT Herramientas, Procesos y Personas
QC
Quality Governance Maximizar el valor
Ciclo de vida de entrega estratgica Mejora continua Mide alineacin con el negocio Toda la empresa Herramientas, Procesos y Personas
NO ES LO MISMO
NO ES LO MISMO
Tctico Evento discreto Centrado en QU hacer Mide Resultados de pruebas Implicacin variable QC slo testea, verifica y valida (slo funcin de pruebas)
Estratgico Evento contnuo Centrado en CMO hacer Mide Resultados de entregas Implicacin constante en ciclo de vida El QA puro NO testea (ciclo de vida de calidad)
www.steria.com
QA
CLIENTES SERVICIOS SWF
QA
LABORATORIOS
PRUEBAS SISTEMAS PRUEBAS CERTIFIC.
QA
TSF
QA
EXP
NEGOCIO IT
PRUEBAS UNITARIAS
PRUEBAS INTEGRAC.
DESARROLLO
PREPROD.
PRODUC.
DEMANDA Y REQUISITOS
Gestin demanda Demanda operativa Demanda estratgica Gestin de Recursos Planificacin Proyectos Gestin requisitos Captura de requisitos Gestin de requisitos
www.steria.com
WORKFLOWS/ TAREAS
ESTADO DE PROYECTOS
METRICAS DE CALIDAD
Cuadros de Mando Usuarios Equipo de proyecto Comunicacin
MONITORIZACIN EXPLOTACIN
Monitorizacin Disponibilidad Tiempos de respuesta Informes no conformidad
Gestin pruebas Mtricas Calidad Manuales Estado Proyecto Automticas Estado Aplicacin Unitarias DS Informes defectos Integracin DS Calidad de entregas Sistemas DS Rendimiento DS Anlisis Tcnico del Cdigo Gestin de datos Funcionales Rendimiento Seguridad
QA
CLIENTES SERVICIOS SWF
QA
LABORATORIOS
PRUEBAS SISTEMAS PRUEBAS CERTIFIC.
QA
TSF
QA
EXP
NEGOCIO IT
PRUEBAS UNITARIAS
PRUEBAS INTEGRAC.
DESARROLLO
PREPROD.
PRODUC.
DEMANDA Y REQUISITOS
Gestin demanda Demanda operativa Demanda estratgica Gestin de Recursos Planificacin Proyectos Gestin requisitos Captura de requisitos Gestin de requisitos
WORKFLOWS/ TAREAS
ESTADO DE PROYECTOS
METRICAS DE CALIDAD
Cuadros de Mando Usuarios Equipo de proyecto Comunicacin
MONITORIZACIN EXPLOTACIN
Monitorizacin Disponibilidad Tiempos de respuesta Uso real de aplicaciones Informes no conformidad
Gestin pruebas Mtricas Calidad Manuales Estado Proyecto Automticas Estado Aplicacin Unitarias DS Informes defectos Integracin DS Calidad de entregas Sistemas DS Rendimiento DS Anlisis Tcnico del Cdigo Gestin de datos Funcionales Rendimiento Seguridad
www.steria.com
Matriz de trazabilidad de los artefactos generados a lo largo del ciclo de vida. Sistemtica en la gestin de cambios a travs de la gestin de los requisitos.
Anlisis de impacto en base a la trazabilidad Aceptacin/rechazo por parte del cliente Replanificacin y reestimacin de esfuerzo. Gestin de la configuracin de los elementos afectados por el cambio.
Identificacin de los riesgos asociados a los requisitos. Requisitos y documentacin asociada base para el desarrollo de los casos de prueba. Reutilizacin de conjuntos de requisitos. Soporte especfico a las familias de productos.
www.steria.com
CUMPLIMIENTO NORMATIVO MODULOS MODULOS DEPENDENCIAS y ANLISIS DE IMPACTO INDICADORES Y MTRICAS AUDITORAS Y CERTIFICACIONES REGLAS Y NORMAS MODELO CALIDAD REPOSITORIO RESULTADOS
Control a medida de la Calidad Tcnica del Cdigo Multi-lenguaje: J2EE, Cobol, .NET, ABAP, C, PL/SQL Cientos de reglas y mtricas preconstruidas Verificacin del uso de arquitecturas de desarrollo Adaptado a ISO 9126 Arquitectura basada en plugins Informacin actual e histrica: Comparaciones y Tendencias Conectores a herramientas del SDLC Interfaz de integracin abierto
CONECTORES CONECTORES
PORTAL PORTAL
CDIGO FUENTE
TESTING TOOLS
SCM
OTROS
www.steria.com
Visibilidad de los cambios en las aplicaciones. Eficiencia en pruebas manuales y automatizadas. Reduccin del tiempo de los ciclos de prueba. Gestin de Defectos. Dashboard basado en KPIs. Medida de los criterios de xito en tiempo real.
Quality Dashboard
www.steria.com
Automatizacin de Pruebas
Pruebas Especializadas
Proyectos de prueba
El cliente quiere mantener dentro las actividades de prueba y calidad del software www.steria.com
La actividad de consultoria en el cliente incrementa su capacidad para externalizar las actividades de pruebas y calidad del software
Automatizacin de Pruebas
Servicios TQA Centro Competencias Steria
Pruebas especializadas
Gestin de servicios de Pruebas Pruebas de Procesos de Negocio Automatizacin de Pruebas Consultora de Pruebas y Calidad de software Pruebas especializadas
www.steria.com
TestToMarket
www.steria.com
Steria Ruleinitiator Steria Tracking Steria DataCase Herramientas Steria Herramientas partners
Metodologas
No slo se trata de definir una metodologa o de usar una herramienta. Se trata de implementar un nuevo modelo de pruebas y calidad de software en lnea con las necesidades del negocio.
Fiabilidad de las Aplicaciones: Anlisis del alcance de posibles daos siempre en trminos de las funciones de negocio. Optimizacin de Proceso de Pruebas: Gestin de activos y reusabilidad. Anlisis del Impacto en el Negocio: Por incumplimiento de los criterios e indicadores de calidad establecidos. Medidas y Anlisis: Visibilidad en tiempo real de los indicadores de calidad de las aplicaciones. Productividad: Hacer ms, ms rpidamente y mejor.
Entregas estrategicas: En lnea con las necesidades del negocio. Toma de Decisiones: Gestin de riesgos, coste y tiempo en el desarrollo de las aplicaciones y sus entregas. Concienciacin: En la organizacin en relacin a la importancia de la calidad y su propuesta de valor para el negocio. Confianza en la puesta en marcha: Comunicada en trminos de negocio.
www.steria.com
Las organizaciones se sorprenden porque no pueden estimar de forma realista el coste de sus proyectos. La pregunta que deberan hacerse es: se hacen dos iguales? Las personas, aun siendo buenos profesionales, no pueden realizar bien su trabajo si un procedimiento no les gua. Es vital que las organizaciones adquieran procedimientos de trabajo que permitan estandarizar el sistema de desarrollo de software a travs de procesos definidos que permitan realizar proyectos de un modo repetitivo. Esta disciplina debe ser asumida y no impuesta. Toda la organizacin debe sentirse participe de los procedimientos establecidos. Contratar un experto que escriba de un modo aislado los procedimientos que se deben seguir a partir de ese momento la organizacin provocar escepticismo y rechazo.
www.steria.com
Exista o no una metodologa de pruebas ha de existir una idea clara y comn de cul es la estrategia corporativa definida en el rea de pruebas y calidad del software. Definicin del proceso de pruebas en la organizacin: Prcticas formales. Uso de estndares de metodologa. Medidas normalizadas. Reutilizacin de elementos del proceso. Mejores prcticas. Definicin de las personas que intervienen en el proceso: Responsabilidad en el proceso. Experiencia en pruebas. Canales de comunicacin. Qu se quiere hacer y cmo. Uso de la herramienta: Objetivos del uso de la herramienta. Grado de automatizacin. Reutilizacin de los activos. Medicin de la efectividad y productividad. www.steria.com
Si no sabes donde vas cualquier camino es bueno pero para poder usar un mapa es necesario saber donde ests.
www.steria.com
www.steria.es
Preguntas?
Steria