Exploratory Testing Chrome Extension

Objetivo de un Tester
A pesar de la percepción que muchas personas suelen tener, sobre todo desarrolladores, la labor principal de un tester no es la de romper cosas o la de lanzarse desesperadamente a la caza del bug. Muy al contrario, la misión del buen tester es la de centrarse en la mejora constante del producto. Para ello resulta vital empatizar y situarse en la piel del usuario final y tratar de interactuar con el sistema tal y como éste lo haría. Es durante este proceso cuando un tester detecta cosas que se rompen, inconsistencias, mejoras de interfaz, etc. que posteriormente reporta a los desarrolladores.

Como dice James Bach:

“Un tester no rompe el software, si no que rompe la ilusión de que el software funciona” - James Bach - (“We don’t break the software. We break illusions about the software.”)

Vamos que más bien un tester rompe la “esperanza” de que las cosas funcionan como se esperaba
Testing vs Checking
Existen básicamente dos maneras de afrontar las pruebas de usuario o finales de un sistema, las cuales son perfectamente compatibles y complementarias entre sí.

Por un lado estaría el chequeo puro, al que también se conoce como “scripted testing”. Básicamente consiste en seguir un guión elaborado previamente donde se describen una serie de pasos y el resultado esperado en cada uno de ellos. La misión del tester consistiría reproducir dicho guión, comprobar que los resultados obtenidos coinciden con los esperados y reportar aquellos puntos donde no haya coincidencias.
Este tipo de chequeos tienen especial relevancia cuando se realizan pruebas de regresión. La propia naturaleza de dichas pruebas hace que su número aumente con cada nueva release, por tanto, suele ser habitual e incluso recomendable automatizarlas siempre que sea posible.

Por otro lado estaría el testing exploratorio que es donde realmente un tester aporta valor al producto con su trabajo.
En líneas generales ésta técnica consiste en que el tester antes de comenzar la sesión exploratoria fije unos objetivos y escenarios a ejecutar y que durante la misma, sea su experiencia y el propio aprendizaje del sistema el que vaya guiando las pruebas a ejecutar. Para ello es necesario que el tester afronte la sesión con un pensamiento abierto, crítico, se cuestione todos los detalles, sea observador y utilice su experiencia previa para detectar focos de problemas.
Al finalizar la sesión se elabora un informe con todos los problemas, puntos de mejoras y dudas detectadas para su posterior evaluación.
Testing Exploratorio Web
¿Cómo afrontar el testing exploratorio web de manera eficaz?. Lápiz y papel serán tus mejores amigos. A la hora de afrontar una sesión de testing no hay nada más sencillo y efectivo que estos dos elementos. Desde la elaboración de un esquema o diagramas iniciales de pruebas hasta la anotación de todas aquellas cuestiones que vayan surgiendo durante la sesión, todo puede quedar plasmado en papel.

No obstante el uso de lápiz y papel, obviamente, tiene sus limitaciones:

  • Reporting: Una vez terminada la sesión es probable que necesitemos enviar los resultados a alguien o documentarlos electrónicamente de alguna manera.
  • Búsqueda: El papel no permite la búsqueda rápida de elementos que hayamos reportado o filtrado por categorías
  • Pantallazos: Una imagen vale más que mil palabras y no podremos realizar capturas de pantallas de sobre que necesitemos reportar
  • Refactorizar”: A la hora de diagramas o mapas mentales para fijar objetivos resulta complicado cambiar las ideas de sitio sin rehacer trabajo.

Existen multitud herramientas que pueden facilitarnos partes de este trabajo.

Para la elaboración de mapas mentales destacaría MindMup, una herramienta sencilla e intuitiva que permite la creación de mapas mentales de manera ágil e incluso colaborativa.

Para anotar las cuestiones que vayan surgiendo durante la sesión tendríamos muchísimas opciones, cada una con sus pequeños inconvenientes:
  • Notepad (++): No permite pantallazos ni filtrados de manera sencilla. Exige cambio de contexto, es decir, perder el foco de la aplicación que estamos probando.
  • Evernote / OneNote: Perdemos el foco de la aplicación que estamos probando, no se permiten categorías de anotaciones de manera nativa
  • TestNote.io: Herramienta online que permite categorizar las anotaciones de la sesión pero no capturar pantallazos. Además también perdemos el foco
Exploratory Testing Chrome Extension

Todas las opciones anteriormente mencionadas son buenas, dependiendo obviamente de las necesidades concretas y gustos personales, pero intentando atacar los inconvenientes más importantes de cada una de ellas (y del lápiz y papel también) he creado una extensión para Google Chrome centrada en sobre todo en:

  • Categorización de las anotaciones de manera nativa (bugs, ideas, preguntas y notas)
  • Capturas de pantalla sin distracciones, de manera rápida y sencilla.
  • Informe claro y manejable del resultado de la sesión.
  • Keep focused: Cualquier acción debe poder realizar sin cambiar de contexto

Al instalar la extensión aparecerá un pequeño icono en la parte superior derecha del navegador. Pulsando en él se desplegarán las diferentes categorías que podemos utilizar durante la sesión (Bug, Idea, Note, Question). Además se permite adjuntar una captura de pantalla a cada una de ellas de manera sencilla y rápida.


Otro punto importante, es que de manera totalmente transparente para el tester, el sistema captura la URL del navegador el el momento que se añade una nueva anotación. Lo cual resulta muy útil a la hora de reportar los resultados de la sesión.
En cualquier momento podremos ver, filtrar y exportar los resultados de la sesión en curso en formato CSV y HTML.




Esta extensión, de código abierto,  puede descargarse directamente del Web Store y obtener su código fuente en GitHub

Comentarios

Entradas populares de este blog

Lorem Ipsum

Distancia entre testing y equipo de desarrollo