La Calidad del Software y los Procesos de Testing GFI Informática La Calidad del Software y los Procesos de Testing Índice Introducción. Visión general del proceso de pruebas. Metodologías de pruebas alineadas con procesos de desarrollo Uso de herramientas OpenSource Aspectos diferenciadores herramientas comerciales frente a OpenSource Factoría de pruebas La Calidad del Software y los Procesos de Testing Índice Introducción. Visión general del proceso de pruebas. Metodologías de pruebas alineadas con procesos de desarrollo Uso de herramientas OpenSource Aspectos diferenciadores herramientas comerciales frente a OpenSource Factoría de pruebas La Calidad del Software y los Procesos de Testing Introducción. Definición de calidad software “La calidad del software es el grado con el que un sistema, componente o proceso cumple los requerimientos especificados y las necesidades o expectativas del cliente o usuario”. (IEEE, Std. 610-1990). “Concordancia del software producido con los requerimientos explícitamente establecidos, con los estándares de desarrollo prefijados y con los requerimientos implícitos no establecidos formalmente, que desea el usuario” (Pressman, 1998) La Calidad del Software y los Procesos de Testing Introducción Visión General del Proceso de Pruebas El software lo desarrollan las personas, y éstas comenten errores; no se puede prevenir completamente la introducción de éstos defectos, pero si se puede trabajar para localizarlos especialmente los mas críticos. Decisiones de pruebas deberían basarse en satisfacción del cliente. Este es el objetivo último. Mayor parte de los defectos se concentran en las etapas tempranas del proceso de desarrollo y el costo de corrección aumenta a medida que permanece no detectado. De perogrullo: los defectos mas costosos son aquellos que no se detectan. La Calidad del Software y los Procesos de Testing Introducción Visión General del Proceso de Pruebas El proceso de Pruebas es una parte del ciclo de vida del Software. Interviniendo desde la concepción detallada de la aplicación y colaborando hasta su puesta final en producción, dando así en su conjunto un alto nivel de calidad. PRUEBAS PRUEBAS PRUEBAS CODIFICACIÓN INTEGRACIÓN INTEGRACIÓNINTEGRACIÓN Ideal Ideal Pruebas Pruebas Ideal Pruebas PRUEBAS PRUEBAS PRUEBAS Evolución Real Evolución Evolución Real INTEGRACIÓN INTEGRACIÓN INTEGRACIÓN CODIFICACIÓN CODIFICACIÓN CODIFICACIÓN DISEÑO DETALLADO DISEÑO DETALLADO DISEÑO DETALLADO REQUISITOS REQUISITOS REQUISITOS DISEÑO ALTO NIVEL DISEÑO DISEÑOALTO ALTONIVEL NIVEL Planificación Estandar Estandar Planificación Planificación Estandar La Calidad del Software y los Procesos de Testing Introducción – Algo mas que pruebas Software Pruebas Software Gestión del Ciclo de Vida de la Calidad Software La Calidad del Software y los Procesos de Testing Introducción La falta de cualquiera de estos vertices implica problemas evidentes: Carencia Problema Herramientas Falta de Productividad Metodología Proceso caótico y no repetible Metodología Herramientas Recursos La Calidad del Software y los Procesos de Testing Índice Introducción. Visión general del proceso de pruebas. Metodologías de pruebas alineadas con procesos de desarrollo Uso de herramientas OpenSource Aspectos diferenciadores herramientas comerciales frente a open-source Factoría de pruebas La Calidad del Software y los Procesos de Testing Metodologías de Pruebas alineadas con procesos de desarrollo Introducción La evolución de los modelos específicos de test aumenta satisfactoriamente la calidad de dichos procesos y consecuentemente, los coloca en una posición relevante dentro de la ingeniería del software. Los modelos y estándares de evaluación de procesos de software ofrecen herramientas para establecer niveles de madurez de desarrollo y mantenimiento del software. Sin embargo, la sido constatado que estos modelos y estándares no dirigen adecuadamente sus enfoques a los procesos de test. En este sentido, se presentan, a continuación, tres modelos de evaluación y mejora de procesos de test: Acercamiento a la gestión de pruebas (Test Management Approach, TMap) Modelo de Mejora del Proceso de test (Test Process Improvement, TPI) Modelo de Madurez del Test (Test Maturity Model, TMM) La Calidad del Software y los Procesos de Testing Metodologías de pruebas alineadas con procesos de desarrollo TMap TPI TMM La Calidad del Software y los Procesos de Testing Metodologías - TMap La metodología TMAP, está basada en cuatro piedras angulares: Proceso de desarrollo relacionado con el modelo de ciclo de vida para las actividades de pruebas (L) Sólida Organización (O) Recursos e Infraestructura (I) Técnicas utilizables para varias actividades de pruebas (T) La Calidad del Software y los Procesos de Testing Metodologías - TMap Modelo de ciclo de vida de Pruebas La Calidad del Software y los Procesos de Testing Metodologías - TMap Técnicas La Calidad del Software y los Procesos de Testing Metodologías - TMap Infraestructura y Herramientas La Calidad del Software y los Procesos de Testing Metodologías - TMap Organización La Calidad del Software y los Procesos de Testing Metodologías de pruebas alineadas con procesos de desarrollo TMap TPI TMM La Calidad del Software y los Procesos de Testing Metodologías - TPI El modelo TPI está basado en las mejores prácticas de la industria relativas a la mejora del proceso de pruebas. El modelo incluye guías prácticas para evaluar el nivel de madurez de pruebas de una organización así como los pasos para mejorar el proceso. El propósito de tales mejoras podría ser alcanzar el nivel 3 del SEICMM ( Capability Maturity Model ). El modelo se compone de 20 Áreas Clave, cada una con diferentes niveles de madurez. Los niveles de todas las Áreas Clave están integrados en una Matriz de Madurez. Cada nivel está descrito por varios Puntos de Verificación. También forman parte del modelo algunas Sugerencias de Mejora que ayudan a alcanzar el nivel deseado. La Calidad del Software y los Procesos de Testing Metodologías - TPI Niveles Puntos de Verificación Los requisitos para cada nivel están definidos en forma de Puntos de Verificación ( Checkpoints ): son preguntas que necesitan ser respondidas afirmativamente para poder calificar a dicho nivel. A partir de las listas de verificación se puede evaluar un proceso de pruebas y se puede determinar para cada Área Clave el Nivel alcanzado. A medida que se considera mejorada cada Área Clave, los Puntos de Verificación son acumulables: para poder clasificar para el nivel B, el proceso de pruebas necesita responder afirmativamente tanto a los Puntos de Verificación del nivel B como del nivel A. La Calidad del Software y los Procesos de Testing Metodologías - TPI Matriz de Madurez Todos los Niveles y Áreas Clave están interrelacionados en una Matriz de Madurez de Optimizada (11-13) Pruebas. Se ha concebido como una buena manera de expresar Eficiente (6-10) las prioridades internas y dependencias entre Niveles y Áreas Clave. Controlada (1-5) No existe graduación entre Niveles: mientras que un proceso de pruebas no esté clasificado enteramente como nivel B, permanecerá en el nivel A. El propósito principal de la matriz es mostrar los puntos fuertes y débiles del actual proceso de pruebas y ofrecer una ayuda a la hora de determinar la prioridad de las acciones de mejora. La Calidad del Software y los Procesos de Testing Metodologías - TPI Aplicación del Modelo TPI El proceso de mejora de pruebas es similar a cualquier otro proceso de mejora. La figura siguiente muestra las diferentes actividades de un proceso de mejora. La Calidad del Software y los Procesos de Testing Metodologías de pruebas alineadas con procesos de desarrollo TMap TPI TMM La Calidad del Software y los Procesos de Testing Metodologías - TMM El modelo TMM es un modelo de evaluación del proceso de test, guiado por el conjunto básicos de conceptos del CMM y compuesto por dos componentes principales: un conjunto de niveles de madurez y un modelo de evaluación. La Calidad del Software y los Procesos de Testing Metodologías – TMM: Conjunto de Niveles Se describe cada nivel considerando los objetivos de la organización y la capacidad de test. La estructura de cada nivel (excepto el primero), consiste en un conjunto de objetivos de madurez soportado por sub-objetivos (o metas) de madurez que son alcanzados por las actividades, tareas y responsabilidades. Las actividades y tareas representan las acciones que deben ser desempeñadas en cada nivel con el propósito de mejorar la capacidad del test Se asignan responsabilidades para las actividades y tareas, a los gestores, a los desarrolladores y testers y a los usuarios y clientes La Calidad del Software y los Procesos de Testing Metodologías – TMM: Modelo de Evaluación El Modelo de Evaluación consiste en un método que permite a la organización evaluar y mejorar sus procesos de test, basándose en un cuestionario de evaluación, un procedimiento de evaluación y el entrenamiento y criterios de selección del equipo de evaluación. Los objetivos de este componente son: proveer un esquema de evaluación de procesos de test de software y un fundamento para la mejora de dichos procesos a través de análisis de datos y planteamiento de acciones, así como contribuir con la ingeniería del proceso de software. La Calidad del Software y los Procesos de Testing Índice Introducción. Visión general del proceso de pruebas. Metodologías de pruebas alineadas con procesos de desarrollo Uso de herramientas OpenSource Aspectos diferenciadores herramientas comerciales frente a open-source Factoría de pruebas La Calidad del Software y los Procesos de Testing Uso de Herramientas Opensource Gestión del Ciclo de Pruebas Automatización de Pruebas Funcionales Pruebas de Carga Inspección de Código Pruebas Unitarias La Calidad del Software y los Procesos de Testing Uso de Herramientas Opensource Gestión del Ciclo de Pruebas Automatización de Pruebas Funcionales Pruebas de Carga Inspección de Código Pruebas Unitarias La Calidad del Software y los Procesos de Testing Gestión del Ciclo de Pruebas - Algunas Claves Documentar las pruebas Casos de prueba, estrategia de pruebas, ejecuciones … Registrar los problemas encontrados Separar entornos y manejar configuraciones Ensayando la implementación Definir casos de prueba durante el análisis es una forma de documentar el producto Es una forma de adelantarnos al problema Testing independiente El que desarrolla no prueba Mayor experiencia y concentración Nadie está motivado para encontrar sus propios errores La Calidad del Software y los Procesos de Testing Herramientas Opensource – Herramienta de Gestión La gestión de las pruebas, requiere que la herramienta con la que se trabaje cumpla algunas características como: Soportar en paralelo el desarrollo de la aplicación y la gestión de las pruebas Trazabilidad de requisitos a pruebas gestionando ejecuciones así como defectos y su resolución Mejora la predictibilidad del proyecto Acceso en cualquier momento y lugar a pruebas e informes de ejecución Control centralizado Mejora la colaboración y comunicación entre equipos y proyectos Potencia la reutilización de objetos de prueba Acceso protegido a elementos del proyecto Sistema de informes Como ejemplo, se muestra la herramienta TestLink. La Calidad del Software y los Procesos de Testing Herramientas Opensource – Herramienta de Gestión TestLink, permite de manera intuitiva, la elaboración de casos de prueba, con los pasos a seguir para su posterior ejecución, así como de los resultados esperados, quedándose todo ordenado y accesible a través de un árbol de navegación. La Calidad del Software y los Procesos de Testing Herramientas Opensource – Herramienta de Gestión Durante todo el ciclo de vida se pueden obtener métricas tanto del los casos de prueba generados como de estado de la ejecución de los mismos. La Calidad del Software y los Procesos de Testing Uso de Herramientas Opensource Gestión del Ciclo de Pruebas Automatización de Pruebas Funcionales Pruebas de Carga Inspección de Código Pruebas Unitarias La Calidad del Software y los Procesos de Testing Herramientas Opensource – Automatización Pruebas Funcionales Las herramientas de Automatización de pruebas funcionales cumplen el siguiente ciclo de trabajo: Planificación de pruebas automáticas Registro de las acciones de usuario Control y verificación de los Checkpoints Comprobación resultado esperado = resultado obtenido Gestión del mapa de interfaz de usuario Testing modular y batch Como ejemplo, tenemos la herramienta Selenium, que nos permite la operativa de trabajo descrita. La Calidad del Software y los Procesos de Testing Herramientas Opensource – Automatización Pruebas Funcionales Primeramente, se graban las acciones del usuario sobre la aplicación, quedándose éstas recogidas en la aplicación para su posterior tratamiento, que se realizará modificando el código generado Prácticamente la totalidad de las herramientas Opensource, trabajan solo sobre aplicaciones Web. La Calidad del Software y los Procesos de Testing Herramientas Opensource – Automatización Pruebas Funcionales Los casos de prueba, pueden ser modificados para introducir puntos de control, pausas, verificaciones, etc. La ejecución de los mismos se puede planificar, agrupando casos y programándolos. Se obtienen informes sobre los resultados de las ejecuciones. La Calidad del Software y los Procesos de Testing Uso de Herramientas Opensource Gestión del Ciclo de Pruebas Automatización de Pruebas Funcionales Pruebas de Carga Inspección de Código Pruebas Unitarias La Calidad del Software y los Procesos de Testing Herramientas Opensource – Pruebas de Carga Las herramientas para la realización de pruebas de Carga, tiene las siguientes funcionalidades Planificación de pruebas de carga Creación de los escenarios de prueba Simulación de n usuarios concurrentes Análisis de resultados de ejecución de los distintos escenarios A continuación podemos ver la operativa ejemplificada con la herramienta OpenSta La Calidad del Software y los Procesos de Testing Herramientas Opensource – Pruebas de Carga Para la ejecución del test, se introducen datos como número de usuarios, scripts que compondrán la ejecución y elementos a ser testados como % Cpu,memoria, etc... La Calidad del Software y los Procesos de Testing Herramientas Opensource – Pruebas de Carga Durante la ejecución de la prueba, se puede monitorizar todos los recursos que sean de nuestro interés. La Calidad del Software y los Procesos de Testing Herramientas Opensource – Pruebas de Carga Posteriormente a la ejecución, se pueden obtener tanto log como gráficas con las estadísticas de la prueba. Algunas de ellas son las de puntos de medida respecto del tiempo, puntos de medida respecto del número de usuarios, número de usarios activos, errores HTTP, etc La Calidad del Software y los Procesos de Testing Uso de Herramientas Opensource Gestión del Ciclo de Pruebas Automatización de Pruebas Funcionales Pruebas de Carga Inspección de Código Pruebas Unitarias La Calidad del Software y los Procesos de Testing Uso de Herramientas Opensource . Inspección de Código Las inspecciones del código tienen el objetivo de detectar aspectos que influyen en la calidad de éste: Errores de ejecución Mermas de rendimiento Código muerto Redundancia de código Incumplimiento de arquitectura Incumplimiento de estándares técnicos a nivel de codificación. Mantenibilidad del código Metodología de trabajo: Priorización: Se suele aplicar orientación al riesgo. Medición: Uso de herramientas de análisis. Se obtienen métricas de nivel técnico que permiten la detección de incumplimientos y/o deficiencias, cuyo conjunto se expresa en: Informes de auditoria. Plan de mejora. Informe de recomendaciones para la mejora. La Calidad del Software y los Procesos de Testing Uso de Herramientas Opensource . Inspección de Código Entrega de una nueva versión Nueva versión software Publicar versión Se realiza la entrega de una nueva versión de software por parte del proveedor. Integración continua Generación informes Notificación vía mail Generación informe SAC Publicación informes La Calidad del Software y los Procesos de Testing Uso de Herramientas Opensource . Inspección de Código Publicación de la nueva versión Nueva versión software Publicar versión El jefe de proyecto publica el entregable en el repositorio común CVS Integración continua Generación informes Notificación vía mail Generación informe SAC Publicación informes Herramientas: • CVS: Implementa un sistema de gestión de versiones. Mantiene el registro de todo el trabajo y los cambios en la implementación de un proyecto, permitiendo la colaboración entre distintos desarrolladores. Es un referente en software libre de gestión de versiones . La Calidad del Software y los Procesos de Testing Uso de Herramientas Opensource . Inspección de Código Proceso de integración continua Nueva versión software Publicar versión El proceso de integración continua (automático) detecta la nueva versión en el repositorio y ejecuta un conjunto de tareas programadas Integración continua Generación informes Notificación vía mail Generación Informe SAC Publicación informes Herramientas: • Continuum v1.0.2: Servidor de integración continua. Realiza tareas programadas sobre proyectos basados en java. Alto grado de integración con Maven. La Calidad del Software y los Procesos de Testing Uso de Herramientas Opensource . Inspección de Código Notificación vía mail Nueva versión software Publicar versión Integración continua Generación informes Notificación vía mail Generación Informe SAC Se notificará por mail, al conjunto de usuarios definidos, la nueva entrega.: Jefe de proyecto. SAC. Etc. Publicación informes La Calidad del Software y los Procesos de Testing Uso de Herramientas Opensource . Inspección de Código Generación de informes automáticamente Nueva versión software Publicar versión Herramientas: • Changelog v1.8.2 • QALab v0.7.2 • CheckStyle v2.5 • JavaDoc Reporte v1.7 • Jcoverage v1.0.9 • Jdepend v1.5 • NCSS v1.3 • Pmd v1.6 • FindBugs v0.9.2 • File-Activity 1.5.2 Integración continua Generación informes Notificación vía mail Generación informe SAC Publicación informes Se generarán automáticamente los informes de calidad programados. La Calidad del Software y los Procesos de Testing Uso de Herramientas Opensource . Inspección de Código Publicación de Informes Nueva versión software Publicar versión Integración continua Generación informes Notificación vía mail Generación informe SAC Herramientas: • Maven v1.0.2: Herramienta para la gestión y comprensión de proyectos java. Estándar de mercado en el mundo free. Metodología XP. Herramientas: • Apache v utilizada por explotación: Servidor http referente del mercado. Publicación informes Se publicarán de forma automática los informes generados en el portal de calidad La Calidad del Software y los Procesos de Testing Uso de Herramientas Opensource . Inspección de Código Generación de resumen Nueva versión software Publicar versión Integración continua Generación informes Notificación vía mail Generación informe SAC Publicación informes El SAC generará un informe con los resultados de las inspecciones realizadas al código: • Resumen ejecutivo (dirección). • Detalle técnico (equipo técnico). La Calidad del Software y los Procesos de Testing Uso de Herramientas Opensource . Inspección de Código Arquitectura Internet Internet CVS desarrollo Continuum Apache SAC Equipo desarrollo Responsable proyecto CVS SAC (entregas) Gestió Gestión versiones Preexplotación Maven Desarrollo Recursos SAC Frontal Explotación La Calidad del Software y los Procesos de Testing Uso de Herramientas Opensource Gestión del Ciclo de Pruebas Automatización de Pruebas Funcionales Pruebas de Carga Inspección de Código Pruebas Unitarias La Calidad del Software y los Procesos de Testing Herramientas Opensource – Pruebas Unitarias El peso de la generación de las pruebas unitarias recae sobre el equipo de desarrollo. La responsabilidad del equipo de SQA es la de ejecutar el conjunto de pruebas unitarias, validar los resultados y medir el grado de cobertura de las mismas. El conjunto de pruebas unitarias proporcionadas por el equipo de desarrollo debe cumplir los siguientes normas: Ejecutables de forma automática. Independencia del entorno. Autocontenidas. ⌧Preprocesamiento. ⌧Ejecución. ⌧Postprocesamiento. A continuación se muestra un ejemplo de la labor del equipo de SQA en un conjunto de pruebas basadas en Junit y Cobertura. La Calidad del Software y los Procesos de Testing Herramientas Opensource – Pruebas Unitarias Junit es un framework ampliamente utilizado para la automatización de pruebas unitarias. El equipo SQA ejecutará las pruebas unitarias proporcionadas por el equipo de desarrollo obteniendo un informe con el resultado de la ejecución de las mismas. La Calidad del Software y los Procesos de Testing Herramientas Opensource – Pruebas Unitarias Cobertura es una herramienta opensource que mide la cobertura de las pruebas por medio de la instrumentalización del código y la posterior medición de las líneas de código ejecutadas por el conjunto de casos de prueba unitarios. El equipo de SQA instrumentalizaría el código y posteriormente ejecutaría el conjunto de pruebas unitarias analizando los resultados. La Calidad del Software y los Procesos de Testing Herramientas Opensource – Pruebas Unitarias A continuación se muestra una salida estándar de la herramienta: La Calidad del Software y los Procesos de Testing Herramientas Opensource – Pruebas Unitarias Cobertura calcula la cobertura de las pruebas contabilizando: Número de líneas de código ejecutadas. Número de ramas ejecutadas. Adicionalmente Cobertura calcula la complejidad ciclomática (Mc-Cabe) de cada una de las clases. La Calidad del Software y los Procesos de Testing Herramientas Opensource – Pruebas Unitarias La herramienta permite realizar drill-down para visualizar la cobertura de las clases pertenecientes a un determinado paquete Y llegar al máximo detalle visualizando las líneas de código ejecutadas en una determinada clase La Calidad del Software y los Procesos de Testing Herramientas Opensource – Pruebas Unitarias Esta herramienta permite al equipo de SQA validar el porcentaje de cobertura de las pruebas unitarias realizadas por el equipo de desarrollo, identificando módulos poco probados o no probados. Los resultados de la herramienta permiten ampliar el plan de prueba unitario con casos de prueba específicos que cubran el código no testeado. También permite identificar porciones de código “muerto” que no es posible ejecutar. La Calidad del Software y los Procesos de Testing Índice Introducción. Visión general del proceso de pruebas. Metodologías de pruebas alineadas con procesos de desarrollo Uso de herramientas OpenSource Aspectos diferenciadores herramientas comerciales frente a Opensource Factoría de pruebas La Calidad del Software y los Procesos de Testing Aspectos diferenciadores Herramientas comerciales frente a Opensource Ventajas OpenSource ¡Coste licencias es nulo! Construidas con los mismos principios que las comerciales: ⌧ Arquitectura ⌧ Metodología/Técnicas Extensibles/Integrables (Código abierto) En algunos casos y para ciertos entornos, ¡son más potentes que las comerciales! Inconvenientes OpenSource Normalmente sólo disponibles para entornos web/java Entornos de desarrollo “espartanos” En ocasiones, lenguajes propietarios En su desarrollo prima la funcionalidad básica frente a la avanzada y/o utilidades/gadgets El aprendizaje suele ser costoso ⌧ Material de formación muy básico o inexistente ⌧ No suele disponerse de guidelines metodológicos Estabilidad/Fiabilidad El soporte suele ser una incógnita (comunidades de usuarios/desarrolladores). Normalmente es escaso o nulo La Calidad del Software y los Procesos de Testing Aspectos diferenciadores Herramientas comerciales frente a Opensource Ventajas Comerciales Multientorno: web/java, middleware, C/S, legacy (mainframe) Entornos de desarrollo ⌧ IDE gráficos plenos de utilidades ⌧ Lenguajes abiertos Entornos de ejecución con herramientas de análisis, monitorización, diagnóstico, … Robustez y Escalabilidad ⌧ Arquitecturas tolerantes a fallos Metodología/Técnicas: El fabricante aporta las suyas propias Integradas ⌧ Por supuesto las de un mismo fabricante ⌧ En muchas ocasiones, entre fabricantes Integrables (mediante APIS) Herramientas de Reporting potentes ⌧ Integradas con paquetes ofimáticos con su correspondiente plantillaje ⌧ Dashboards ejecutivos (Web) Soporte técnico solvente (¡cuesta, pero existe!) Inconvenientes Comerciales Coste licencias. ¡Suele asustar! La Calidad del Software y los Procesos de Testing Aspectos diferenciadores Herramientas comerciales frente a Opensource Conclusiones: Empezar con opensource no es mala idea: En entornos web/java exclusivamente Las herramientas funcionan Parte del conocimiento adquirido es reaprovechable. ¡Pero ojo, hay que tener en cuenta los costes! Hay un sobreesfuerzo asociado al uso de opensource con respecto a comerciales (la productividad no es la misma) que hay que tener en cuenta: ⌧ Un proyecto grande o varios proyectos pequeños pueden justificar la inversión en comerciales Migrar de opensource a comerciales tiene un coste de reciclaje técnico Definitivamente, en algún momento tendremos que adquirir alguna herramienta comercial: Por adecuación al entorno Por limitaciones en la funcionalidad de las opensource Por necesidades de reporting avanzado ¿Por capricho? ¿A quién no le gusta el Ferrari? La Calidad del Software y los Procesos de Testing Herramientas Comerciales Gestión de Pruebas Automatización Carga y Estrés Reporte de Incidencias Pruebas Manuales La Calidad del Software y los Procesos de Testing Índice Introducción. Visión general del proceso de pruebas. Metodologías de pruebas alineadas con procesos de desarrollo Uso de herramientas OpenSource Aspectos diferenciadores herramientas comerciales frente a Opensource Factoría de pruebas La Calidad del Software y los Procesos de Testing Factoría de Pruebas - Conceptos Grupo dedicado que provee testing como un servicio compartido Emplea un conjunto de personas que se especializan en uno o múltiples tipos de testing o uno o mas dominios de negocio o tecnológicos. Entre los roles de una Factoría de Pruebas se pueden incluir: Definición de los procesos y estándares de testing a ser adoptados por los proyectos Implantación de los procesos y estándares definidos Provisión de personal cualificado y entrenado a los proyectos Planificación y ejecución de testing para varios proyectos La Calidad del Software y los Procesos de Testing Factoría de Pruebas- Tradicional vs FdP Acercamiento Tradicional Factoría de Pruebas Se contrata al equipo de test por proyecto, dependiendo de la disponibilidad de los recursos Se contrata al equipo de test para múltiples proyectos basados en compromisos Los desarrolladores se emplean como testers durante las últimas etapas del proyecto Se emplean tester especializados con habilidades y que han sido entrenados para realizar testing Se dedican diferentes testers durante las diferentes etapas del proceso de testing o a través de diferentes proyectos Se dedica un pool de recursos de testing para uno o mas proyectos Los procesos de testing son implementados inconsistentemente a través de los proyectos Se aprovechan los procesos de testing a través de los diferentes proyectos – Consistencia Posible duplicación de habilidades y entrenamiento a través de los diferentes proyectos Se aprovecha óptimamente las diversas habilidades a través de los diferentes proyectos La Calidad del Software y los Procesos de Testing Factoría de Pruebas – Requisitos de una Factoría de Pruebas Centro de pruebas externo Proyectos de Pruebas Interlocución a través del cliente Ciclo de vida iterativo – incremental Entregar código fuente Entornos altamente emulables Pruebas 80% caja negra La Calidad del Software y los Procesos de Testing Factoría de Pruebas – Funcionalidad Aseguramiento de la Calidad Gestión de Pruebas Seguridad Help Desk Gestión de Clientes Gestión de la configuración SW La Calidad del Software y los Procesos de Testing Factoría de Pruebas – Operativa La Calidad del Software y los Procesos de Testing Factoría de Pruebas – Perfil del Proveedor Experiencia probada en: Trabajar (“testear”) en el entorno de negocio del Cliente Trabajar en formato Factoría de Pruebas, con todas sus implicaciones ⌧ ⌧ ⌧ ⌧ Comunicación Gestión del proceso Gestión de la Infraestructura Formación Alcance de su experiencia Tipos de Test Entornos de Test Testing basado en riesgo Experiencia en su dominio específico del negocio Empleados propios y con experiencia en testing Disponibilidad de equipamiento, infraestructura, herramientas Flexibilidad y adaptabilidad Niveles de servicio ofrecidos La Calidad del Software y los Procesos de Testing Factoría de Pruebas – Composición del Equipo La Calidad del Software y los Procesos de Testing Factorías de Pruebas focalizadas en el cliente Equipo base + recursos bajo demanda Diferentes acercamientos Focalizados en tipo de testing ⌧ Web Testing, Load and Performance testing, Localización Focalizados en herramientas Focalizados en Tecnologías ⌧ Web, .Net, Java, Cliente/Servidor, Mainframe Mayores ventajas hacia nuestros clientes en términos de: Competencias técnicas Reutilización de infraestructuras, test wares... Retención de conocimiento Optimización de los procesos La Calidad del Software y los Procesos de Testing Factoría de Pruebas – Que ha funcionado con los clientes Desafíos iniciales Justificación de costos iniciales para el cliente Falta de sinergia a través de diferentes áreas de negocio del cliente Sin certeza de por donde empezar y como proceder Conflictos entre estandarización del proceso y el ahorro del costo a través del outsourcing Como los superamos Fase Piloto/Pruebas de concepto (área de bajo riesgo) Establecimiento de un modelo compartido de servicios de testing, recursos del cliente y del proveedor trabajando muy cerca Se comienza en pequeño, llevando un área cada vez al modelo de Factoría de Pruebas. ⌧Opción A: Se comienza con una evaluación, a través de las diferentes áreas para analizar y recomendar estandarización de procesos ⌧Opción B: Un área o aplicación en concreto, en base a las prioridades existentes Se comienza a incrementar la carga de trabajo/proyectos/áreas a medida que la confianza va creciendo La Calidad del Software y los Procesos de Testing Factoría de Pruebas – Flexibilidad bajo demanda Mejorar el uso de los recursos internos optimizando los periodos de sobrecarga Introducir su producto en el mercado mas rápido Arranque inmediato Absorber los retrasos y cambios repetitivos La Calidad del Software y los Procesos de Testing Factoría de Pruebas – SLA: Acuerdo de Nivel de Servicio FASE DE ANALISIS DISEÑO Y CONSTRUCCIÓN Criticidad 1 2 Indicador Valor Objetivo =0% requisitos no incorporados en la solución =100% ≤3 iteraciones >90% =10% requisitos no incorporados en la solución =100% ≤3 iteraciones >90% FASE DE PRUEBAS Criticidad 1 2 Indicador Valor Objetivo ≤20% sobre el total de pruebas en el plan de pruebas >90% ≤3 iteraciones >90% ≤40% sobre el total de pruebas en el plan de pruebas >90% ≤2 iteraciones >90% FASE DE IMPLANTACIÓN/PASO A PRODUCCIÓN Criticidad 1 2 Indicador Valor Objetivo ≤10% nº de componentes instalados respecto a la planificación >90% ≤2 iteraciones >90% ≤20% nº de componentes instalados respecto a la planificación >90% ≤2 iteraciones >90% La Calidad del Software y los Procesos de Testing Factoría de Pruebas – Conclusiones Las Factorías de Pruebas son un concepto focalizado en el outsourcing estratégico del testing Las Factorías de Pruebas centradas en el cliente pueden ofrecer significativos beneficios ya que están enfocados a mejorar continuamente en base a la experiencia y el conocimiento El valor del negocio del test outsourcing puede ser medido y mejorado a través de un programa de métricas consensuado La Calidad del Software y los Procesos de Testing Ruegos y Preguntas Validación Funcional Pruebas de Carga Test de caja negra basados en los requisitos y las especificaciones funcionales Conjunto de pruebas dinámicas que aseguran el comportamiento del sistema en determinados escenarios Automatización del Servicio Test de Usabilidad Automatización de las actividades de SQA: análisis de código, ejecución de casos, reporte de defectos, gestión de pruebas Validación del diseño y facilidad de uso de los interfaces de usuario, siguiendo los estándares de mercado Revisión de la seguridad del código Revisión de la seguridad de las aplicaciones, principalmente web ante las vulnerabilidades conocidas Inspección documental Validación, verificación y trazabilidad de requisitos y documentación funcional Test de Caja Blanca Revisión del diseño y codificación de las distintas capas: Interfaz de usuario, datos e integración La Calidad del Software y los Procesos de Testing Gracias