El enfoque de pruebas de software basadas en riesgos (risk-based testing o RBT) sigue los principios de la gestión de riesgos, pero en un contexto de pruebas. Vamos a hacer una pequeña introducción de la gestión de riesgos para luego entrar en las pruebas de software basadas en riesgos.

Gestión de riesgos

La gestión de riesgos (Risk Management) consiste en la identificación, evaluación, mitigación, seguimiento e informe de las posibles amenazas y vulnerabilidades para el correcto desempeño de una organización. Esta gestión es especialmente importante dentro de la gestión de la calidad, cuya finalidad es la optimización de un producto, servicio y/o empresa.

La gestión de riesgos es un proceso continuo, ya que en cualquier momento pueden aparecer nuevos riesgos, por lo que las empresas suelen establecer reuniones periódicas para realizar dicha gestión. El análisis de riesgos es una gran herramienta con la que se pueden prevenir y reducir fallos, acortar los procesos, reducir costes, para conseguir ser más eficiente y en definitiva mejorar la calidad del producto, servicio y/o empresa.

Etapas del proceso de gestión de riesgos

1.Identificación del riesgo

En esta etapa se elabora un listado con todos los problemas que se encuentran y pueden surgir. Para poder identificarlos correctamente durante esta etapa el jefe o gestor encargado de la calidad, se reúne con los responsables de las distintas áreas y también se tiene en cuenta la opinión de los clientes. Los riesgos pueden ser operativos, técnicos o empresariales.

2.Análisis del impacto del riesgo

Se cuantifican y se priorizan los riesgos. Se determina la probabilidad de que ocurra ese riesgo y también el impacto que causaría, asignando unos valores: alto-bajo-medio. En función de los valores dados, se atenderán antes los riesgos con probabilidad e impacto altos.

Matriz análisis riesgosLa probabilidad de aparición del riesgo puede deberse a diferentes motivos:

  • Mala comprensión de la función por parte del equipo de desarrollo del producto.
  • Arquitectura y diseño inadecuados.
  • Tiempo insuficiente para el diseño.
  • Incompetencia del equipo.
  • Recursos inadecuados: personas, herramientas y tecnología.

 

El impacto del riesgo y por consiguiente la perdida que produzca, puede afectar a:

  • Impacto en los costes, con las consiguientes pérdidas.
  • Impacto en el negocio, con la consiguiente pérdida de negocio o de cuota de mercado, procedimientos judiciales o pérdida de licencia.
  • Impacto en la calidad, con el resultado de un producto de calidad inferior o incompetente.
  • Mala experiencia del usuario, que provoca insatisfacción y pérdida de clientes.

 

3.Mitigación del riesgo

Se busca la solución y se aplica. En esta etapa se involucra tanto al departamento de calidad como al departamento en el que se encuentra el riesgo. El responsable de calidad propone una solución y el departamento correspondiente confirma si es viable esa propuesta., ya que puede variar de un proyecto a otro, de una persona a otra, y de una empresa a otra.

4.Seguimiento

Una vez aplicada la solución se hace un seguimiento constante para ver si se ha aplicado correctamente o si han surgido nuevos errores. Dicho seguimiento puede realizarlo el equipo de calidad, el departamento afectado o ambos.

5.Informe

Por último, se elabora un informe sobre el desempeño de la solución aplicada, si se ha solucionado el riesgo o por el contrario se han generado nuevos. Si no se ha dado con la solución correcta o el resultado no es el esperado, se vuelve al comienzo.

Risk-based testing o RBT

Gestión de proyectos

En los proyectos de desarrollo de software, existen unos objetivos comunes, entre los que se incluyen: la calidad, el alcance del proyecto, el control de costes y cumplir los plazos de entrega o lanzamiento. Estos objetivos pueden verse afectados por riesgos no contemplados que aumenten, por ejemplo, los costes del proyecto, se modifique el alcance, etc. y que afecten de forma negativa a la calidad esperada en el software.

Es aquí donde este enfoque cobra importancia, cuando se produce alguna desviación que afecte a estos objetivos.

Con las pruebas basadas en riesgos, lo que se pretende es reducir el nivel de riesgo, al ser identificados con antelación y posibilita la implantación de soluciones o medidas de mitigación, desde fases muy tempranas del proyecto. Las pruebas también sirven para comprender, descubrir y proporcionar información valiosa que puede ayudar a crear mejores productos.

Las pruebas basadas en riesgos ofrecen:

  • Más atención al cliente: la RBT ayudará a probar más a fondo lo que más preocupa a los clientes, destacando lo que es más importante para la empresa.
  • Menor probabilidad e impacto de los riesgos negativos: al centrar las pruebas en los riesgos negativos más elevados, disminuye la probabilidad de pasar por alto defectos importantes y, por tanto, la probabilidad asignada al riesgo disminuye al igual que su nivel de riesgo correspondiente. Por otra parte, como las pruebas también proporcionan información al equipo, incluidos sus desarrolladores, el impacto de un determinado riesgo también puede disminuir, ya que la característica que se está trabajando se puede hacer de manera diferente o mejor.
  • Mayor confianza: RBT puede ayudar a encontrar primero los defectos más importantes, centrando las pruebas en los riesgos más elevados (o áreas/características de riesgo), garantizando que los elementos importantes se prueben exhaustivamente y que se encuentren antes; de este modo, el producto y sus elementos más importantes (por ejemplo, las características) pueden lanzarse con un alto grado de confianza, al tiempo que se garantiza que cumplen los objetivos de calidad previstos.
  • Optimización de los esfuerzos y costes de control de calidad: RBT puede responder a preguntas como: ¿Qué debemos probar?, ¿Por dónde empezar?, ¿Cuándo podemos dejar de probar?, ¿Podemos reducir de algún modo el esfuerzo de las pruebas?, ¿Cómo y a qué «coste»?, Si disponemos de más tiempo para las pruebas, ¿Cuál es la mejor manera de aprovecharlo?. La RBT permite definir el alcance de las pruebas, centrándose en lo que es relevante e identificando qué pruebas deben ejecutarse y su prioridad de ejecución, teniendo en cuenta las limitaciones de tiempo y recursos; la cantidad total de casos de prueba puede reducirse. RBT permite elegir (en función de los riesgos) las pruebas de regresión y proporciona algunas pistas para seleccionar las pruebas automatizadas.
  • Aumenta el nivel de riesgo de los riesgos positivos: si se identifica una oportunidad, RBT puede utilizarse para realizar pruebas exhaustivas y aprovecharla. Utilizar las pruebas como un bucle de retroalimentación constructiva, conociendo las oportunidades y su relevancia relativa, puede aumentar la probabilidad, el impacto y el nivel de riesgo general de las oportunidades.
  • Tomar mejores decisiones en función del riesgo: a veces puede ser necesario enviar el producto antes, por limitaciones de tiempo o presupuesto: RBT puede darte visibilidad de los riesgos, para tomar una decisión conociendo el riesgo. RBT puede utilizarse para superar los riesgos que bloquean la «aceptación» (es decir, la aceptación de la versión por parte del cliente). La RBT explica implícitamente por qué se han ejecutado unas pruebas en lugar de otras, lo que facilita la comunicación con otras partes interesadas y evita discusiones sobre por qué no se han ejecutado algunas pruebas RBT a distintos niveles.

 

Por tanto, los beneficios de este enfoque son: 

  • Uso más eficiente y optimizado de los recursos de pruebas y de control de calidad. Mediante la asignación de los recursos clave hacia áreas de alto riesgo.
  • Facilita el trabajo de QA, pruebas, diseño y desarrollo de pruebas, y actividades de preparación de pruebas por priorización.
  • Permite al equipo de control de calidad probar primero las áreas de alto riesgo y que el producto «falle rápido» y se corrija rápido.
  • Aportar claridad en la ‘cobertura de la prueba’ y el ‘alcance de la prueba’ a todas las partes interesadas.
  • Permite al equipo decidir con suficiente antelación sobre la aplicación de la forma más eficaz de mitigación de los riesgos del producto.
  • Permite al equipo tomar las medidas adecuadas, ya sea para mitigar o para planificar la contingencia o aplicar la solución para superar el fallo o reducir su impacto.
  • Minimiza el riesgo residual en la entrega de software.
  • Ayuda a mejorar la experiencia del cliente y a que éste quede satisfecho.

 

CONCLUSIÓN

Las pruebas basadas en riesgos son una herramienta eficaz para que el equipo de control de calidad oriente a las partes interesadas del proyecto en función de los riesgos de este, ayudando en la identificación continua de riesgos y su resolución, y ayuda a lograr el objetivo final del grupo que es dar una calidad total al producto final.

Si quieres saber más sobre cómo implantar calidad, pruebas, desarrollo de software, gestión de proyectos, estrategia tecnológica … ¡visita nuestro blog!