lunes, 21 de abril de 2014

Descripcion de los Procesos de Gestion de Pruebas


Como mencioné previamente la gestión del proceso de prueba se basa en cinco procesos fundamentales, y cada uno de ellos está compuesto por actividades (definidas en la sección anterior) que definen lo que debe hacerse. En esta sección presento una descripción de alto nivel de los procesos de gestión; esta se hace de manera lineal, sin embargo estos funcionan de manera iterativa y sus actividades se superponen constantemente durante la ejecución del proyecto, por lo tanto este tipo descripción tiene el objetivo de servir como guía para implementarlos, pero su operación y funcionamiento está condicionado por la operación de las actividades técnicas que gestionan, las cuales se ejecutan de manera iterativa (cíclica). 

  • Proceso de Inicio del Proyecto de Prueba


Propongo un proceso de inicio de prueba formado por tres actividades principales, la definición del alcance, definición de los participantes de la prueba (“stakeholders”) y comunicar el alcance. 
Planteo la definición del alcance de prueba como una tarea conjunta entre el líder del proyecto de desarrollo y el líder de prueba, la realización de esta actividad desencadena la ejecución de las otras dos. Esta actividad se integra dentro de la formulación del plan del proyecto de desarrollo (el cuál no se contempla dentro del alcance de esta investigación). A partir de allí se define el proyecto de prueba. Para definir el alcance del proyecto de prueba se toma como entrada el plan del proyecto de desarrollo, a partir de él se define brevemente el o los niveles de prueba a aplicar, las técnicas a usar y la dimensión del sistema; con esta información se definen los participantes en el proceso de prueba, se comunica el alcance del proyecto y se da paso a la elaboración del plan de prueba. 

  • Proceso de Planificación del Proyecto de Prueba

Este proceso usa como entradas el plan de del proyecto de desarrollo y el documento que define el alcance de prueba junto con los participantes, el cual pasa a formar parte del plan. El plan de pruebas contiene los siguientes elementos: asignación de recursos, definición de hitos, identificación del  sistema a probar, identificación de la especificación de requisitos, definición del escenario de prueba y la definición del nivel de prueba defino las actividades y pasos para construir el plan, las cuales describo a continuación.



    • Identificar el sistema bajo prueba. En esta actividad se dimensiona el sistema y se establecen los tipos de técnica de prueba a aplicar, es decir se define el enfoque de prueba. También se analiza cuales son las partes más críticas del sistema (establecer riesgos), que luego serán probadas. 
    • Definir los niveles de prueba. Respecto de los niveles el plan debe definir al menos un nivel. Sin embargo podrían definirse varios niveles de prueba, en cuyo caso podría definirse un plan para cada nivel. 
    • Identificar la especificación de requisitos. Una especificación puede contener variados y diversos tipos de requisitos, a partir de los cuales deberán identificarse aquellos de mayor prioridad o criticidad para la aplicación y para el cliente.
    • Definir o estimar las métricas y los casos de prueba necesarios para probar el sistema.
    • Con el fin de apoyar la asignación de esfuerzo y recursos sugiero que se haga una primera estimación de los casos de prueba necesarios para probar el sistema; la cual será depurada en la fase de diseño de pruebas, descrita en el capítulo anterior. Durante esta actividad también debe definirse algunas de las reglas más importantes para guiar la ejecución del  proceso (criterios de control). Así por ejemplo se definiría el grado de cobertura de prueba, los criterios de fallo, las métricas o indicadores para determinar sise avanza o no al siguiente nivel de prueba, o si debe repetirse de nuevo la prueba. 
    • Definir y secuenciar las actividades. Consisteen definir detalladamente cada fase de prueba (“Work Breakdown Structure”), los productos, los hitos, asignar el responsable, las características del artefacto que debe generar cada fase como resultado y el orden de ejecución.
    •  Asignación de los recursos (personal, infraestructura, técnicos, etc.). Se asignan los recursos necesarios para construir el entorno de prueba, se determinan los elementos de la plataforma de despliegue y se definen las habilidades técnicas del personal requerido, es decir se caracterizan los roles. 
    • Descripción inicial del escenario(s) deprueba, que consiste en indicar la especificación de requisitos, el sistema bajo prueba y el entorno en el que serán probados.
    • Adicionalmente determinar las áreas geográficas de aplicación si fuese necesario, por ejemplo en modelos distribuidos es necesario especificar las responsabilidades de cada lugar y el orden en que estos deberían realizar las pruebas. 
    • Este proceso está estrechamente relacionado con la fase de requisitos de prueba que es parte del ciclo de vida de actividades técnicas de prueba definido en el capítulo cinco; la cual tiene un mayor énfasis en las actividades de gestión más que en las técnicas.
  • Ejecución de los Procesos Técnicos de Prueba


La Figura 72, muestro los flujos y las actividades que conforman el proceso de ejecución de los procesos técnicos de prueba. Este proceso tiene como objetivo elegir y dirigir el equipo del proyecto de pruebas, comunicar la información (dirigir los flujos de información) y, dirigir la ejecución de las fases del ciclo de vidade pruebas. Este proceso es transversal a las áreas de: actividades técnicas de prueba, resultados de prueba y activos de prueba; adicionalmente se apoya en los procesos de seguimiento & control y finalización de las pruebas, que describo en el siguiente apartado. 
Elegir equipo del proyecto de prueba.Esta actividad usa como entrada la información suministrada por el plan de pruebas respecto de los roles asignados, las actividades y los  responsables de cada una de ellas. Esta debe ser una de las primeras actividades en realizarse durante el proyecto, debería ejecutarse antes de finalizar el proceso de planificación. Para elegir el equipo se tienen en cuenta las habilidades requeridas por los roles definidos en el plan de prueba.
Capacitar el equipo del proyecto, asignar actividades. Una vez elegido el equipo, este debe recibir capacitación respecto del proceso y la metodología a usar; adicionalmente como parte de las actividades de dirección se le comunican las metas y el plan de trabajo; se asignan las actividades a realizar y se evalúa su cumplimiento. 
Definir esquema de acceso a la información y Distribuir información. Estas dos actividades están estrechamente relacionadas; la primera define la forma como se debe distribuir la información; y la segunda (Distribuir información) tiene la responsabilidad de dirigir los flujos de información (técnicos y de gestión) a los participantes del proyecto. Para ello se basa en el modelo de flujos de información que se muestra en la Figura 68, la cual define como fluye la información entre los diferentes artefactos, actividades y roles que forman parte del proyecto de pruebas.Esta actividad se basa en un esquema de acceso que permite entregar la información que necesita cada participante y por nivel y la distribución de la información de acuerdo con ese esquema.  Para dirigir la ejecución de las fases del ciclo de vida de pruebas propongo cinco actividades: verificar la instalación y configuración de los elementos del entorno de prueba, ejecutar el plan de prueba, calcular métricas, verificar final de la fase y el producto y actualizar el plan de prueba; las cuales se basan en la información suministrada por el plan de pruebas y el plan detallado de las actividades técnicas de prueba contenido en él. Verificar la instalación y configuración de los elementos del entorno de prueba, esta consiste en verificar y garantizar que todos los elementos técnicos de apoyo a las actividades de prueba, estén instalados y configurados de acuerdo con las especificaciones del plan y con los requisitos técnicos para ejercitar el sistema. Esta actividad es clave en las pruebas funcionales de sistema, dado que dentro el entorno de prueba se deberá incluir todos los elementos de la plataforma de despliegue necesarios para ejercitar el sistema, con lo cual a través de él se podrá probar el despliegue y tomar decisiones sobre la fase de implantación. Esta actividad se basa en dos elementos el plan de prueba y el escenario de prueba. 
    •  El plan de prueba proporciona la información sobre los recursos de que se dispone para configurar el entorno, adicionalmente sirve como información base para establecer una lista de verificación. 
    • El escenario define las características que debe tener el entorno en cuanto a infraestructura, tales como: las herramientas que deben instalarse, la estructura de directorios que se debe crear, la definición de la estructura del repositorio para guardar los diferentes artefactos, y define exactamente dónde encontrar los elementos necesarios durante el despliegue dela prueba. El objetivo es obtener la  plataforma de despliegue de las pruebas. Propongo usar secuencias de comandos (“scripts”) para configurar y ejecutarlos elementos del entorno durante el despliegue de la prueba. 
    • En concreto el entorno de prueba usa los recursos de infraestructura asignados por el plan de prueba; respecto de los elementos necesarios y sus características, en cuanto a configuración las define el escenario de pruebas, estas se implementan por las secuencias de comandos de prueba que actúan sobre los elementos de la plataforma de despliegue.
    • Ejecutar el plan de pruebas. Se usa la planificación detalladade las actividades técnicas contenidas en el plan de pruebas con el propósito de garantizar que cada actividad cuente con los recursos necesarios para realizarse y que se inicie de acuerdo con la programación indicada por el plan, es decir ejecutar el plan de prueba. 
    • Calcular las métricas. Esta es una actividad clave, que tiene como objetivo  proporcionar la información para apoyar la toma de decisiones y soportar la ejecución del plan. 
    • Verificar final de la fase y producto. Esta actividad es responsable de garantizar que se hayan obtenido los productos al final de cada fase, de informar el momento exacto de terminación de la fase. Es una actividad que complementa a la actividad “ejecutar el plan de pruebas”. 
    • Actualizar el plan. Propongo esta actividad con el fin de introducir los cambios en la planificación, cuando fuese necesario. Por ejemplo esto podría ocurrir como resultado de un evento en la ejecución de la prueba, el cual puede estar relacionado con la asignación adicional de recursos, o con lanecesidad de efectuar más pruebas a un elemento, o con el cambio en la configuración del entorno de pruebas entre otras.
    • Los elementos que participan en las anteriores actividades, son aquellos que forman parte del modelo de ejecución de actividades técnicas (definido en el capítulo cuatro, ver Figura 51); para los cuales indico su nivel de participación así: 
    • El plan de prueba. Aporta la información sobre la duración de las fases, los hitos, las características de los productos y las métricas que deberían calcularse.
    • Escenario de prueba.Establece la información sobre los elementos mínimos para la ejecución de la prueba, junto con el plan y el caso de prueba constituyen los elementos directores de esta actividad. 
    •  El plan de ejecución. Es un elemento implementado por secuencias de comandos, tal como lo defino previamente en este trabajo (ver capítulo cuatro), a partir de él se pueden establecer puntos de observación en cualquier momento del proceso, extraer métricas para apoyar actividades como la toma de decisiones durante la ejecución de acuerdo con las métricas establecidas, incluso variar el orden de ejecución o suspender la ejecución.
    • El caso de prueba. Es un elemento esencial para la ejecución del proceso. La actividad de ejecución de las actividades técnicas se centra en verificar que todos los casos de prueba relacionados con el escenario que se desplegará, estén listos para ser ejecutados. Para verificar esta regla básica del proceso de pruebas, se establece un punto de observación, que extrae la información y la compara con la información contenida en el plan y con la descrita por el escenario. Con base en ello se decide respecto de las fases de diseño, especificación e implementación de los casos de prueba.
    • La especificación y los datos de prueba. Estos dos elementos están estrechamente relacionados con el caso de prueba, a partir de ellos se establecen métricas (indicadores) para evaluar aspectos como la cobertura y que tan suficientemente se ha probado el sistema.
    • El registro de prueba. Este elemento aporta todala información registrada durante el proceso de ejecución de la prueba. La cual es útil para determinar el progreso del proceso, en términos de ejecución, de validez y cobertura entre otros.
  • El proceso de Control y Seguimiento de las Pruebas
Este proceso está estrechamente relacionado con el proceso de ejecución de los procesos técnicos de prueba, descrito en la sección anterior; de quien recibe como entrada los valores y métricas con el fin de tomar decisiones sobre la ejecución, de acuerdo con lo establecido en el plan de prueba respecto de la programación, la calidad y los riesgos.
Es transversal a las áreas de ejecución de actividades de prueba, de resultados y de activos. Propongo cinco actividades de gestión para implementar este proceso tal como lo muestro en la Figura 69, las cuales defino a continuación. 
    • El seguimiento de la ejecución de las actividades del proceso de prueba. Para llevar a cabo esta actividad defino dos entradas: la programación detallada de las actividades contenida en el plan (hitos) y las medidas de progreso del proceso de prueba emitido por los procesos de ejecución. A partir de ellos se establece si la actividad o fase de prueba se ha realizado en el tiempo previsto y si se han obtenido los resultados planificados. En el caso de existir alguna diferencia se comunica una novedad o directiva de control a los procesos de ejecución, para tratar con ella, es decir iniciar acciones correctivas.
    • Control de calidad. En el proceso de pruebas defino la calidad como el logro de los niveles de cobertura establecidos en el plan, la detección de un rango de fallos (mínimo - máximo) y la verificación de que los fallos previamente detectados hayan sido corregidos en una iteración posterior. Para lograrlo propongo como mecanismo de control de calidad el cálculo y la extracción de la información relevante de los resultados (cobertura de código, de requisitos, fallos, e incidencias) durante el progreso del proceso de prueba, para ello me baso en la actividad definir puntos de observación. La información obtenida se compara con los umbrales de calidad establecidos y se toman las decisiones respecto de validar el proceso de prueba, repetir o no una prueba, parar el proceso, o determinar el cierre del mismo. Para ello el proceso se apoya en la actividad enviar novedad de control al proceso de ejecución. 
    • Informar del avance del proyecto. Esta actividad tiene por objetivo presentar el informe detallado de los resultados del proceso de prueba por cada prueba realizada y/o por iteración. Para ello toma como entrada los resultados generados por la ejecución de los casos de prueba, junto con los indicadores (métricas) generados durante el proceso. Con esta información se elaboran informes tales como: total de fallos detectados, número de casos de prueba ejecutados, número de requisitos probados, cobertura de código, cobertura de requisitos, incidencias abiertas y/o cerradas, grado de cumplimiento del plan, etc.
  • El proceso de Cierre del Proyecto de Prueba
El objetivo de este proceso es evaluar el proceso de prueba en general, es decir realizar un balance general, con el fin de establecerla efectividad real del proceso, obtener  mejoras en futuras campañas de prueba y de analizar la información de las pruebas de manera global, para entregar información útil y recomendaciones, que ayuden a mejorar el trabajo del equipo de desarrollo y a disminuir el esfuerzo en la fase de implantación del sistema. Como muestro en la Figura 74, el flujo de este proceso está dirigido por una serie de decisiones que se toman de acuerdo con la información generada durante la ejecución de las pruebas. 
El proceso de cierre del proyecto de prueba se inicia como resultado de una novedad de control, la cual establece a través del seguimiento que hace de la ejecución, que la totalidad de actividades planificadas se hayan realizado a través de todas las iteraciones de prueba previstas. Este proceso se basa en la trazabilidad de los activos generados, de los cuales toman la información del proceso y le aplica los criterios de aceptación de las pruebas. Estos criterios son los valores respecto de cobertura, porcentaje de errores, densidad de fallos, número de casos de prueba ejecutados, etc., los cuales son establecidos por el líder del equipo de desarrollo, el líder de prueba y el cliente. Para su implementación defino siete actividades: 
    • Verificar entrega de producto. Esta actividad verifica principalmente dos aspectos: que todos los casos de prueba programados se hayan ejecutado y que se hayan enviado los informes respectivos a los participantes. En caso contrario informar al líder de prueba y suspender el cierre. 
    • Verificar el cierre de incidencias. Establecer el número total de incidencias abiertas como resultado del proceso, cuáles de ellas fueron aceptadas y cuáles no y de las aceptadas verificar que se hayan cerrado todas, en caso contrario informar y suspender el cierre.
    • Verificar el nivel de cobertura alcanzado. Validar queel nivel de cobertura alcanzado sea al menos igual al nivel establecido en el plan de prueba. En caso negativo informar y se suspende el cierre.
    • Calcular la densidad de fallos. Elaborar un informe con el número de fallos totales, fallos por componentes y porcentajes de estos respecto del total, con ello se determina la densidad de fallos. 
    • Preparar recomendaciones. Respecto del informe de recomendaciones para el grupo de desarrollo este debería contener valores sobre indicadores como: casos de prueba ejecutados, partes del sistema probadas, cobertura de requisitos, cobertura de código, fallos descubiertos, incidencias abiertas, incidencias cerradas, densidad de fallos, recomendaciones de pruebas de regresión para aquellos componentes con más fallos detectados, incluso recomendaciones sobre capacitación al personal de desarrollo para prevenir fallos en la estructura y estilo del código. Respecto del sistema enviar restricciones de operación relacionadas con aspectos no funcionales, o informar sobre las condiciones reales operación entre otras.
    • Establecer elementos reutilizables. El objetivo es evaluar cuales de los activos del proceso (datos de prueba, casos de prueba, ficheros de secuencias de comandos, el registro de prueba, etc.) podrían usarse en pruebas de regresión o en otros proyectos similares. 
    • Evaluar el proceso. Esta actividad tiene como objetivo establecer el grado de eficiencia del proceso, considerar las buenas prácticas que pasarán a formar parte de los procesos organizativos, establecer que aspectos deben mejorarse para futuros proyectos de prueba y garantizar la permanencia y accesibilidad de la información contenida en los activos de prueba para uso posterior tanto del cliente del sistema como de la organización.

No hay comentarios:

Publicar un comentario