ISO/IEC/IEEE 29119 El nuevo estándar internacional para pruebas de software Grupo de trabajo AEN/CTN 71/SC7/GT26 – Ingeniería del Software y Sistemas de Información – Pruebas del Software http://in2test.lsi.uniovi.es/gt26/ Software Testing Innovation Alliance San Sebastián, 15 de Diciembre de 2015 Grupo de Trabajo AEN/CTN71/SC7/GT26 Pruebas de Software Javier Tuya Universidad de Oviedo (coordinador del GT26) Celestina Bianco Ramón Lema Juan M. Valera Clara García Ewout van Driel Serial Testers Manuel Fdez. Lidia Cruz Mª José Escalona Isabel Ramos Xavier Escudero José Marañón Awnaba Software Total: 19 miembros, 13 organizaciones diferentes AEN/CTN 71/SC7/GT26 - AENOR ISO/IEC/IEEE 29119 – Pruebas de software 2 © AENOR AEN/CTN 71/SC7/GT26 - AENOR ISO/IEC/IEEE 29119 – Pruebas de software 3 ISO/AENOR Estructura de Comités y Grupos de trabajo ISO/IEC & Organismos nacionales Comités ISO y Grupos de Trabajo: ISO: International Organization ISO IEC JTC1 SC7 WG26 AEN/CTN 71/SC7/GT26 - AENOR for Standarization JTC1: Tecnología de la Información SC7: Ingeniería de Software y Sistemas WG26: Pruebas de software AENOR CTN71 SC7 GT26 Organismos nacionales (ES) AENOR: Asociación Española de Normalización y Certificación GT26: Pruebas del Software http://in2test.lsi.uniovi.es/gt26/ ISO/IEC/IEEE 29119 – Pruebas de software 4 Contenidos Estándares para pruebas y problemática Elaboración y estructura de ISO/IEC/IEEE 29119 Software Testing Parte 1 – Conceptos y definiciones Parte 2 – Modelo de procesos de pruebas Parte 3 – Documentación de pruebas Parte 4 – Técnicas de prueba Estado actual, futuro y conclusión AEN/CTN 71/SC7/GT26 - AENOR ISO/IEC/IEEE 29119 – Pruebas de software 5 Qué son los estándares? “Set of mandatory requirements established by consensus and maintained by a recognized body to prescribe a disciplined uniform approach or specify a product, that is, mandatory conventions and practices” (ISO/IEC 24765:2009 Systems and software engineering vocabulary) Standards provide a body of knowledge that provides the basis for a professional discipline Basis for: Communication – common terminology Professional qualifications Certification/compliance schemes Benchmark of ‘good industry practice’ Contracts Interoperability and consistency…… AEN/CTN 71/SC7/GT26 - AENOR ISO/IEC/IEEE 29119 – Pruebas de software 6 Para qué un estándar para Pruebas de software? Cuerpo de conocimiento como base para esta disciplina profesional Alto grado de acuerdo internacional Adaptable (Tayloring) Cliente: Confianza en el proveedor Benchmark para “buena” práctica industrial Vinculación contractual Proveedor: Comunicación – terminología común Certificación/Acreditación, marketing Cualificación professional, formación Mejora continua, Interoperabilidad, consistencia… AEN/CTN 71/SC7/GT26 - AENOR ISO/IEC/IEEE 29119 – Pruebas de software 7 Qué estándares para Pruebas de Software podríamos usar? Estándares BSI BS 7925-1, SW Testing: Part 1-Vocabulary BS 7925-2, SW Testing: Part 2-Software Component Testing Estándares IEEE testing: IEEE Std 829, Software Test Documentation IEEE Std 1008, Software Unit Testing Estándares sectoriales Cuerpo de conocimiento y metodologías, p.e. ISTQB TMap Next® Otros estándares de tipo general: ISO/IEC 12207, 15289 AEN/CTN 71/SC7/GT26 - AENOR ISO/IEC/IEEE 29119 – Pruebas de software 8 Qué problemas plantean algunos de estos estándares? IEEE & BSI Standards IEEE 829: documentación (proceso implícito) IEEE 1008: pruebas unitarias BS 7925-1 & 2: pruebas unitarias Aspectos clave sin cubrir para un estándar de propósito general: Pruebas no unitarias (integración, sistema, aceptación) Modelo de procesos explíctio Aspectos organizativos y gestión del proyecto. Riesgos Visión más completa de técnicas de prueba Definiciones en conflicto, procesos y procedimientos Qué estándar seguir? AEN/CTN 71/SC7/GT26 - AENOR ISO/IEC/IEEE 29119 – Pruebas de software 9 ISO/IEC/IEEE 29119 Software Testing - Inicio Propuesta de proyecto 29119 de ISO: Feb 2007 Alcance: “This project will produce a software testing standard applicable to all types of software products and software-intensive systems” Propósito: “to unify and integrate the currently fragmented corpus of normative literature regarding testing that is currently offered by three distinct standards-makers: BSI, IEEE, and ISO/IEC JTC 1/SC 7. The result of the project will be a consistent, unified treatment adopted by all three organizations” Cuatro partes (Conceptos, procesos, documentación, diseño de pruebas) AEN/CTN 71/SC7/GT26 - AENOR ISO/IEC/IEEE 29119 – Pruebas de software 10 ISO/IEC/IEEE 29119 Software Testing - Estructura Parte 1 Conceptos y Definiciones BS 7925-1 Parte 4 Parte 2 Parte 3 Técnicas de Prueba Procesos Documentación BS 7925-2 Parte 5 Pruebas Dirigidas por Palabras Clave IEEE 829 33063 20246 Evaluación de Procesos Revisión de Productos de Trabajo IEEE 1028 ISO/IEC/IEEE 29119 - Elaboración Working Draft (WD) Committee Draft (CD) Draft International Standard (DIS) Final Draft International Standard (FDIS) International Standard CD1 WD WD … May 10 CD2 CD1 CD3 CD2 Partes 1, 2 & 3 Parte 4 Parte 5 DIS CD3 FDIS DIS1 WD May 11 May 12 FDIS DIS2 May 13 ISO/IEC/IEEE 29119 – Pruebas de software CD May 14 DIS May 15 Parte 1 – Conceptos y Definiciones Términos y definiciones prueba estática y dinámica, base de prueba, tipo de prueba, subproceso de prueba … Conceptos sobre pruebas de software: Las pruebas de software en las organizaciones Los procesos de prueba en los ciclos de vidas (visión general) Pruebas basadas en riesgos Subprocesos de prueba Estrategias de prueba Automatización de las pruebas Problemas en la gestión AEN/CTN 71/SC7/GT26 - AENOR ISO/IEC/IEEE 29119 – Pruebas de software 13 Parte 1 – Conceptos y Definiciones Anexos: ANEXO A. El papel de las pruebas en la verificación y la validación ANEXO B. Métricas ANEXO C. Pruebas en diferentes modelos de ciclo de vida (Desarrollo ágil, Desarrollo secuencial, Desarrollo evolutivo) ANEXO D. Ejemplos de subprocesos de prueba detallados (Aceptación, Desarrollo, Integración, Personalización, Regresión, etc.) ANEXO E. Roles y responsabilidades en el testing AEN/CTN 71/SC7/GT26 - AENOR ISO/IEC/IEEE 29119 – Pruebas de software 14 Parte 2 - Modelo de Procesos de pruebas Procesos de prueba de la organización Procesos de gestión de las pruebas Planificación Control y seguimiento Finalización Procesos de pruebas dinámicas Diseño e Implement. AEN/CTN 71/SC7/GT26 - AENOR Gestión del entorno Ejecución ISO/IEC/IEEE 29119 – Pruebas de software Reporte de incidencias 15 P2 Especificación pruebas de la organización Especificación de pruebas de la organización Política de pruebas Estrategia(s) de pruebas Objetivos Alcance Organización Principios gobernantes Procesos Responsables Productos Técnicas Herramientas AEN/CTN 71/SC7/GT26 - AENOR ISO/IEC/IEEE 29119 – Pruebas de software 16 P2 Procesos de Gestión Procesos de Pruebas de la Organización Política y estrategia de pruebas Realimentación para la política y estrategia de pruebas Procesos de Gestión de pruebas Actualizaciones del Plan Plan Planificación Control y seguimiento Plan, Informe del estado Informe de finalización, Métricas Plan, Directrices de Control Procesos de Gestión de Pruebas Plan, Directrices de Control Informe de Finalización Resultados Finalización Plan, Directrices de Control Métricas Procesos de Pruebas Dinámicas Métricas Procesos de Pruebas Dinámicas AEN/CTN 71/SC7/GT26 - AENOR ISO/IEC/IEEE 29119 – Pruebas de software 17 P2 Aplicación recursiva de procesos - Ejemplo Gestión de las pruebas de la organización Política de pruebas Estrategia de pruebas de la organización Gestión de las pruebas del proyecto Plan de pruebas del proyecto Gestión de pruebas estáticas P.d.P. estáticas Pruebas estáticas Gestión de pruebas de sistema P.d.P. de sistema Gestión de pruebas de usabilidad P.d.P. de usabilidad Pruebas de sistema Gestión de pruebas de aceptación ... P.d.P. de aceptación Pruebas de usabilidad Pruebas de aceptación ... Pruebas estáticas (revisiones, análisis estático…): cubierto por otras normas, p.e. IEEE 1012, 1028 AEN/CTN 71/SC7/GT26 - AENOR ISO/IEC/IEEE 29119 – Pruebas de software 18 P2 Procesos de Gestión Alcance Entender el Contexto (TP1) Calendario del plan de pruebas Organizar el Plan de Pruebas (TP2) Identificar y Analizar Riesgos (TP3) Planificación Plan de Pruebas Consenso del plan de pruebas (TP8) Comunicar Plan de Pruebas (TP9) Registrar el Plan de Pruebas (TP7) Análisis de Riesgos Identificar las Enfoque de Mitigación mitigaciones de riesgos (TP4) Diseñar la Estrategia de Pruebas (TP5) Determinar personal y calendario (TP6) Estrategia de Prueba Calendario y Perfil del Personal Borrador Plan de Pruebas Aprobación Plan de Pruebas AEN/CTN 71/SC7/GT26 - AENOR ISO/IEC/IEEE 29119 – Pruebas de software 19 P2 Procesos de Gestión Alcance Entender el Contexto (TP1) Calendario del plan de pruebas Organizar el Plan de Pruebas (TP2) Identificar y Analizar Riesgos (TP3) Planificación Plan de Pruebas Consenso del plan de pruebas (TP8) Comunicar Plan de Pruebas (TP9) Registrar el Plan de Pruebas (TP7) Análisis de Riesgos Identificar mitigación de riesgos (TP4) Determinar personal y calendario (TP6) Enfoque de Mitigación Diseñar la Estrategia de Pruebas (TP5) Estrategia de Prueba Calendario y Perfil del Personal Borrador Plan de Pruebas Aprobación Plan de Pruebas AEN/CTN 71/SC7/GT26 - AENOR ISO/IEC/IEEE 29119 – Pruebas de software 20 P2 Procesos de Gestión Seguimiento y Control Informe del estado de las pruebas Progreso Plan Reporte (TMC4) Control [Pruebas Incompletas] Preparación Métricas Monitorización (TMC1) (TMC2) Progreso Control (TMC3) Métricas Directrices de Control Procesos de Pruebas Dinámicas [Pruebas Completas] …Procesos de Pruebas… <<Instanciado>> <<Instanciado>> Procesos de Gestión de Pruebas AEN/CTN 71/SC7/GT26 - AENOR ISO/IEC/IEEE 29119 – Pruebas de software 21 P2 Procesos de Gestión Archivar Activos (TC1) Limpiar Entorno (TC2) Entorno disponible Lecciones Aprendidas (TC3) Finalización AEN/CTN 71/SC7/GT26 - AENOR Lecciones Aprendidas Informar Finalización (TC4) ISO/IEC/IEEE 29119 – Pruebas de software Informe Finalización 22 P2 Procesos de Pruebas Dinámicas Procesos de Gestión de pruebas Plan de Pruebas Métricas Directrices de Control Procesos de Pruebas Dinámicas Diseño e implementación de pruebas Requisitos del entorno de pruebas [Sin incidencias] Ejecución de pruebas [Incidencia detectada O Repetir prueba] Preparación y mantenimiento del entorno de pruebas AEN/CTN 71/SC7/GT26 - AENOR Resultados de pruebas Especificación de pruebas Informe de entorno de pruebas disponible ISO/IEC/IEEE 29119 – Pruebas de software Informe de incidencia Informe de incidencias en pruebas 23 P2 Procesos de Pruebas Dinámicas Identificar juegos de Juegos de características características (TD1) Diseño e Implementación Derivar condiciones Condiciones de prueba (test conditions) de prueba (TD2) Derivar elementos de cobertura de prueba (TD3) Elementos de cobertura de prueba (test coverage ítems) Derivar casos de prueba (TD4) Casos de prueba Ensamblar conjuntos Conjuntos de pruebas de pruebas (TD5) Procedimientos y Base de pruebas (Test basis) scripts de Derivar procedimientos prueba de prueba (TD6) AEN/CTN 71/SC7/GT26 - AENOR ISO/IEC/IEEE 29119 – Pruebas de software 24 P2 Procesos de Pruebas Dinámicas Identificar juegos de Juegos de características características (TD1) Diseño e Implementación Derivar condiciones Condiciones de prueba (test conditions) de prueba (TD2) Derivar elementos de cobertura de prueba (TD3) Elementos de cobertura de prueba (test coverage ítems) Derivar casos Casos de prueba de prueba (TD4) Ensamblar conjuntos Conjuntos de pruebas de pruebas (TD5) Procedimientos y Base de pruebas (Test basis) scripts de Derivar procedimientos prueba de prueba (TD6) AEN/CTN 71/SC7/GT26 - AENOR ISO/IEC/IEEE 29119 – Pruebas de software 25 Parte 3 – Documentación Define plantillas que pueden ser utilizadas para generar documentación (information items) producto de los procesos de la parte 2 Diferentes formas: registro electrónico, dividido, combinado Conformidad adaptada: según procesos de P2 o según necesidades de proyecto/organización. Ejemplos (Anexos C a S). Versiones diferentes para proyectos ágiles y tradicionales, p.e. Políticas y estrategias de la organización Plan de pruebas e informes de estado Especificaciones de pruebas, entorno y datos Mapeo a otros estándares (Anexo T): IEEE 829:2008, BS 7925-2 1998 ISO/IEC 15289, ISO/IEC 25051:2006 AEN/CTN 71/SC7/GT26 - AENOR ISO/IEC/IEEE 29119 – Pruebas de software 26 Parte 4 –Técnicas para el diseño de las pruebas Conformidad Total: Subconjunto elegido de técnicas Adaptada: Subconjunto de requisitos. Nuevas Técnicas Técnicas para el diseño de las pruebas Basadas en las especificaciones Basadas en la estructura Basada en la experiencia Medidas de cobertura Anexos Anexo A. Características de calidad Anexo B, C y D. Guías y ejemplos de aplicación de las diferentes técnicas de diseño Anexo E. Efectividad en el cálculo de la cobertura AEN/CTN 71/SC7/GT26 - AENOR ISO/IEC/IEEE 29119 – Pruebas de software 27 P4 Clasificación de las técnicas de diseño de las pruebas Particiones de clases de equivalencia Método de árboles de clasificaciones Basadas en las especificaciones Análisis de valores límite Pruebas de sintaxis Pruebas combinatorias • All Combinations Testing / todas las combinaciones • Pair-wise testing / todas las parejas • Base choice testing / selección de la base más probable • Each choice testing / selección de cada opción Tablas de decisiones Análisis de causas y efectos Pruebas de transiciones de estados Pruebas de escenarios • Pruebas de casos de uso AEN/CTN 71/SC7/GT26 - AENOR ISO/IEC/IEEE 29119 – Pruebas de software 28 P4 Clasificación de las técnicas de diseño de las pruebas Basadas en la experiencia: Error guessing AEN/CTN 71/SC7/GT26 - AENOR ISO/IEC/IEEE 29119 – Pruebas de software 29 P4 Medición de la cobertura alcanzada 𝐶𝑜𝑏𝑒𝑟𝑡𝑢𝑟𝑎 = Cobertura: N: T: 𝑁 ∗ 100 % 𝑇 cobertura alcanzada por una técnica de diseño número de elementos de cobertura incluidos en casos de prueba ejecutados número de elementos de cobertura identificados AEN/CTN 71/SC7/GT26 - AENOR ISO/IEC/IEEE 29119 – Pruebas de software 30 Business Plan Actividades a corto plazo (5 años) Trabajo técnico (estándares, tech. reports) Integración con otros estándares/frameworks de la industria, y grupos del JTC1 (liaisons) Mejora del proceso interno, surveys, nuevos miembros… potential areas where standards or technical reports could be developed Test Processes Maturity Levels Test Reporting Model-based testing Tester Skills and Capabilities 29119 for outsourcing/offshoring Automation 29119 for mobile testing 29119 in different industry sectors 29119 and RBT 29119 Test Metrics Exploratory Testing High Volume Automated Testing 29119 relationship with safety-related Selecting Test Techniques Data-centric testing Product Line Engineering applied to testing Test data sanitization 29119 for agile Non-functional testing How to tailor the standards 29119 in the cloud AEN/CTN 71/SC7/GT26 - AENOR ISO/IEC/IEEE 29119 – Pruebas de software 31 Estado actual (Diciembre 2015) Estándares internacionales publicados (Agosto 2013) 29119-1, 2, 3: Conceptos, Procesos, Documentación Próxima aprobación 29119-4 Técnicas de prueba (Publicado Diciembre 2015) 33063 Modelo de evaluación de proceso para procesos de pruebas de software (Publicado Julio 2015) 33000 renombra serie 15504 (análogo a CMMI) 33063 Usa 29119-2 como modelo de procesos de referencia En progreso 29119-5 Keyword-driven Testing (DIS2 Marzo 2015) 20246 Work Product Reviews (CD Noviembre 2015) Otros (MBT, Agile, Mobile) AEN/CTN 71/SC7/GT26 - AENOR ISO/IEC/IEEE 29119 – Pruebas de software 32 Conclusión El estándar internacional ISO/IEC 29119 proporciona las directrices para las pruebas cubriendo todos los aspectos del ciclo de vida: Composición consistente de definiciones, procesos, procedimientos y técnicas para las pruebas de software Soluciona dispersión existente actualmente Cubre huecos no cubiertos por estándares existentes Adoptado por los comités de normalización nacionales, IEEE y BSI Actualmente representado por 26 naciones, revisado por profesionales de las pruebas de software en todo el mundo El siguiente paso en la profesionalización de esta industria. Más información: Grupo de trabajo GT26: http://in2test.lsi.uniovi.es/gt26/ Agradecimientos: Ministerio de Economía y Competitividad, proyecto TIN2013-46928-C3-1-R (Testing of data persistence and user perspective for new paradigms) AEN/CTN 71/SC7/GT26 - AENOR ISO/IEC/IEEE 29119 – Pruebas de software 33