Pruebas exploratorias Vs. Pruebas aleatorias

En muchos de los proyectos en los que he liderado pruebas, ejecuté un gran volumen de pruebas exploratorias y recientemente uno de esos proyectos fue testeado netamente bajo pruebas del tipo exploratorio.
El grado de éxito en este proyecto fue muy importante y básicamente me permitió demostrar que esta técnica es particularmente útil en algunos contextos.

Lo primero que hice fue transferir al equipo el concepto de pruebas exploratorias y contrastarlas con las pruebas aleatorias. Así es que cuando hablo sobre pruebas aleatorias, me refiero a todas esas pruebas ejecutadas en un contexto de muy alto riesgo, sin un soporte de un marco definido, sin expectativas más que las de detectar defectos.  Una consecuencia de este proceso aleatorio, sería la imposibilidad de repetir escenarios concretos que nos permitieron detectar un fallo en particular.

En su contraparte, a las pruebas exploratorias  suelo ejecutarlas dentro de unos límites tolerables bajo una planificación estratégica del testing, con alcances delimitados, modelando los escenarios para el contexto, formalizando los ciclos y contemplando resultados esperados. De otro modo creo que promovería el caos en el Testing y lo diseminaría por todo el proceso de desarrollo. En otras palabras gusto de contar con ciclos controlados para la exploración.

Ciclos bien controlados implican análisis de los requerimientos, del entorno de ejecución para el uso final, del entorno de ejecución para pruebas preliminares a las pruebas de sistemas, del entorno de ejecución para pruebas de sistemas, para pruebas de campo (post-despliegues), conocimiento de las dependencias, de las entradas y salidas y los procesos.

No deberíamos confundir “Testing aleatorio” con “Testing exploratorio”, puesto a que lo segundo aplica cierta formalidad en la técnica, aún cuando es libre de tomar algún camino alternativo no calculado o no premeditado.

La aliatoriedad del Testing no necesariamente ampliará la cobertura de pruebas, de hecho es demasiado factible que los criterios de aseguramiento de calidad (criterios de aceptación, modos de fallos-modos de pruebas) terminen siendo extraviados al violar límites y alcances por no calcularlos de antemano. Inclusive corremos demasiado el riesgo de modificar lo que se construye, si es que no mantenemos controlado el resultado de las pruebas.

¿Debemos responder al cambio? si lo antes posible. Pero no se puede hacer con pruebas no planificadas, con aliatoriedad mandatoria. Afrontar los cambios será posible a partir de la obtención de experiencia en los sistemas que necesitamos probar y garantizar, y junto con esta experiencia obtenida crece la posibilidad de un Testing Exploratorio más conveniente que cualquier otro tipo de Testing.

La repetitividad es un elemento absolutamente necesario en las pruebas que propongo, pero no van de la mano con la construcción de los casos de pruebas formales, sino del diseño que antes expliqué y la comprensión de la evidencias de construcción y de otros cientos de elementos que deberían, primero ser llevados a un nivel de abstracción dentro del contexto de las pruebas (no la abstracción típica de los requisitos y sus análisis de sistemas) y luego ser bajados al nivel de la ejecución.

En este nivel podremos configurar los distintos contextos, ya traducidos a ciclos ejecutables (hasrdware+software+testing), donde la adaptación de las pruebas será extremadamente simple aún cuando se generan nuevas características para el mismo sistema.

En conclusión, para mi el diseño de pruebas para diferentes contextos de ejecución es posible y es preferible. Las pruebas planteadas en Casos de Pruebas no sirven salvo que hablemos de productos enormes y sin posibilidades de cambios a traves del tiempo.

Las pruebas aleatorias son sinónimo de pruebas sin planificación y sin conocimiento del impacto de los resultados, pero las Pruebas Exploratorias son el resultado del estudio y aplicación del sistema en el contexto adecuado.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s