Pruebas exploratorias

Las pruebas exploratorias son procesos que tienen mucho que ver con las pruebas ad hoc o las pruebas intuitivas, pero a diferencia de ellas, se basa en unas tareas específicas asociadas a unos objetivos concretos

Podría decirse que el testing exploratorio se completa con cinco elementos: un reporte de errores sobre un producto, realizado por un tester en particular en un tiempo determinado y con una misión a cumplir.

 

Las fases principales de las pruebas exploratorias son:

  • Exploración del producto: para conocer a fondo cómo cumplir con los requisitos hay que registrar los objetivos, las funciones, los tipos de datos que se procesan y las zonas de inestabilidad del producto. Para llevar a cabo esta exploración, hay que contar con la compresión general de la tecnología, la información sobre el producto y la cantidad de tiempo en el que se va a realizar el trabajo.
  • Diseño de pruebas: crear diferentes estrategias para observar y evaluar por completo el producto.
  • Ejecución de pruebas: explorar el producto para poder formular una hipótesis de cómo funciona y cuáles pueden ser sus puntos débiles.
  • Heurística: reglas generales que ayudarán a cómo probar correctamente el producto.
  • Resultados revisables: cuando se finalicen las pruebas exploratorias, el tester debe ser capaz de explicar cualquier aspecto del programa y mostrar cómo se cumplen los requisitos indicados en el procedimiento. De manera que, todos los requisitos hayan sido probados al menos una vez durante todo el proceso de trabajo.

Para conocer más el producto y facilitar el trabajo se determinarán distintas funciones a realizar durante las pruebas exploratorias:

  • Funciones primarias: se asocian con la funcionalidad del producto y son esenciales para un objetivo en concreto. Un conjunto de funciones pueden constituir una función primaria, por ejemplo, las distintas funciones de una barra de herramientas no se consideran primarias, pero toda la barra de herramientas si puede considerarse una función primaria.
  • Funciones contributivas: colaboran con la funcionalidad del producto, pero no se consideran primarias.

Con el fin de asegurar la funcionalidad y la estabilidad del producto, tenemos que comprobar que su función es coherente con su finalidad, independientemente de la exactitud de su producción, y comprobando que ningún comportamiento perjudique su uso normal, provocando un crash o una pérdida de datos. Para conseguirlo, debemos tener una noción similar a la de un usuario normal, que puede ser una persona con conocimientos básicos de la aplicación o con experiencia previa en su función.

Además, debemos asegurarnos que se cubre el 100% de las funciones del producto, para ello se dedicará aproximadamente el 80% del tiempo en probar las funciones primarias de la aplicación, el 10% en las funciones contributivas y el resto en las posibles áreas de inestabilidad que podrían provocarse.

Para realizar las pruebas exploratorias, normalmente la fuente principal es la propia intuición, aunque algunas veces tendremos acceso a documentación del producto, que nos ayudará a guiarnos en nuestro trabajo, y otras veces podremos ayudarnos de nuestra propia experiencia en productos relacionados. También nos ayudarán los oráculos, que nos permitirán determinar si un comportamiento observado es o no correcto, estos elementos son importantes ya que controlan los tipos de problema que pueden observarse e informan de ellos. De manera general, un oráculo se forma a partir de unas reglas de consistencia:

  • Consistencia con propósito
  • Consistencia dentro del producto
  • Consistencia de la historia
  • Consistencias con los productos comparables

De esta forma, podremos determinar si la función se ajusta de manera aparente a su propósito, si es consistente con el resto de funciones comparables del producto, si es coherente con el comportamiento pasado y, por último, si es comparable con las funciones similares en productos similares.

Esta es la manera más completa para realizar las pruebas exploratorias pero, en la mayoría de las ocasiones, nuestra propia intuición será la mejor compañera para llevarlas a cabo.

Exploratory software testing is a style of software testing that emphasizes the personal freedom and responsibility of the individual tester to continually optimize the value of her work.

(Las pruebas de software exploratorio son un estilo de pruebas de software que enfatizan la libertad personal y la responsabilidad del tester individual para optimizar continuamente el valor de su trabajo.)

Cem Kaner

¿Conoces Globe Testing?

¡Descubre como mejorar tu software!