Relytest, tesis sobre testing exploratorio

En el 2016 y 2017 estuve colaborando con una tesis de grado de ORT, en la que investigamos sobre testing exploratorio. Los alumnos que trabajaron fueron Gabriela Sánchez y Miguel Sánchez, siendo Martin Solari el tutor académico. Mi rol fue el de “cliente”, plantenado las necesidades e ideas de investigación, con tal de cubrir cierto gap existente hoy en la industria al realizar testing con enfoque exploratorio.

La metodología y herramienta desarrolladas las llamamos “RelyTest”.

Publicaciones relacionadas

El primer post contando sobre esto fue en junio del 2016, en el blog que teníamos en aquel entonces en Abstracta.

La propuesta del trabajo fue publicada por ORT también aquí, de donde copié la descripción que pongo más abajo.

Una vez logrado el primer prototipo, lo dejamos documentado en este post.

El código fuente está disponible acá: https://github.com/abstracta/relytest

Este prototipo lo pusimos en evaluación en este meetup de TestingUy.

La tesis quedó finalmente publicada aquí, donde quedó una explicación teórica de lo que es el testing exploratorio, su categorización, desafíos y beneficios, y a su vez, quedó documentada la metodología propuesta (que la resumo al final de este post).

Otro resultado muy bueno de esta tesis, fue una serie de entrevistas realizadas a distintos testers, donde aprendimos sobre distintas formas en las que se hace testing exploratorio en la comunidad. Acá quedaron reportadas:

Descripción de la investigación

El testing exploratorio se trata de una manera de realizar las pruebas de software que permite ejecutarlas mientras se aprende sobre el producto, sin contar con un guion preestablecido. El inconveniente que presenta es que carece de una metodología estándar para poner en práctica, lo cual dificulta la organización y distribución del trabajo. A esto se agrega la dificultad para el seguimiento y transmisión del estado de avance de las pruebas realizadas a sus clientes.

Se desarrolla una metodología de testing exploratorio de software que permita establecer un marco de trabajo para la aplicación de pruebas exploratorias. Estas surgen como resultado de la ejecución de una exhaustiva investigación práctica y del relevamiento de las experiencias de diferentes actores con distintos niveles de conocimientos técnicos. Entre los que destacamos los roles de: clientes, gerentes y testers.

Al final del proceso logramos establecer una metodología marco standard para la aplicación de testing exploratorio y desarrollamos una herramienta de software que permite la implantación de la metodología y su validación, la cual fue desarrollada para ser utilizada por testers y gerentes.

Abstracta es la empresa cliente del proyecto, se trata de una empresa que ofrece servicios para garantizar la calidad del software de sus clientes.  Actualmente, Abstracta busca mejorar sus prácticas y optimizar los procesos de testing exploratorio.

En este sentido, entendemos que la solución propuesta permite estandarizar el proceso, facilita la obtención de métricas que permiten planificar, realizar el seguimiento necesario y elaborar los reportes finales. A su vez, permite una rápida transferencia del conocimiento adquirido durante la ejecución de un proyecto entre los miembros del equipo y los nuevos miembros que se incorporen al equipo.

Los aspectos mencionados anteriormente permiten afirmar que la metodología y su herramienta aseguran un mayor grado de confianza por parte de los clientes que solicitan servicios de testing a Abstracta.

Finalmente, la herramienta fue publicada mediante una licencia open source y la metodología validada por testers y gerentes en contextos reales del cliente.

Metodología de testing exploratorio

En resumen, se propuso una metodología donde se describen roles, actividades, entregables y métricas para evaluar y mejorar el proceso. A continuación pego una breve parte tomada de la tesis, y algunas imágenes que muestran estos aspectos propuestos. Para ver detalles, referirse a la tesis publicada acá.

Roles

Actividades

El kick off consiste en toda la preparación del proyecto, recopilación de información, estimaciones preliminares, determinación de ambientes de prueba a alto nivel, lectura de documentación relevante. Luego comienza el ciclo iterativo que consta de tres etapas: planificación, ejecución y retrospectiva. La planificación del ciclo tiene lugar al comienzo de cada iteración, luego se da la ejecución del testing exploratorio propiamente dicho. Finalmente, tiene lugar el análisis o retrospectiva del proceso, en el que se ajusta, re-planifica la próxima iteración, mejorando el ciclo de esta manera. En la figura se muestran las principales actividades involucradas en cada una de las etapas descritas anteriormente. Dentro del ciclo iterativo podemos apreciar un segundo nivel de agrupamiento ordenado en forma cronológica

Entregables

Métricas

 

Leave a Reply

Your email address will not be published. Required fields are marked *