Home

viernes, 8 de abril de 2011

Proyecto de Innovación Automatización de las Pruebas

La Red DBAccess avanza rumbo a su certificación CMMI Nivel 5 con la implementación de los proyectos de mejoras que tienen por objeto optimizar el desempeño de los procesos en la Red.
En esta oportunidad mencionamos la automatización de pruebas con la cual se busca mejorar en forma cuantitativa el rendimiento de la “Ejecución de Pruebas”, como proceso clave para comprobar la calidad de los productos que se van a entregar a los clientes.

Esta mejora se orienta fundamentalmente a incrementar la “Cobertura de Pruebas”, la cual consiste en la cantidad de casos de pruebas que efectivamente se ejecutan, con respecto al total de casos planificados a ejecutar, en un periodo de tiempo dado.

Esta historia comenzó por comprender el comportamiento cuantitativo de nuestro proceso de pruebas, con la finalidad de determinar si los resultados obtenidos a la fecha, eran mejorables. Bajo esta premisa se evaluaron las siguientes métricas:

  • Cobertura de Pruebas
  • Casos de Pruebas con Estado: Pasó
  • Casos de Pruebas con Estado: Falló
  • % Issues sobre Casos de Prueba
Cuando revisamos los valores de comportamiento de estas métricas detectamos algunos proyectos que en sus ciclos de pruebas presentaban desviaciones importantes, y con esto realizamos un análisis causal que permitió determinar que dichas desviaciones, podían ser corregidas automatizando el proceso o parte de él.

A continuación los tableros de control del proceso de pruebas utilizados en este análisis, en los cuales se puede observar el comportamiento histórico del proceso en base a la métrica cobertura de pruebas, para el primer ciclo de pruebas, así como, del segundo ciclo en adelante.




Como puede observarse, para el caso específico de la Cobertura de Pruebas, el modelo de rendimiento establecido en base a la data histórica recogida hasta octubre 2010, presenta en términos de sus valores un rango de variabilidad muy amplio comprendido entre el 21% y el 100%. Esto quiere decir que así como se ejecuta el 21% de los casos de pruebas planificados, también se ejecuta el 50% o 70% o el 100%, siendo esto un abanico muy grande de opciones con el consecuente resultado en el reporte de fallas. Nótese que no es igual ejecutar el 21% de los casos planificados que el 100%, y más aún si el rango de posibilidades es así de grande, declarando que no se tiene un estándar de validación verdaderamente confiable, pareciera que se termina probando lo que se puede y no lo que se debe, quedando la duda sobre la cobertura ideal que debe respetarse.

De aquí surgió la idea de disminuir la variabilidad de la métrica, estableciendo en principio un objetivo de calidad/rendimiento a alcanzar, en el que la cobertura de pruebas en el tiempo, debe ser superior al 60% en los ciclos uno de pruebas y superior al 41%, del ciclo dos en adelante, tal como se observa en las siguientes gráficas, garantizando con ello la ejecución de un mayor número de casos de pruebas que den cuenta de la calidad del producto de software.

Comportamiento del proceso visto desde la cobertura de pruebas para el ciclo 1 de pruebas y el nuevo objetivo de calidad/rendimiento:


Comportamiento del proceso de pruebas visto desde la cobertura de pruebas para los ciclos 2 en adelante y el nuevo objetivo de calidad/rendimiento:


De esta forma se busca que el proceso tenga un comportamiento estable en función de una variabilidad más estrecha para la cobertura de pruebas, disminuyendo la brecha actual ubicada entre un 21% y un 100%, para optimizarla en un intervalo comprendido entre el 60% y el 100% para el primer ciclo de pruebas, y en más del 41% a partir del segundo ciclo de pruebas.

Para ello se planteó la implementación de un Framework de automatización de pruebas como un intento por facilitar la ejecución del mayor número posible de casos de prueba planificados, dando origen al proyecto de innovación de pruebas, denominado Automatización de Pruebas.

Este proyecto se ha estado llevando a cabo en los últimos meses y actualmente se está desplegando a nivel general en la Red. Para ello los especialistas de PandoraTest diseñan e implementan scripts por medio de herramientas de automatización, específicamente Selenium, apoyando en la comprobación de docenas de casos de pruebas que se pueden ejecutar total o parcialmente de forma automatizada y aumentando así, el número de escenarios de pruebas que validan funcionalidades críticas de las aplicaciones.

En este momento la nueva práctica se está incorporando en algunos proyectos, dando paso a una nueva manera de hacer las cosas y recolectando al mismo tiempo, datos provenientes de su ejecución.

Como una segunda parte de la historia, una vez recolectados los datos suficientes y necesarios, se procederá a realizar el análisis estadístico pertinente del proceso, con el objeto de aceptar o rechazar la hipótesis de la optimización del rendimiento del proceso, a través de la implantación de una herramienta de automatización.

Entre tanto el proceso ha sido mejorado en la medida en que se han automatizado las actividades asociadas a la ejecución de pruebas y quedamos a la espera, de la comprobación estadística de la optimización del mismo.

De igual manera felicitamos al equipo de PandoraTest por todo el trabajo realizado, por el empeño que le han puesto para mejorar y optimizar su proceso, así como todo el ánimo y el esfuerzo que han invertido en esta iniciativa de innovación.

Hasta una nueva edición. Continuará…

Autor: Yadixa Martínez