Software Quality Systems, S.A. © Software Quality Systems – SQS, s.a. 2006 TESTING Calidad para competir © Software Quality Systems – SQS, s.a. 2006 Indice Q Presentación de SQS Q Definiciones Q Objetivo e implicaciones del testing Q Los costes de la no calidad Q Soporte a la mejora del proceso constructivo de software y su comprobación Q La economía del testing Q Fases del testing Q Servicios del Testing Q Riesgos Q Tendencias © Software Quality Systems – SQS, s.a. 2006 Indice Q Presentación de SQS Q Definiciones Q Objetivo e implicaciones del testing Q Los costes de la no calidad Q Soporte a la mejora del proceso constructivo de software y su comprobación Q La economía del testing Q Fases del testing Q Servicios del Testing Q Riesgos Q Tendencias © Software Quality Systems – SQS, s.a. 2006 SQS S.A. - La Empresa SQS S.A. ofrece servicios de  Aseguramiento de la calidad del software.  Soporte y asesoramiento tanto a nivel de calidad de proceso como de producto.  Implantación de metodologías y herramientas tanto propias, resultado de nuestra propia labor investigadora, como de terceras empresas. SQS S.A. tiene dos ámbitos claros de actuación: software comercial: sistemas críticos: fundamentalmente zsector bancario fundamentalmente zsector ferroviario ztelecomunicaciones zsector farmacia zeditorial zmáquina zservicios Web, etc. © Software Quality Systems – SQS, s.a. 2006 zsector herramienta del automóvil, etc. Servicios Generales Gestión y Aseguramiento de la Calidad © Software Quality Systems – SQS, s.a. 2006 Servicios Generales Gestión y Aseguramiento de la Calidad Construcción de QA - Implantación:   Soporte en la definición e implantación de procesos de desarrollo y mantenimiento (p.e. Gestión de configuración y control de cambios). Soporte en la implantación/cumplimiento de normas de calidad. Analítica de QA - Análisis y Verificación:   Auditorías funcionales y de seguridad documentación, cobertura de tests,...) Servicios de Prueba. © Software Quality Systems – SQS, s.a. 2006 (p.e. Servicios Generales Gestión y Aseguramiento de la Calidad PRODUCT oc es s Pr I D V V& ng ti s e T I + C ou Ce rti Su fica p p ti o or n t es rs l ca i ti r C s ty fe stem a S Sy Per f o r m Tes ance t D Q&T f. rti Ce G IN QA-TEST © Software Quality Systems – SQS, s.a. 2006 TEST-LAB ional Funct Test + V&V Testin g EC K on at i e f ic rti ram Ce rog P Co m Sys ercia tem l s I-C H P VP SERVICES Inter Cenelec N AI TR T WF Indice Q Presentación de SQS Q Definiciones Q Objetivo e implicaciones del testing Q Los costes de la no calidad Q Soporte a la mejora del proceso constructivo de software y su comprobación Q La economía del testing Q Fases del testing Q Servicios del Testing Q Riesgos Q Tendencias © Software Quality Systems – SQS, s.a. 2006 Definiciones Q Varias preguntas. T Qué es la calidad? T Qué es el software testing/pruebas del software? T Por qué es necesario? © Software Quality Systems – SQS, s.a. 2006 Qué es la calidad? CALIDAD “La totalidad de las características de una entidad que conducen a la capacidad de satisfacer las nececidades indicadas o implicadas.” ASEGURAMIENTO DE LA CALIDAD “Todas las acciones previstas para satisfacer los requisitos para la calidad.” © Software Quality Systems – SQS, s.a. 2006 Qué es el testing? “…el proceso de ejercitar el software para detectar errores y verificar que satisface los requisitos funcionales y no-funcionales especificados.” T El testing es una forma de medir la calidad. © Software Quality Systems – SQS, s.a. 2006 Por qué es necesario el Testing Q Por qué es necesario? T El problema del año 2000 T Legislación T Incremento de la complejidad T Comercio electrónico T Time to market T Proveer nuevos canales de comunicación © Software Quality Systems – SQS, s.a. 2006 Ejemplos de fallos de software Q 1. Fallo de la sonda Mariner I (1962): una fórmula mal resuelta escrita en un papel causa una trayectoria incorrecta. Q 2. Oleoducto soviético (1982): Los estadounidenses pasan software con fallos a los soviéticos para un oleoducto; la consecuencia fue la explosión no nuclear más grande de la historia. Q 3. Radiaciones letales en un dispositivo médico (1985-1987):Radiaciones letales del Therac-25, un dispositivo médico para terapias radioactivas, que mataba en vez de curar. Q 4. Gusano de Morris (1988): el primero conocido y el cúal infectó de 2.000 a 6.000 computadoras usando un fallo conocido como buffer overflow. Q 5. Generador de números aleatorios de Kerberos (1988-1996): No era realmente aleatorio. © Software Quality Systems – SQS, s.a. 2006 Ejemplos de fallos de software Q 6. Caída de la red telefónica de AT&T (1990): Debido a un bug en una actualización de software que controla los switches de larga distancia de la compañía. Q 7. División en coma flotante del Intel Pentium (1993): La primera generación de Pentiums de Intel tienen un fallo al calcular divisiones de punto flotante de un rango específico. Q 8. El Ping de la Muerte (1995/1996): Un ping mal formado arbitrariamente afectaba miles de computadoras, especialmente con Windows instalado. Q 9. Desintegración del Ariane 5 (1996): El código del Ariane 4 es usado en el Ariane 5 pero sus motores más veloces inician una cadena de bugs que hacen que el cohete se desintegre a los 40 segundos de ser lanzado. Q 10. Sobredosis radiológica en el Instituto Nacional del Cáncer de Panama City (2000): Una falla de software y no seguir procedimientos por parte de humanos causa que se proporcionen dosis erroneas a pacientes en el Instituto Nacional del Cáncer de Panama City. 8 personas murieron, 20 con problemas de salud graves y doctores fueron acusados de asesinato. © Software Quality Systems – SQS, s.a. 2006 Por qué es necesario el testing? Q Por qué testear? T Identificar fallos Reducir defectos en producción Mejorar la calidad de la aplicación de los usuarios Incrementar la fiabilidad Para asegurar que los fallos no impactan a los costes y a la rentabilidad Para ayudar a mantener la reputación de la organización T Para asegurar que los requisitos son satisfechos O T Para asegurar que los requisitos legales son conocidos Proveer una medida de calidad © Software Quality Systems – SQS, s.a. 2006 Por qué es necesario el testing? Q Mediciones de calidad T La calidad puede ser medida por el testing para comprobar su: Correctitud Fiabilidad Usabilidad Mantenibilidad Reusabilidad Testeabilidad © Software Quality Systems – SQS, s.a. 2006 Indice Q Presentación de SQS Q Definiciones Q Objetivo e implicaciones del testing Q Los costes de la no calidad Q Soporte a la mejora del proceso constructivo de software y su comprobación Q La economía del testing Q Fases del testing Q Servicios del Testing Q Riesgos Q Tendencias © Software Quality Systems – SQS, s.a. 2006 El objetivo del testing DEFECTO “La salida de un valor especificado para una característica de calidad en un producto, que da lugar a que dicho producto o servicio no satisface sus requisitos normales de uso.” T El testing tiene como objetivo prioritario y último encontrar defectos, no sólo los fallos (bugs). © Software Quality Systems – SQS, s.a. 2006 Qué implica el testing? T El testing lleva implícito un compendio de buenas prácticas que dotan de calidad al proceso constructivo de software, desde la primera fase de éste: el análisis de requisitos (funcionales y no funcionales) hasta la última: satisfacción del cliente de nuestro cliente. T El análisis del testing comienza con una valoración del ciclo de vida del desarrollo. T El compendio de buenas prácticas proveen el proceso análitico de nuestro modelo de negocio/proceso: desarrollar software. © Software Quality Systems – SQS, s.a. 2006 Indice Q Presentación de SQS Q Definiciones Q Objetivo e implicaciones del testing Q Los costes de la no calidad Q Soporte a la mejora del proceso constructivo de software y su comprobación Q La economía del testing Q Fases del testing Q Servicios del Testing Q Riesgos Q Tendencias © Software Quality Systems – SQS, s.a. 2006 Los costes de la no calidad Q Cuánto nos desviamos respecto del presupuesto previsto?. Margen de beneficio. Break-point. Q Cuánto tiempo dedicamos a rehacer trabajo “acabado” o “inacabado”? Q Cuántas tareas realizamos de forma repetitiva sin necesidad?. Q Cuál es la proporción de tiempo de desarrollo frente a la corrección de errores?. © Software Quality Systems – SQS, s.a. 2006 Los costes de la no calidad Q Cuántas tareas realizamos que no nos son rentables y no aportan valor?. Q Cuál es la dedicación prevista (tareas/tiempo) de cada rol?. Y su verdadero desempeño?. Cómo se ve impactado el coste del proyecto?. Q Cuánto nos cuesta mantener y adaptar nuestros productos?. Cuántos se convierten en inmantenibles?. Q Proveemos la información suficiente a la dirección para que conozcan los riesgos de lanzar una versión?. © Software Quality Systems – SQS, s.a. 2006 Los costes de la no calidad Q El proceso constructivo de software es ambiguo (escasamente definido) , no está controlado y no es supervisable. T Trabajamos sin objetivos claros (modelo de negocio) y sin comprobar en hitos establecidos, qué porcentaje serían productivos a día de hoy. T No existen mecanismos sistemáticos para validar las tareas y su completitud de acuerdo a los objetivos/necesidades. T Nuestro proceso de desarrollo no es ágil. No se puede adaptar al cambio de los objetivos/necesidades de nuestro cliente. © Software Quality Systems – SQS, s.a. 2006 Los costes de la no calidad Q Q Q En la propia empresa T Perdida de imagen y competitividad. T Debilitamiento de la oferta de servicios. En los clientes T Rotación de clientes. T Insatisfacción de clientes. T Perdida de negocio. En el personal T Rotación y desmotivación de los empleados. T Q Escasa productividad. En el proceso T Descontrol del proceso y de los productos fabricados. T Redundancia de trabajo. T Estimaciones incorrectas de presupuestos y tiempos. © Software Quality Systems – SQS, s.a. 2006 Indice Q Presentación de SQS Q Definiciones Q Objetivo e implicaciones del testing Q Los costes de la no calidad Q Soporte a la mejora del proceso constructivo de software y su comprobación Q La economía del testing Q Fases del testing Q Servicios del Testing Q Tendencias © Software Quality Systems – SQS, s.a. 2006 Modelo tradicional de desarrollo Análisis Diseño Implementación Integración y ” Pruebas ” Instalación y vida Tiempo © Software Quality Systems – SQS, s.a. 2006 © Software Quality Systems – SQS, s.a. 2006 Modelos para testear Q Hay muchos modelos para testear T Los más generalizados son: O V,V&T. O El Modelo en V. © Software Quality Systems – SQS, s.a. 2006 Modelos para testear Q Modelo V, V & T T Verificación O T Validación O T “El proceso de evaluar un sistema o componente para determinar si los productos de la fase de desarrollo satisfacen las condiciones impuestas al comienzo de esa fase” “Determinación de la correctitud de los productos del desarrollo de software con respecto a las necesidades y requisitos de los usuarios” Testing O “proceso de ejercitar el software para corroborar que satisface con los requisitos especificados y para detectar fallos” © Software Quality Systems – SQS, s.a. 2006 Modelo de desarrollo con testing Modelo en V – dónde empezamos a testear? T Requisitos T Diseño Nivel Código T UAT Test de Sistema Test Unitario Tiempo © Software Quality Systems – SQS, s.a. 2006 Modelo de desarrollo con testing Un ejemplo del modelo en V Requisitos del negocio y usuario Test de aceptación del usuario Requisitos del software Test de sistema Especificación del programa Test de integración Especificación de componentes Verificación Validación © Software Quality Systems – SQS, s.a. 2006 Test de componentes Programación funcional, no-funcional Indice Q Presentación de SQS Q Definiciones Q Objetivo e implicaciones del testing Q Los costes de la no calidad Q Soporte a la mejora del proceso constructivo de software y su comprobación Q La economía del testing Q Fases del testing Q Servicios del Testing Q Riesgos Q Tendencias © Software Quality Systems – SQS, s.a. 2006 La economía del testing Q Cuánto más temprano es encontrado un fallo, más barato es remediarlo. T Fallos en los requisitos pueden conllevar una reingeniería de todo el sistema. T Muchos errores pueden ser encontrados realizando revisiones en la documentación y/o el código. © Software Quality Systems – SQS, s.a. 2006 La economía del testing Q El coste medio de reparar un error se multiplica por 10 en cada etapa del proceso de desarrollo. T En revisiones de código se encuentran y corrigen errores en una media de 1 a 2 minutos. T En el testing inicial, se encuentran y corrigen errores en una media de 10 a 20 minutos. T En el testing de integración cada error puede costar una hora o más. T En el test de sistema cada fallo puede costar entre 10 y 40 horas de ingeniería. Watts Humphrey © Software Quality Systems – SQS, s.a. 2006 La economía del testing Q Un diseño anticipado del test puede prevenir la multiplicación de errores. T El análisis de los requisitos durante la preparación del test amenudo saca a la luz errores en los mismos. T Si no son encontrados los errores en la documentación puede que el sistema sea desarrollado incorrectamente. © Software Quality Systems – SQS, s.a. 2006 La economía del testing Preparación del Test – “el método antiguo” Esfuerzo Preparación anticipada del Test Casos de Prueba Datos de Prueba Ejecución del Test (1) (2) Análisis Diseño Implementación Integración y Test Instalación Tiempo © Software Quality Systems – SQS, s.a. 2006 La economía del testing La Base: Aplicación online (aproximadamente 100 funciones de negocio) Conclusión: Errores totales en requisitos: 1.300 Errores totales en la implementación: 300 Número de Errores 1.400 1.200 1.150 1.000 800 Requisitos FK 600 Implementación Rea 295 400 100 200 15 35 5 0 Descubiertos Especificación Implemendurante: de Casos de tación Ejecución del Test Producción (1/2 año) Prueba Comentario: • Casi el 90% de todos los errores fueron identificados en los requisitos, durante la especificación sistemática de los casos de prueba • El ratio de errores entre requisitos e implementación fué de 4:1 © Software Quality Systems – SQS, s.a. 2006 La economía del testing - Coste de los defectos Q El coste de los defectos aumenta cuanto más tarde son encontrados. Caper Jones, Applied Software Measurement 1996. Encontrado Coste del defecto Desarrollo 10€ Testing de Unidad 150€ Testing de Sistema 300€ Pruebas de aceptación 1.200€ de usuario En vida © Software Quality Systems – SQS, s.a. 2006 21.000€ 160 150 140 120 100 80 60 50 40 27,5 Production Test Acceptance Test 10 Developer 3 Coding 0 1 Design 20 Requirements Coste relativo de los errores La economía del testing fuente: Arne Schirmacher, 08.02.2002 © Software Quality Systems – SQS, s.a. 2006 Indice Q Presentación de SQS Q Definiciones Q Objetivo e implicaciones del testing Q Los costes de la no calidad Q Soporte a la mejora del proceso constructivo de software y su comprobación Q La economía del testing Q Fases del testing Q Servicios del Testing Q Riesgos Q Tendencias © Software Quality Systems – SQS, s.a. 2006 Evolución del testing en la empresa Q “Pruebas de programador” Q Testing interno/Externalización del testing Q Alpha Testing Q Beta Testing Q Testing por una entidad/consultora independiente © Software Quality Systems – SQS, s.a. 2006 Por dónde empezar el testing? Q Valoración de su proceso de desarrollo. Q Redefinir su proceso. T Identificar los inputs. T Identificar las tareas/actividades. T Identificar los roles encargados de realizarlas y de su supervisión. T Identificar los outputs. O O O Identificar las métricas para medirlos. Establecer sus criterios de completitud de acuerdo a los objetivos. Comparar el valor previsto con el obtenido y analizar. © Software Quality Systems – SQS, s.a. 2006 Crear el plan de Testing/Pruebas Q Qué es un plan de test/pruebas? “Un documento que describe el ámbito, acercamiento, recursos, y calendario de las actividades de test previstas. Identifica los items de pruebas, las caracteríticas a ser testeadas, las tareas del testing, quién hará cada tarea, y cualquier riesgo inherente con su correspondiente plan de contingencia.” T Un plan de proyecto para el testing. O O Que cubra todos los aspectos del testing. Un documento vivo que debe cambiar de acuerdo al progreso del testing. © Software Quality Systems – SQS, s.a. 2006 Indice Q Presentación de SQS Q Definiciones Q Objetivo e implicaciones del testing Q Los costes de la no calidad Q Soporte a la mejora del proceso constructivo de software y su comprobación Q La economía del testing Q Fases del testing Q Servicios del Testing Q Riesgos Q Tendencias © Software Quality Systems – SQS, s.a. 2006 Servicios del testing Q Valoración del ciclo de vida de desarrollo T Informe de estado y mejoras T Q Implantación de esas mejoras Testing T Funcional T Embebido/Empotrado T Carga y Rendimiento, Stress T Automatización T Instalación, Almacenamiento, Seguridad,… T Entornos de pruebas T Benchmark de herramientas T Pruebas de aceptación del usuario T Pruebas de aceptación operativa (24*7) © Software Quality Systems – SQS, s.a. 2006 Servicios del testing Q Adecuación a normativas/estándares T Sectores críticos T Otros Q Ayuda a la creación del (departamento) Testing en su empresa Q Externalización del testing Q Proveer entornos y herramientas de testing T SQS - TestLab Q Gestión de la configuración Q Análisis de herramientas de testing © Software Quality Systems – SQS, s.a. 2006 Indice Q Presentación de SQS Q Definiciones Q Objetivo e implicaciones del testing Q Los costes de la no calidad Q Soporte a la mejora del proceso constructivo de software y su comprobación Q La economía del testing Q Fases del testing Q Servicios del Testing Q Riesgos Q Tendencias © Software Quality Systems – SQS, s.a. 2006 Identificación del riesgo – Qué es el riesgo? Q Q El riesgo de los fallos: T Del proyecto. T De una parte componente. T De los procesos soportados. Qué coste tiene? T El 15% de los proyectos fallan. (DeMarco). T El gobierno británico ha abandonado un gasto en TI de 7,5 Bn € en los últimos 12 años. T Una empresa de seguros abandonó un proyecto al coste de alrededor de 60M €. © Software Quality Systems – SQS, s.a. 2006 Tendencias - Identificación de los riesgos Q Q Clasificación de los riesgos: T Riesgo del negocio. T Riesgo del proyecto. T Riesgo técnico. T … Cuáles son los objetivos de su cliente? T Protección de la inversión. T Expandir el mercado (nuevos productos/servicios disponibles). T Crear nuevos canales de entrega (explotar nuevas tecnologías). T Crear nuevos mercados (Posicionamiento de productos y servicios vital). © Software Quality Systems – SQS, s.a. 2006 Riesgos Q Cuanto mayor es el beneficio – mayor es el riesgo. Q Está dispuesto a asumir riesgos sin garantías de éxito? © Software Quality Systems – SQS, s.a. 2006 Tendencias - Problemática del desarrollo actual Q Q Desarrollos descentralizados. T Análisis (Alemania) T Diseño (España) T Desarrollo (Alemania, España, India) T Implantación (en todo el mundo) Complejidad de los productos T Un mismo producto para X paises/delegaciones Q Costes del personal. Q Externalización de parte/s de nuestro ciclo de vida. © Software Quality Systems – SQS, s.a. 2006 Indice Q Presentación de SQS Q Definiciones Q Objetivo e implicaciones del testing Q Los costes de la no calidad Q Soporte a la mejora del proceso constructivo de software y su comprobación Q La economía del testing Q Fases del testing Q Servicios del Testing Q Riesgos Q Tendencias © Software Quality Systems – SQS, s.a. 2006 Tendencias – Normativas/Estándares Q Normativas/Estándares T Son realizadas por comisiones técnicas de normalización T Sectores Críticos O O CENELEC – Comite Europeo para la Estandarización Electrotecnica. FDA – Administración de los Estados Unidos para los alimentos y farmacos. P O O T GMP – Buenas prácticas de fabricación IEC – Comisión Electrotécnica Internacional … Otros O O O O O ISO – Organización Internacional para la Estandarización. IEEE – Instituto de Ingenieros en Electricidad y Electrónica. AENOR – Asociación Española de Normalización. BS – Estándarización británica. … © Software Quality Systems – SQS, s.a. 2006 Tendencias - Certificación Q Cumplimiento de estándares (ej. demanda sectorial) Q Cumplimiento de niveles de calidad interna (elemento diferencial frente a la competencia) T Q Q SQS Cumplimento de niveles de calidad del contratista T VPP T Pliegos de condiciones Entes Independientes T INTI T … © Software Quality Systems – SQS, s.a. 2006 Tendencias Q Proyectos de I+D+I T Gobierno Vasco O SPRI – Sociedad para la Promoción y Reconversión Industrial P T Gobierno Español O T UET – Unidad Estrátegica de Tecnología TI – Tecnologías de la Información Unión Europea O TI – Tecnologías de la Información © Software Quality Systems – SQS, s.a. 2006 SQS - Software Quality Systems SQS - Software Quality Systems, SA España, Inglaterra, Bélgica, China Tel : +34 94 4804617 Fax: +34 94 4804247 E-Mail: fnanclares@sqs.es Formación: formacion@sqs.es Internet: www.sqs.es © Software Quality Systems – SQS, s.a. 2006