Pruebas exploratorias: una guía práctica para mejorar la calidad de software
Durante mucho tiempo, las pruebas de software se consideraban un ejercicio tedioso y repetitivo, basado en la ejecución sistemática de casos de prueba predefinidos. Sin embargo, en la actualidad estas pruebas han evolucionado hacia una actividad dinámica que consta de distintas técnicas y enfoques, y la experiencia del tester juega un papel fundamental en la selección y aplicación de las mismas.
¿Qué son las pruebas exploratorias?
Las pruebas exploratorias son una de las actividades primordiales del Agile Testing. En GBH, donde se ha desarrollado una cultura ágil, las pruebas exploratorias son parte fundamental del día a día del equipo de Calidad de Software. Estas pruebas nos ayudan a obtener productos de mayor calidad en menor tiempo.
Cem Kaner, profesor de Ingeniería de Software en el Florida Institute of Technology y uno de los principales referentes en pruebas de software, con más de cinco libros publicados acerca del tema, define las pruebas exploratorias como “un estilo de testing que enfatiza la libertad personal y la responsabilidad del tester para optimizar continuamente la calidad de su trabajo, tratando el aprendizaje a través de las pruebas, el diseño de las pruebas, la ejecución de las pruebas y la interpretación del resultado de las pruebas como actividades que se apoyan mutuamente y que se ejecutan en paralelo a lo largo del proyecto.”
En resumen, las pruebas exploratorias se realizan con el objetivo de recolectar información del software bajo prueba, diseñar y ejecutar las pruebas de manera simultánea.
Las pruebas exploratorias ofrecen diversos beneficios, entre los que destacan:
- Determinar las funciones principales del sistema bajo prueba.
- Aplicar el conocimiento existente sobre el sistema bajo prueba para detectar defectos.
- Encontrar áreas de inestabilidad potencial: ¿qué funciones tienen más probabilidades de fallar, ser poco confiables o tener efectos secundarios negativos?
Ahora observemos algunas de las características principales de este enfoque de pruebas:
- No se utilizan casos de pruebas prediseñados, este enfoque rompe con la manera tradicional de hacer pruebas de software.
- Es un proceso de prueba interactivo, el tester puede llegar a conocer el software de manera profunda.
- Se usa la información obtenida para diseñar pruebas nuevas y mejores, este enfoque es considerado por los expertos como la mejor manera de encontrar puntos de mejora en los sistemas de software.
- No se debe confundir con error-guessing o ad-hoc testing.
Para que este enfoque sea eficaz, los testers que realizan las pruebas exploratorias deben tener habilidades para escuchar, leer, pensar e informar de manera rigurosa y efectiva.
Las pruebas exploratorias son muy beneficiosas, ya que ayudan a evitar caer en “La paradoja del pesticida”. Esta paradoja explica que, si siempre se ejecutan los mismos casos de prueba, eventualmente el tester no encontrará más defectos. Según una encuesta a nuestro equipo interno de calidad, las pruebas exploratorias son, según la mayoría, el tipo de pruebas que ayuda a encontrar más defectos.
Aunque estas pruebas son muy beneficiosas, no siempre son el mejor enfoque para probar un software. Son aplicables cuando:
- Hay poca o ninguna especificación disponible.
- Hay que investigar un defecto en particular.
- Hay que investigar un riesgo particular: se evalúa la necesidad de pruebas con documentación.
- Se quiere diversificar las pruebas.
A contrario de lo que se piensa, las pruebas exploratorias deben realizarse con un alcance definido y de manera organizada. Esto las diferencia del error-guessing y las pruebas ad-hoc.
Antes de realizar pruebas exploratorias se deben definir los siguientes aspectos:
- Lo que se va a probar (alcance)
- Lo que no se va a probar (fuera de alcance)
- Por qué se va a probar (preguntas)
- Cómo se va a probar (lluvia de ideas)
- Problemas esperados
¿Cuáles son las técnicas para realizar pruebas exploratorias?
Existen distintas técnicas para realizar pruebas exploratorias, cada una con sus propios objetivos y enfoque. Algunas de las técnicas más comunes son:
- Guía turística: se prueba la función destacada de la aplicación.
- Explorando la historia de la ciudad: se prueban las características antiguas de una aplicación.
- El recorrido del dinero: se prueban las características críticas en referencia al cliente.
- Ola de crímenes: se ingresan datos no válidos y se prueban escenarios negativos.
- Recorrido por el callejón: se prueban las funciones menos utilizadas de la aplicación.
- Recorrido aburrido: pase el tiempo mínimo en cada pantalla de la aplicación, complete los campos mínimos y tome el camino más corto.
¿Hay herramientas para pruebas exploratorias?
Para optimizar el seguimiento y la gestión de las pruebas exploratorias, existen reportes predefinidos como el Test Charter. Además, una amplia gama de herramientas facilita la planificación y ejecución de estas pruebas:
- Exploratory Testing Chrome Extension
- Testmo
- Rapise
- Bug Magnet
- Test & Feedback
- Defect Scribe
- qTest
- JIRA Capture
- Rapid reporter
- Session tester
Con estas herramientas y recursos disponibles, podrás crear pruebas exploratorias efectivas y que impulsen la calidad de su producto y satisfagan las necesidades de sus clientes.
En GBH, estamos a la vanguardia en la utilización de pruebas exploratorias. Contamos con un equipo de testers experimentados y las últimas herramientas para garantizar productos digitales de la más alta calidad.
¿Listo para llevar sus pruebas de software al siguiente nivel?