Yolagny Díaz Bermúdez / yolagny.diaz@mtz.jovenclub.cu

Hace un tiempo, al leer un artículo del blog EfectoDemo relacionado con un evento realizado sobre los mitos del testing exploratorio se activó la curiosidad innata que me llevó a investigar más acerca de este tema, por lo que en esta ocasión comparto parte de la información encontrada sobre las pruebas exploratorias, conceptos, tipos, utilidad práctica, entre otras.

Mucho se ha hablado de metodologías ágiles, procesos y mecanismos que aportan herramientas a los diferentes grupos de desarrollo o desarrolladores individuales de software, pero poco sobre lo que ocurre con dichos software una vez terminados, en este punto es donde comienza el trabajo de los centros de estudios del software los cuales utilizan en disimiles ocasiones las pruebas exploratorias como forma de trabajo.

El término “testing exploratorio” fue introducido por Cem Kaner, se refiere a ejecutar las pruebas a medida que se piensa en ellas, sin gastar demasiado tiempo en preparar o explicarlas, confiando en los instintos. Este se define como el  aprendizaje, el diseño de casos de prueba y la ejecución de las pruebas en forma simultánea, es decir, es una técnica de prueba en la cual quien la efectúa controla activamente el diseño durante el proceso y utiliza la información obtenida en la exploración para diseñar nuevas y mejores pruebas.

Durante este proceso la persona que prueba es quién diseña las pruebas en la misma medida en que logra desentrañar los misterios del software que evalúa, es decir que en un momento inicial puede que el líder del grupo de establezca la misión de las pruebas exploratorias, pero él que prueba es el responsable del camino a seguir el cuál puede ir modificando durante el proceso. Debido a esta particularidad del testing o pruebas exploratorias es que se hace necesario que los “probadores” posean una mente abierta, pensamiento crítico, ser un buen observador, ideas variadas, ser curioso para poder detectar incidentes y evaluar los riesgos. Deben hacer uso de heurísticas en la producción de ideas variadas de forma que las pruebas sean lo más diversas posible y acorde con las características del producto que se está probando.

Existen diferentes técnicas dentro del proceso de pruebas exploratorias, aún cuando es posible aplicar el estilo libre a la hora de poner en realizarlas, existen otras modalidades de aplicación, por ejemplo:

– Pruebas exploratorias basada en sesiones: esta técnica originalmente llamada «Session Based Test Management» de James Bach, consiste en organizar el proceso en sesiones documentadas adecuadamente. Una sesión de prueba comprende generalmente un itinerario, que se establece a partir de la  misión y  eventualmente, algunas de las heurísticas a ser usadas. Su principal ventaja radica en que a pesar de su bajo costo relativo, permite elaborar reportes de avance, registrar el itinerario seguido, gestionar y medir el proceso. Es además, adaptable y flexible. Estas  características son especialmente importantes cuando se está haciendo pruebas independientes para un cliente. Su desventaja es que depende fuertemente de las habilidades y preparación de los probadores o evaluadores.

– Prueba funcional parcial: Se usa para testear funcionalidades individuales inmediatamente luego de implementadas, con el objetivo de decidir sobre su conformidad con los requerimientos y concepciones reales del diseño. Permite una rápida retroalimentación a los desarrolladores en etapas tempranas del ciclo de desarrollo.

– Pruebas exploratorias realizadas por usuarios: En muchas organizaciones, los usuarios exploran si las diferentes funcionalidades se adecuan a los escenarios reales de su trabajo. Estos usuarios tienen además del conocimiento del negocio, roles y responsabilidades variadas, que determinan naturalmente misiones específicas para las pruebas que desenvuelven, no es preciso simularlas.

– Pruebas de humo exploratorias: Se utiliza para tener una visión global y rápida sobre el nivel de calidad de una nueva versión de un producto, liberada para probar, en particular cuando las actualizaciones se producen periódica y frecuentemente. Se recorre la lista de funcionalidades básicas para detectar defectos o cambios en las funcionalidades. Por otra parte se recorre la lista de las correcciones para verificar que realmente se hayan realizado, así como las mejoras para verificar su comportamiento desde la perspectiva del usuario final.

– Pruebas de regresión exploratorias: Cuando existen fuertes restricciones de tiempo, recursos humanos o financieros para realizar una prueba de regresión exhaustiva, el proceso se concentra en las correcciones y mejoras desarrolladas. Se basa fuertemente en la experiencia del probador para explorar la posible introducción de nuevos defectos o el surgimiento de efectos negativos colaterales.

Ventajas de la aplicación de las pruebas exploratorias.

– No se necesitan productos formales previos (determinadas entregas documentales) para la realización del proceso de pruebas, lo que cual supone una disminución del esfuerzo realizado por el equipo de proyecto.

– Producen una mayor motivación en el equipo que realiza las pruebas, ya que no se limitan a ejecutar paso a paso casos de prueba redactados por otros y verificar que el resultado coincide con el indicado y además permite obtener un conocimiento funcional del sistema que resulta fundamental independientemente de quien redacte los planes de prueba. El probador en este caso no es un autómata que recibe casos de prueba y devuelve un listado de incidencias, sino que tiene vocación de aprender más del sistema, enriqueciendo las tareas con el conocimiento que va adquiriendo del sistema.

Inconvenientes de las pruebas exploratorias.

– El conocimiento funcional de determinados sistemas puede ser muy complejo, lo cual podría provocar que en las primeras pruebas realizadas por el equipo, determinados aspectos funcionales de importancia, que no han sido bien desarrollados, no se detecten.

– Si no se documentan de alguna manera las pruebas que se están realizando puede provocar que en el futuro sea complicado volver a repetirlas.

Posibles aplicaciones de las pruebas exploratorias.
Las pruebas exploratorias pueden ser aplicadas en cualquier situación donde no sea obvio cuál es la próxima prueba que se debe realizar. También es adecuado cuando se requiere obtener retroalimentación rápida de cierto producto o funcionalidad, se necesita aprender el producto rápidamente, se quiere investigar y aislar un defecto en particular, se quiere investigar el estado de un riesgo particular, o se quiere evaluar la necesidad de diseñar pruebas para esa área. Resulta muy útil, aunque en este tipo de prueba no es obligatorio, que los probadores tomen notas de las pruebas diseñadas y sus resultados, algo que le puede servir al cliente que solicitó el proceso para no repetirse en el futuro o repetir los casos en los que hayan existido dificultad y así disminuir el tiempo de análisis, el cuál es un factor externo de las pruebas exploratorias unido a la persona que evalúa, producto, misión y reportes.

Las pruebas exploratorias son técnicas adaptables ya que con mayor o menor efectividad se puede aplicar en la mayoría de los proyectos y además, será la única opción posible (aunque se pueda combinar con otras técnicas) en proyectos donde los requisitos o especificaciones del sistema no se hayan recogido de manera formal o no se disponga de dicha información.

También resultan válidas en sistemas de información, que por su complejidad, no requieren de un proceso formal para la realización de las pruebas, pudiéndose aplicar pruebas exploratorias a la globalidad del mismo o bien a partes concretas, dejando en este caso algunos aspectos funcionales que se puedan considerar más importantes para verificarse mediante casos de prueba específicos diseñado para ellos.

No tiene sentido desde un punto de vista práctico y económico, aplicar revisiones estrictas sobre productos que no son críticos, por ese motivo la aplicación de esta técnica (o en combinación con técnicas más formales) es entendida como un enfoque ágil para la realización de las pruebas en un doble sentido, tanto en su capacidad de adaptación ante las circunstancias reales de un sistema como en el hecho de que no se requiere invertir un esfuerzo tan importante.

Esta técnica también se aplica cuando se quiere complementar las tareas realizadas por un equipo de pruebas con las realizadas por otro independiente. El primer resultado puede tener un carácter más estricto, dejando el segundo para descubrir posibles errores no especificados en casos de prueba.

A modo de colofón se puede concluir que para obtener buenos resultados en los procesos de pruebas exploratorias (testing exploratorios como aparecen en la literatura) es necesario del desarrollo continuo de habilidades que pueden ser aprendidas por el equipo de prueba, además, no es obligatorio, pero sería muy ventajoso para los clientes y el propio equipo documentar los casos de pruebas y los resultados obtenidos de forma que puedan ser consultadas en el futuro.

Referencias

1- http://efectodemo.blogspot.com/2012/10/estuve-en-el-meetup-de-madqa-mitos-del.html

2- http://es.wikipedia.org/wiki/Exploratory_Testing

3- http://www.ces.com.uy/documentos/JIISIC-2007.pdf

4- http://blogs.msdn.com/b/anutthara/

5- http://es.wikipedia.org/wiki/Pruebas_de_software

6- http://jummp.wordpress.com/2011/05/19/desarrollo-de-software-testing-exploratorio-exploratory-testing/

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *