Hay algunas definiciones del testing exploratorio que quiero compartir con ustedes, ya que distintos autores definen el tema de distintas formas:
Es un estilo de trabajar con testing de software que enfatiza la libertad personal y la responsabilidad del tester como individuo para que de forma
continua se optimice el valor de su trabajo, al tratar tanto tareas tales como el aprendizaje, diseño de pruebas y su ejecución, como actividades que se apoyan mutuamente y que se ejecutan en paralelo a lo largo de un proyecto.
- Cem Kaner
Por otro lado, tenemos otras definiciones provistas por James Bach más populares, como las siguientes:
El Testing Exploratorio consiste en el aprendizaje, diseño y ejecución de pruebas de forma simultánea.
Esa misma definición se amplía para proveer un poco más de detalles de la siguiente manera:
El Testing Exploratorio es cualquier testing que se realiza hasta el punto en el que el tester controla activamente el diseño de las pruebas, mientras que esas pruebas se ejecutan y posteriormente se hace uso de la información obtenida mientras se prueba, para diseñar nuevas y mejores pruebas.
**
El testing exploratorio presenta una estructura externa que es sencilla de describir, en la que durante un lapso de tiempo un tester –o equipo de testers– interactúa con un producto para cumplir con el objetivo de una misión, para posteriormente presentar y reportar los resultados que el resto de los actores del proyecto utilizarán para tomar decisiones a conciencia. Por lo tanto, con una misión se describe qué es lo que pretende probar del producto o sistema
bajo pruebas, cuáles serán los tipos de incidentes que se buscarán, lo cual ayudará a dar forma a una estrategia, y por último aunque no por ello menos importante, los riesgos involucrados. La misión la puede diseñar el tester, el equipo de testing, o también, ser asignada por el líder de testing.
**
Los elementos básicos que componen una misión son: tiempo, objetivos y reportes. Tal como lo mencionábamos anteriormente, dicha aparente simplicidad permite desplegar una amplia gama de posibilidades para la aplicación del testing exploratorio.
**
Es recomendable, al trabajar con este tipo de estrategia, tomar notas sobre todo lo que se hizo y lo que se observa que sucede durante el transcurso de nuestras pruebas. También cabe destacar que este tipo de enfoque puede aplicarse en cualquier situación donde no sea evidente cuál es la próxima prueba que se debe ejecutar contra un sistema, o cuando se requiere obtener una rápida retroalimentación ya sea de un producto o funcionalidad, o si queremos aprender y aislar un defecto en particular, entre otros posibles escenarios.
**
Compartimos con ustedes una definición del concepto de “exploración”, que expresa lo siguiente:
“Por lo tanto, para calificar como exploración un viaje tenía que ser creíble, tenía que involucrar privaciones y riesgos, y tenía que incluir la novedad del
descubrimiento. Después de eso, al igual que el cricket, era algo un tanto complejo de explicar para el no iniciado. Pero un elemento era absolutamente
vital; verdaderamente era lo que exactamente distinguía la era de la exploración de eras previas de descubrimiento, las cuales necesitaban de la adopción de la palabra ‘exploración´. Era, sencillamente, una reverencia por la ciencia
**
Inicialmente un explorador que es enviado a construir un mapa, aunque tenga una idea “macro” desconoce el territorio, por lo que comienza a explorar, tomar apuntes de sus hallazgos y conclusiones, mejorando el aspecto del mapa. Un explorador debe de ir alerta a lo que pueda surgir, debe caminar teniendo su mente abierta y receptiva.
**
Para elaborar mapas más precisos es importante tomar notas de lo que se va descubriendo, ya sea en forma esquemática o en forma tabulada. Los exploradores tenían a su disposición una variedad de herramientas que los ayudaban en su actividad, por ejemplo:
Ahora que hemos visto algunas definiciones, veamos algunas propiedades que además, describen dónde nos puede aportar valor como práctica:
Veremos ahora algunos de los distintos sabores, por así llamarlos, que puede tener el testing exploratorio, extraídos del libro “Exploratory Software Testing” de James Whittaker. Luego vamos a profundizar en una sección aparte en uno de esos sabores, en el conocido como “testing exploratorio basado en sesiones” ya que es el que le brinda una mejor estructura, facilidad de implementación, de aprendizaje, responsabilidad, y es más simple presentar resultados a los actores involucrados.
<h1>AD-HOC TESTING</h1>De acuerdo al diccionario de la Real Academia Española, se define “ad-hoc” como:
En nuestra línea de trabajo, el término se emplea en el sentido de buscar una solución particular para un problema, sin hacer un esfuerzo de abstracción y sistematización de la respuesta. James Whittaker presenta el estilo “ad-hoc” o “libre” como una exploración adhoc de las funcionalidades de una aplicación, sin seguir un orden determinado ni preocuparse por cuáles fueron o no cubiertas. No se aplican reglas ni patrones para hacer las pruebas, simplemente se prueba.
**
Este estilo podría aplicarse ante la necesidad de tener que realizar una prueba de humo rápida, con la que podamos ver si hay o no caídas mayores, o bien para tener un primer contacto con la aplicación antes de pasar a una exploración con técnicas más sofisticadas.
**
Por lo tanto, como estilo de exploración no requiere una gran preparación, por lo cual no debería despertar muchas expectativas. El resultado de aplicar el estilo libre consiste solamente del reporte de los incidentes detectados, y se debe tener en cuenta, que los caminos transitados y los incidentes no evidenciados se pierden.
Si combinamos la experiencia con la percepción de un buen tester exploratorio y con las técnicas conocidas para detectar incidentes (como por ejemplo valores límite y particiones de equivalencia) entonces las pruebas que se ejecuten contra un sistema se ven potenciadas. Para poder hacer un uso efectivo de este modelo, es importante contar con un repertorio de técnicas que sea lo más amplio posible, sumado a ideas, creatividad y experiencias de prueba anteriores. Por esto se dice que esta técnica de testing exploratorio está basada en estrategias, ya que el éxito de la misma dependerá de la aplicación de técnicas existentes de derivación de casos de prueba, pero al momento de estar ejecutándolas.
**
Creemos que en el proceso natural de formación de un tester sucede que en determinado momento al enfrentar un nuevo sistema uno diseña pruebas basándose en alguna estrategia existente, pero lo hace quizá en forma inconsciente. Quizá pensamos en los valores límites, o en partición de equivalencias, pero sin formalizarlo, sino que se piensan las fronteras que hay entre las clases de equivalencia y se seleccionan valores de esas fronteras en forma natural. O si detectamos que hay distintos comportamientos en base al estado de la aplicación, quizá queremos ejecutar cada uno de los estados, aplicando así inconscientemente una técnica basada en máquinas de estado.
**
Claramente, es necesaria mucha experiencia en técnicas de diseño como para poder aplicar esta estrategia. Seguramente, al llegar a ese nivel de manejo de las técnicas, esta técnica de testing exploratorio basado en estrategias sea lo que hacemos generalmente al interactuar con cualquier nueva aplicación, y seguramente la utilizamos mezclada con cualquiera del resto de las técnicas exploratorias.
Las sesiones de testing exploratorio, surgieron como parte de un trabajo conjunto entre James y Jonathan Bach, para reinventar la administración del testing exploratorio. A partir de sus observaciones, pudieron notar que los testers hacían varias cosas que no estaban relacionadas al testing. Por lo tanto, con el propósito de registrar esas actividades, era necesario contar con una manera de distinguirlas del resto, y así, surgieron las sesiones.
**
En la práctica de testing exploratorio, una sesión es la unidad básica de trabajo de testing. Lo que se conoce como una sesión es un esfuerzo de testing dentro de un bloque de tiempo ininterrumpido, revisable y con una misión. Decir que tenga una misión quiere decir que cada sesión tendrá un objetivo, o sea, lo que estemos probando o los problemas que estemos buscando. Por ininterrumpida queremos decir que no tendrá interrupciones significativas, sin correos electrónicos, reuniones, llamadas telefónicas, etc. Por último, que sea revisable quiere decir que contará con un reporte, algo que llamaremos la hoja de la sesión, que proveerá información sobre lo ocurrido durante la sesión.
**
De esta forma las sesiones son debidamente documentadas y facilitan la gestión de las pruebas y la medición de la cobertura.
**
Cada misión se organiza en sesiones relativamente cortas, con duraciones que van desde los 45, 90 y 120 minutos de duración. Esto es principalmente con el propósito de fijar la atención en la prueba en forma sostenida, y que ningún aspecto nos pase desapercibido, ya sea por falta de atención o porque nuestra atención queda presa de lo que ya conocemos y perdemos capacidad de asombro. Cada sesión tiene una única misión u objetivo definido.
**
Estas sesiones son establecidas por el tester o le son asignadas por el líder de testing. Periódicamente, se revisan las anotaciones de las sesiones, ya que puede suceder que surjan nuevas misiones, y que alguna haya quedado obsoleta. También pueden identificarse riesgos que no fueron considerados originalmente y desestimarse otros en el proceso. El cubrimiento se mide por la cantidad de sesiones por misión, las áreas exploradas por las sesiones, su duración y los incidentes detectados. Como se puede apreciar, el testing exploratorio cuenta con una estructura, exige una preparación importante y requiere de una planificación.
**
La estructura con la que cuenta el testing exploratorio, y particularmente trabajando con sesiones, no es procedural sino sistemática puesto que se vale de varias fuentes para su planificación, como para la actualización de su planificación. También, recordemos que como lo definiera Cem Kaner, éste acercamiento al testing enfatiza la responsabilidad y la libertad del tester, por lo tanto, el tester exploratorio debe poder construir una historia que brinde esencia a su trabajo.
Proporciona una explicación detallada y clara sobre el testing exploratorio. Me gusta cómo se presentan diferentes definiciones y se resaltan las propiedades y beneficios de esta práctica, iq test free. Es evidente que el autor tiene un buen conocimiento del tema y transmite información valiosa.