Pruebas Exploratorias


Pruebas exploratorias


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.

De hecho, Según Cem Kaner “El testing exploratorio es 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”.

Cem Kaner

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 los tests 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.





¿Por qué usarlo?

  • Apoyo al proceso de programación detectando riesgos adicionales que no vienen recogidos en el diseño de pruebas.
  • Para evaluar el producto final, encontrar insuficiencias y áreas de mejora, para obtener más funcionalidades.
  • Sencillo y se puede hacer en momentos tempranos del sprint, herramienta natural.
  • Es dinámico y se obtiene un feedback rápido para los entregables del sprint.



Funciones a realizar durante las pruebas exploratorias



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.


Fases principales de las pruebas exploratorias


1. 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.


2. Diseño de pruebas: crear diferentes estrategias para observar y evaluar por completo el producto.


3. 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.


4. Heurística: reglas generales que ayudarán a cómo probar correctamente el producto.


5. 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.





Técnicas dentro del proceso de pruebas exploratorias


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

1. 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.

2. 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.

3. 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.

4. 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.

5. 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. 


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 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.

  • 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.

  • 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.




Conclusión


En conclusión, es claro que se debe de tener muy claro que lo que es el testing exploratorio y como requiere su planificación, limitación de tiempo y objetivo, es importante también documentar de la mejor manera todos los tipos de pruebas que se van y se han realizado. Si no se realizan las pruebas no obtendremos resultados. Algo a destacar es que debemos de lograr obtener la satisfacción del cliente en cualquier proyecto, y considerar siempre que el proyecto haya logrado completarse de la mejor manera como, totalmente exitoso. Respecto a lo que son las pruebas exploratorias es claro que se necesitara un equipo de testing, este debe estar formado por personas con grandes capacidades, las cuales ayuden a superar obstáculos tales como el desconocimiento de la aplicación a probar de algunos de sus miembros y la corta duración del proyecto. Además, es notorio como realizar este tipo de pruebas conlleva mucho trabajo y esfuerzo por parte del grupo de trabajo, pero ciertamente si se logra desarrollar las diferentes actividades de la mejor manera, siempre teniendo en cuenta no gastar demasiado tiempo en preparar o explicarlas, lo que nos puede atrasar y ser posibles atascos para el proyecto. Si logramos evitar lo mencionado anteriormente, es muy probable que los resultados nos lleven a que los errores sean menos comunes y más fáciles de detectar.



Referencias Bibliográficas


C. Kaner, J. Falk, H. Nguyen, “Testing Computer Software, 2nd Edition”, ISBN: 0471358460, Editorial Wiley, 1999.


atSistemas. ( 10 de abril de 2017). Slideshare. Obtenido de Pruebas Exploratorias en Entornos Ágiles: https://www.slideshare.net/atSistemas/pruebas-exploratorias-en-entornos-giles

Bermúdez, Y. D. (s.f.). Revista TINO. Obtenido de LAS PRUEBAS EXPLORATORIAS O TESTING EXPLORATORIO: https://revista.jovenclub.cu/las-pruebas-exploratorias-o-testing-exploratorio/

Microsof. (julio de 2012). msdn microsof. Obtenido de Pruebas exploratorias del software: https://msdn.microsoft.com/es-es/library/jj620911(v=vs.120).aspx

NA. (s.f.). Globe. Obtenido de Pruebas exploratorias: https://www.globetesting.com/2012/03/pruebas-exploratorias/

Pérez B, P. A. (2007). Obtenido de Testing exploratorio en la práctica : http://www.ces.com.uy/documentos/JIISIC-2007.pdf









Comentarios

Entradas populares de este blog

Revisiones Estáticas - IEEE-1028: revisiones de software & Modelos de desarrollo

Plan de Pruebas Y Plantilla de Plan de Pruebas

Fracasos del Software