José Alberto García Coria Director CENIT Salamanca Salamanca, Febrero 2011
Índice Objetivos Servicios de Pruebas Ciclo de Vida de las Pruebas Tipos de Pruebas Herramientas
Objetivos Objetivos Exponer el alcance y la operativa de los servicios de Pruebas en el p y p ámbito del desarrollo de Software. Nace con la motivación de mejorar la calidad del producto final a través del aseguramiento de la calidad y de la especialización de las pruebas: Estableciendo controles de calidad bl i d l d lid d en determinadas etapas del ciclo de vida d i d d l i l d id del desarrollo de software o en puntos considerados. Definiendo un proceso de pruebas Definiendo un proceso de pruebas avanzado. Afianzando la cultura de pruebas en el equipo. Maximizando el aprovechamiento de las capacidades de las herramientas. M i i d l h i d l id d d l h i Favoreciendo la reutilización de las pruebas diseñadas.
Objetivos Objetivos La importancia de detectar los errores a tiempo p p
Servicios de Pruebas Clasificación Orientados a certificar que los procesos vigentes se cumplen y a ejecutar controles en determinadas etapas del ciclo de vida de desarrollo que anticipen posibles problemas. CONTROLES QA (Quality Assurance) QA1: VALIDACIÓN DE ENTRADAS QA2: CONTROL DE ACTIVIDADES DE DESARROLLO QA3: CONTROL DE SALIDAS CONTROLES PA (Process Assurance) En TODOS los procesos Servicios de Aseguramie ento de la Calid dad Persiguen la especialización de las diferentes tipologías de pruebas que forman parte del ciclo de vida de desarrollo de software. PROYECTOS EN CONSTRUCCIÓN PLAN DE PRUEBAS PRUEBAS UNITARIAS PRUEBAS DE INTEGRACIÓN PRUEBAS FUNCIONALES INTEGRACIÓN CONTINUA PROYECTOS EN MANTENIMIENTO Mantenimiento de Pruebas Se ervicios de Pruebas
Ciclo de Vida de las Pruebas Ciclo de Vida de las Pruebas PLANIFICACIÓN PLANIFICACIÓN DISEÑO ENTRADAS Plan de Proyecto Especificación de requisitos Análisis funcional, casos de uso Análisis funcional casos de uso Identificación de pruebas Definición de la cobertura de pruebas Definición de entornos Revisión de los periodos de pruebas Establecimiento de objetivos de QA y de pruebas Planificación de controles QA y f ó de pruebas dentro del Plan de Proyecto SALIDAS Plan de Pruebas DISEÑO EJECUCIÓN EJECUCIÓN Identificación de funcionalidades Definición de casos de prueba Definición de las condiciones de entrada/salida Asignación de requisitos Preparación de datos de pruebas Especificación de pasos de las pruebas Generación de documentación de diseño de pruebas Configuración de herramientas de pruebas SALIDAS Diseño de Pruebas Preparación de entornos de pruebas Ejecución de las pruebas Reporte de defectos Verificación de las correcciones de defectos SALIDAS Cuadros de Mando de defectos Informe Resultado de la Ejecución de Pruebas CIERRE CIERRE Revisión Cuadros de Mandos de defectos de defectos Revisión mediciones de los parámetros sobre los que se realiza el cálculo de indicadores Inventario lecciones did aprendidas SALIDAS Informe Final de Pruebas Métricas actualizadas Lecciones Aprendidas p
Tipos de Pruebas Quality Assurance (QA) Son servicios que validan la calidad de productos generados en diferentes momentos del Ciclo de Vida de desarrollo. Verifican que los elementos se adecúan a la metodología establecida y actúan como elementos de control de la calidad del proyecto. El control QA tiene aplicación en diferentes momentos del Ciclo de Vida de desarrollo, adecuando su contenido a la fase en la que se ejecuta. Asegurar la calidad de los entregables tanto de entrada como de salida del proceso de Pruebas. OBJE ETIVOS No permitir que se arrastren deficiencias entre fases del ciclo de vida. Actuar como bisagra entre los distintos actores del modelo de relación, pudiendo valorar objetivamente t la Calidad dde los trabajos acortando las negociaciones i y mejorando la gestión de conflictos. Actuar como filtro o barrera de entregas inmaduras, ahorrando esfuerzos innecesarios de gestión de incidencias, pruebas y soporte.
Tipos de Pruebas Plan de Pruebas El Plan de Pruebas es el activo que debe identificar las pruebas necesarias para garantizar la Calidad del producto Software. Define, por tanto, el alcance de las pruebas. Para elaborarlo se evalúan diversos aspectos del proyecto: complejidad, criticidad, tamaño, tecnología, etc. En función de ellos se determina elenfoqueenfoque y nivelde detallede las pruebas unitarias, de integración y funcionales: entornos, cobertura de las pruebas, períodos de diseño y ejecución de pruebas, recursos necesarios para ejecutarlas, etc. Diseñar un planteamiento de pruebas acorde a las necesidades del proyecto y a los estándares de calidad. OBJET TIVOS Dimensionar en base al alcance el esfuerzo y coste del servicio. Definir las estrategias de uso del Entorno de Integración Continua. Consensuar entre los diferentes actores el modelo de pruebas desde el punto de vista de gestión e ingeniería.
Tipos de Pruebas Pruebas Unitarias Las Pruebas Unitarias se enmarcan dentro de la fase de desarrollo del proyecto OBJ JETIVOS Asegurar la calidad de los componentes construidos, evitando que los errores de construcción lleguen a fases más avanzadas del Ciclo de Vida. Realizar un Diseño de Pruebas Unitarias adecuado a las características del proyecto, valorando la relación entre el esfuerzo invertido y el beneficio esperado. Las Pruebas Unitarias deben ser automatizables, de tal modo que sus ejecuciones Las Pruebas Unitarias deben ser automatizables de tal modo que sus ejecuciones reiterativas no impliquen un esfuerzo adicional. Las Pruebas Unitarias deben ser mantenibles, con el fin de asegurar la estabilidad del proyecto en las fases de mantenimiento posteriores al despliegue proyecto en las fases de mantenimiento posteriores al despliegue.
Tipos de Pruebas Pruebas Funcionales Las Pruebas Funcionales se enmarcan dentro de la validación del producto software y Las Pruebas Funcionales se enmarcan dentro de la validación del producto software y persiguen validar que todos los requisitos funcionales se cumplan. El Plan de Pruebas debe identificar los requisitos que se deben verificar,así como su grado d de complejidad y criticidad. De esta manera se pueden adecuar los diseños de pruebas a l jid d i i id d D d d l di ñ d b las necesidades existentes. Los Diseños de Pruebas Funcionales son uno de los puntos críticos del modelo, por tanto d b deben ser revisados y validados antes de la realización de los Ciclos de Pruebas. i d lid d t d l li ió d l Ci l d P b OBJETIIVOS Asegurar que los productos software cumplen con los requisitos establecidos. Asegurar que los productos software cumplen con los requisitos establecidos Proporcionar visibilidad sobre el estado real de la aplicación a los gestores del proyecto, para facilitar la toma de decisiones. Aportar estadísticas sobre el estado de las pruebas. Aportar estadísticas sobre el estado de las pruebas Asegurar capacidad para la corrección de deficiencias en paralelo con la ejecución de los ciclos de pruebas. P Presentar Objetivos de Calidad que permitan decidir cuándo un producto está listo para su paso t Obj ti d C lid d it d idi á d d t tá li t a producción o para su evolución a la siguiente fase del ciclo de vida.
Tipos de Pruebas Pruebas de Regresión Dentro de un proceso iterativo y de crecimiento modular del Software, las Pruebas de Regresión deben ser un elemento clave dentro de la Estrategia definida por el Plan de Pruebas del proyecto. Entenderemos la Prueba de Regresión como la selección y ejecución de un subconjunto de casos de prueba, que se han llevado acabo anteriormente, para asegurarse que los cambios no han propagado efectos colaterales no deseados. La labor del Arquitecto de Pruebas para determinar la muestra optima de Pruebas para la Regresión es un factor clave del éxito de las mismas. Asegurar que los cambios en el software no producen errores adicionales. OBJET TIVOS n s bconj nto de Pr ebas idóneo q e permita el eq ilibrio entre garanti ar la Definir Definir un subconjunto de Pruebas idóneo que permita el equilibrio entre garantizar la detección de efectos colaterales y no penalizar los plazos y esfuerzo previsto para el cambio. Pro actividad: Determinar cuando es necesario sumar nuevas pruebas adicionales para cada ciclo iteración. Apoyarnos en el uso de herramientas para poder potenciar la reutilización de Casos de Pruebas y Datos de Prueba. Combinar la estrategia de Pruebas de Regresión con la de definición de las Pruebas de Combinar la estrategia de Pruebas de Regresión con la de definición de las Pruebas de Mantenimiento y el entorno de Integración Continua.
Tipos de Pruebas Integración Continua Análisis de la Compilación y Despliegue Determina si el paquete de despliegue es correcto así como que todos los componentes del mismo compilan adecuadamente. Estabilidad de los Desarrollos Mediante la automatización de las Pruebas Unitarias se pueden detectar automáticamente errores en los desarrollos y permite alertar al equipo de desarrollo para mantener el aplicativo estable. Análisis Estático de Código Identifica problemas que van desde un incumplimiento en las reglas de calidad del código establecidas, hasta posibles errores de programación, así como código con problemas de rendimientoo fragmentos duplicados que son candidatos a una refactorización. Análisis de Dependencias Orientado a detectar dependencias no permitidas por la arquitectura, así como diseños de mala calidad. Un buen diseño de un componente software debe garantizar una alta cohesión y una baja dependencia, para permitir una adecuada reutilización. Análisis del Grado de Cobertura de Pruebas Unitarias Verifica que el porcentaje de código que queda cubierto con las pruebas unitarias ejecutadas está dentro de los umbrales de calidad establecidos para el proyecto.
Tipos de Pruebas Mantenimiento Los servicios de Mantenimiento de Pruebas se enmarcan dentro de la estrategia global de mantenimiento de aplicativos, utilizando las pruebas como mecanismo para garantizar la correcta gestión del cambio, evitando impactos en el aplicativo que se encuentra en producción. Estrategia a cuatro niveles: Pruebas Unitarias: Identifican efectos colaterales no previstos ante cambios de código. Pruebas de Integración: Detectan los cambios en los entornos acoplados al aplicativo en mantenimiento. Pruebas Funcionales: Permiten actuar como pruebas de regresión que verifican que, ante un cambio, el proyecto cumple y mantiene los requisitos establecidos. Pruebas de Regresión: Como el subconjunto clave para gestionar el impacto colateral regulando los plazos y el esfuerzo. Aprovechar el Plan de Pruebas confeccionado en las fase de desarrollo para mantener la calidad en el proyecto en su fase de mantenimiento. S OBJETIVO Automatizar las pruebas ejecutadas en el desarrollo para generar un ahorro de costes en la fase de mantenimiento. Tener en cuenta en la estrategia de mantenimiento el Entorno de Integración Continua, de tal modo que el sistema sea proactivo y no reactivo a los cambios. Realizar acciones que garanticen la estabilidad de los aplicativos en producción ante cualquier cambio de software.
Herramientas Rational Quality Manager Gestión Demanda Requisitos Análisis Gestión de Proyecto Gestión Configuración Diseño Técnico Construcción y Prueba Unitaria i Pruebas Sistema Pruebas Cliente Implantación Gestión Servicio Centro de Pruebas Carga de Planes de Pruebas. Gestión de Ciclosde Pruebas Integración con herramientas de Pruebas de Seguridad, Rendimiento y automatización.
Herramientas Rational Functional Tester Herramienta para la automatización del ciclo de pruebas Asegurar la calidad de nuestras aplicaciones antes de pasarlas a producción Automatización de pruebas de regresión: Grabarlas pruebasrespectorespecto a una versión estable de la aplicación Repetir de manera desatendida la misma prueba contra nuevas versiones de nuestra aplicación De esta manera podemos asegurar que en las nuevas versiones no introducimos nuevos errores de regresión Pruebas de Regresión Build 1 Build 2 Build 3, 4, 5 No hay tiempo para probar todo!! Probar la nueva funcionalidad pero asegurarnos que todo lo anterior sigue funcionando correctamente