03/01/2023

El significado de las pruebas exploratorias: qué son y cuál es su importancia

COMPARTIR EN:

  • Linkedin Logo
  • Twitter Logo
  • Facebook Logo
  • Mail Logo

En los últimos años se han planteado cuestiones relacionadas con el significado de las pruebas exploratorias, en qué consisten, su importancia y cómo se realizan.

Las pruebas exploratorias permiten a los responsables de pruebas trascender los límites conocidos con las pruebas planificadas. Se trata de pruebas utilizadas en ingeniería de software que tienen componentes prometedores en comparación con las pruebas basadas en el diseño previo de casos de prueba.

Las pruebas exploratorias abarcan, de forma simultánea, el aprendizaje del sistema, el diseño y la ejecución de las pruebas. A su vez, implican examinar el resultado y utilizarlo para realizar nuevas pruebas. Principalmente, estas pruebas se ejecutan para explorar el sistema, poner a prueba el pensamiento del tester y facilitar un enfoque pragmático y en tiempo real. Por esta razón, son ampliamente adoptadas en los modelos ágiles.

Pruebas exploratorias

¿Por qué hacer pruebas exploratorias?

¿Alguna vez te has preguntado por qué deberías realizar pruebas exploratorias? Aquí detallamos algunas razones:

  • A diferencia de las pruebas planificadas, las exploratorias se pueden realizar desde el diseño hasta su ejecución en un único proceso.
  • Si se combinan ambas estrategias, se encuentran más defectos que aplicando solo la estrategia de testing planificado. Según las estadísticas, se revelan al menos un 29% más de defectos y errores.
  • Funciona a la perfección para detectar errores complejos, que pueden ser extremadamente problemáticos de ubicar para las pruebas planificadas.

Beneficios de las pruebas exploratorias

En primer lugar, examinan y encuentran errores adicionales. Cuando se realizan pruebas con diseño previo, habituales o recurrentes, es probable que en cierto punto dejen de detectar errores o pasen por alto aquellos muy particulares, las pruebas exploratorias permiten descubrir errores y deficiencias ocultas.

Este método es rápido, ya que comprueba los resultados y los usa para diseñar las próximas pruebas. Todos los errores son descubiertos y revelados poco tiempo después de aplicar esta técnica, proporciona una rápida retroalimentación sobre el producto en general o sobre sus funcionalidades, su confiabilidad le da una ventaja sobre las demás. De forma similar, también se pueden generar nuevas ideas mientras se ejecuta una prueba, resultando en un proceso dinámico y flexible que permite incluso aislar un defecto particular o un riesgo para poder investigarlo en profundidad.

Además, permite una documentación mínima, evita el trabajo duplicado y proporciona un máximo de pruebas.

Desafíos de las pruebas exploratorias

Se dice que nada es perfecto, y en este sentido, la estrategia de pruebas exploratorias no es la excepción.

Para empezar, su aplicación exige tiempo para ser comprendida en su totalidad. Esto dejará de ser un reto cuando el tester se familiarice con ella. Pero esto no sucede de inmediato, los usuarios o testers tienden a desaprovechar su eficacia en el primer intento.

Además, la experiencia, conocimientos y habilidades del tester determinarán el éxito y efectividad de estas pruebas. En resumen, el tester debe tener experiencia, estar informado y ser muy ágil para sacarle el mayor provecho. Hay que prestar especial atención a registrar rigurosamente la documentación de todos los eventos cuando las ejecuciones de las pruebas están activas. De lo contrario, es posible que algunos eventos puedan perderse en el proceso.

Adicionalmente, las pruebas exploratorias se restringen al campo de conocimiento de quien evalúa el software, dependen únicamente de las habilidades del tester, que deben ir mejorando con la práctica para lograr ejecutar pruebas de larga duración. Este desafío se puede resolver ejecutando pruebas exploratorias en simultáneo con pruebas planificadas.

Sin embargo, estos retos no significan que estas pruebas de software sean menos prolíficas. Sus ventajas las convierten en una de las mejores y siguen siendo unas de las más utilizadas en ingeniería de software.

Ejemplos de pruebas exploratorias

Los beneficios y desafíos han sido identificados y explicados. Ahora plantearemos ejemplos de pruebas exploratorias:

Ejemplo 1: Si estuviéramos frente a un sitio web de un proveedor de servicios de peluquería con componentes como inicio de sesión, tipos de servicio, muestras de peinados, reserva de una sesión, pago, historial de cortes de pelo, asignación de estilistas, etc. Para probar si la funcionalidad de inicio de sesión está trabajando correctamente para un usuario nuevo o uno existente, navegaremos hacia la página de inicio de sesión y probaremos casos como el formato del nombre de usuario y contraseña, el número máximo de caracteres permitidos, el tipo de caracteres, etc.

Para conocer los tipos de caracteres permitidos, podemos explorar el sitio web y determinar si son alfanuméricos o una mezcla de símbolos, letras y números. Además, después de descubrir el formato, debemos anotar el mensaje que se le indica al usuario cuando se infringe la regla que rige el formato de nombre de usuario y contraseña, ya sea “nombre de usuario incorrecto”, “contraseña incorrecta” o “cuenta bloqueada”.

Dentro de esa misma ejecución de prueba, se puede  comprobar también si la funcionalidad de “Olvido de Contraseña” o “Recordar detalles de inicio de sesión” funcionan bien. Estas solo se relacionan con la funcionalidad de inicio de sesión, por lo que, sería conveniente incluirlas. Una vez que finalicemos y obtengamos nuestros resultados, se podría seguir probando otros componentes en el sitio web de peluquería.

Ejemplo 2: Otro ejemplo podría ser probar una aplicación de préstamos para garantizar que los usuarios puedan obtener préstamos después de haber llevado a cabo algunos pasos de verificación o procedimiento KYC (Know Your Customer). Para asegurarnos que la aplicación no otorgue un préstamo a un usuario que no ha sido verificado, podemos revisar cada paso de la verificación como usuario y tomar nota de cualquier mensaje de error.

Además, podemos comprobar cuáles pasos de verificación son opcionales u obligatorios, y si la aplicación aprueba usuarios que no superan el paso obligatorio de verificación. Uno de los pasos de verificación de usuario podría ser, por ejemplo, proporcionar su número de Seguridad Social (SSN, por sus siglas en inglés) de nueve dígitos, el cual ha sido integrado con la base de datos del gobierno de los EE. UU. Si el usuario ingresa un número de ocho dígitos o el SSN equivocado, la aplicación genera un mensaje de “SSN incorrecto” o “SSN incompleto”.

Podemos tomar nota de si este paso es obligatorio u opcional. Si la aplicación permite que los usuarios sigan obteniendo préstamos sin verificar su SSN, entonces estamos frente a una falla que debemos reportar.

Cómo ejecutar las pruebas exploratorias

Las pruebas exploratorias no deben ejecutarse de forma descuidada. Existen pasos específicos a seguir para lograr los mejores resultados. La forma de ejecutar las pruebas también se conoce como Ciclo SBTM (siglas en inglés de “Gestión de Pruebas Basadas en Sesiones”). El siguiente proceso es una guía paso a paso sobre cómo realizar las pruebas:

Paso 1: Inducir una categoría de errores

  • Crear una clasificación de errores categorizando las fallas o problemas comunes experimentados en proyectos anteriores. Por ejemplo, si una página se cae continuamente, hay que clasificar ese problema.
  • Examinar y revisar la raíz del problema a través de un análisis completo de causa raíz de la falla.
  • Ubicar los riesgos y formular diseños e ideas para probarlos.

Paso 2: Test Charter

  • El Test Charter consiste en saber en qué hay que centrarse, qué hay que probar y cómo probarlo.
  • Las ideas de prueba marcan el inicio de todo el proceso de prueba y dan significado a lo que es la prueba exploratoria y cómo puede utilizarse.

Paso 3: Time Box

  • La duración recomendada es de entre 45 y 90 minutos.
  • Durante este tiempo el tester no puede ser interrumpido.
  • El Time Box puede superar los 45 minutos o ser inferior a 45 minutos.
  • Este método permite a los testers observar la respuesta del sistema y obtener un resultado preciso.

Paso 4: Revisión de Resultados

  • Los resultados son comprobados y revisados detalladamente en esta sesión.
  • Los defectos se evalúan y se comprueban adecuadamente.
  • Las áreas de cobertura son analizadas y escaneadas completamente.
  • Los testers aprenden de las pruebas en base a los resultados obtenidos.

Paso 5: Reporte de pruebas y resumen

  • Se reporta y recopila el resultado de la prueba.
  • Exploración para confirmar si es necesario realizar otra prueba o no.
  • Exploración para comprobar si se han identificado todos los errores.
  • Correlacionar los resultados con el Test Charter.

Tipos de Pruebas Exploratorias

tipos de pruebas exploratorias

Se ha detallado la ejecución de las pruebas. Ahora, se especificarán los tipos de pruebas exploratorias:

Pruebas Basadas en Estrategias

Este tipo de pruebas requiere un tester que esté familiarizado con la aplicación, y que tenga, además, conocimiento de técnicas específicas, como la técnica basada en el riesgo, la técnica basada en la equivalencia, la predicción de errores, el análisis del valor límite, etc. La clave para sacar el mejor provecho de este tipo de pruebas es que el tester pueda combinar esos dos aspectos, la experiencia y un buen repertorio de técnicas .

A su vez, este tipo de pruebas resulta mejor aún cuando el tester tiene un conocimiento profundo del software.

Pruebas de Estilo Libre

Como su nombre lo indica, las pruebas de estilo libre no requieren de pasos o reglas oficiales que orienten su uso. El objetivo es probar errores particulares o autenticar varios trabajos de testers. Bajo esta modalidad, los testers pueden realizar pruebas sobre el sistema sin un formato específico o conjunto de estructuras.

A diferencia de las pruebas basadas en estrategias, las pruebas de estilo libre solo requieren ser un experto parcial para poder ejecutarlas. Además, estas pruebas pueden ser útiles cuando el tester necesita familiarizarse con la aplicación o con alguna funcionalidad en particular, o analizar defectos específicos. Aun así, el tester necesita al menos un poco de familiaridad con la aplicación para poder ejecutar estas pruebas.

Pruebas Basadas en Escenarios

Este tipo de pruebas se basa en información que proviene directamente de usuarios reales. En contraposición con el estilo libre, que se limita a cosas específicas, la razón de ser de estas pruebas es explorar y probar diversos escenarios, que son evaluados y luego se exploran para que coincidan con cualquier otro escenario posible.

Abarca desde escenarios de extremo a extremo hasta escenarios de usuarios reales y escenarios de prueba. 

Pruebas Basadas en Información Generada

Además de los tres tipos de pruebas exploratorias mencionados anteriormente, se puede decir que existe un cuarto tipo, el basado en información generada, que en cierto modo puede ser transversal a los otros. Este tipo de pruebas se basa en utilizar la información recabada en pruebas anteriores como guía para idear las próximas pruebas. Analizando resultados previos, se puede identificar, por ejemplo, porciones de código que no fueron testeadas, patrones de incidentes que requieran un análisis más profundo o distintas áreas del software que puedan probarse en base a los mismos criterios.

Cuándo no usar pruebas exploratorias

Hay ocasiones en las que las pruebas exploratorias no son las más indicadas. Algunas áreas durante la ejecución de la prueba necesitan una estrecha vigilancia, y es mejor que se haga por otros medios. A continuación, se indican las áreas en las que una prueba exploratoria no sería la opción más adecuada:

Áreas que requieren estrecha vigilancia y trabajo en equipo

Hay fases delicadas y que deben ser estrechamente vigiladas durante el proceso de testing, como ser las pruebas de regresión, las pruebas de verificación de compilación automatizadas y las pruebas de rendimiento. Aplicar pruebas exploratorias en estas áreas es redundante, ya que solo añadiría un poco de valor. No aporta ninguna información extra ni ningún impacto significativo a la calidad del trabajo realizado. Por el contrario, debilita la productividad del equipo.

Por lo tanto, en esos casos, no es recomendable utilizarlas. Una prueba regular basada en scripts podría ser más prolífica y efectiva. El hecho de no emplear pruebas exploratorias en estos casos particulares, ayuda mucho a fomentar la iniciativa de los miembros del equipo y la productividad adicional, facilitando las ideas colectivas.

Pruebas de Cumplimiento

Cuando se trata de pruebas de cumplimiento, es aconsejable no realizar pruebas exploratorias. En este ámbito, las pruebas planificadas adquieren mayor relevancia y valor. En las pruebas de cumplimiento, el tester debe atenerse a necesidades específicas como mandatos gubernamentales, listas de comprobación, certificaciones legales y otras pruebas basadas en el dominio.

Si se llevan a cabo pruebas exploratorias, es posible que no se adhieran a estas necesidades. Además, las pruebas de cumplimiento suelen requerir un flujo basado en scripts. Sin embargo, esto solo ocurre a veces. En este caso, es aconsejable adoptar pruebas ad hoc y basadas en scripts para obtener los mejores resultados.

Cuándo no se combinan con pruebas planificadas

Las pruebas exploratorias no deben utilizarse sin combinarse con pruebas planificadas. Los mejores resultados se obtienen cuando ambas pruebas se emplean simultáneamente. Aunque una prueba exploratoria puede tener ciertas ventajas sobre las pruebas planificadas, esto no significa que estas últimas deban evitarse por completo. Las primeras se consideran una mejora de las segundas, pero ambas pueden utilizarse en conjunto para obtener los mejores resultados.

Es esencial equilibrar las dos estrategias de pruebas en lugar de ceñirse a una sola. La cobertura adecuada se obtiene cuando se emplean ambas estrategias y dentro de los límites de costo y tiempo adecuados. Por ello, es fundamental evitar el uso excesivo de pruebas exploratorias o el uso de pruebas exploratorias en solitario. Por ejemplo, acompañar pruebas exploratorias con una prueba basada en scripts da mejores resultados y puede usarse en casi todos los ámbitos sin limitaciones.

Conclusión

En resumen, el objetivo de este blog es acercarte al significado de las pruebas exploratorias, su importancia, beneficios, desafíos y tipos. Las pruebas exploratorias resultan más eficientes cuando las realiza un tester experimentado y familiarizado con la aplicación. Es importante tener presente que estas pruebas no reemplazan por completo a las pruebas planificadas.  Ambos enfoques son muy utilizados y fiables para llevar adelante el proceso de pruebas de un software. Cada uno tiene sus beneficios y, al combinarse, logran una cobertura de pruebas más completa y efectiva.