El testing es un proceso intelectual desafiante y por ende requiere, entre otras cosas, de una dosis importante de creatividad. Esto se practica, se entrena.
Un tester que entrena sus habilidades e incorpora nuevas se diferencia claramente del resto. Todos en el equipo podríamos testear sin problemas, pero aquel con una mayor actitud y predisposición para responder ante las diferentes situación, incluso aquellas triviales, es quién llevará la delantera.
Pensamiento Lateral
En vacaciones, leí "El Pensamiento Lateral" de Edward De Bono. El libro es muy recomendable, y tiene una serie de técnicas que ayudan a "practicar" el pensamiento lateral además de incluir algunos ejercicios para tal fin.
De Bono afirma que usar pensamiento lateral no implica dejar de lado el pensamiento lógico/vertical, sino que es un complemento de este y que, además, nos ayuda a romper con ciertos modelos preestablecidos. Algo así como "barajar y dar de nuevo" nuestros modelos mentales. El pensamiento lateral de aplica en una fase anterior a la acción del pensamiento vertical. Se usa para reestructurar los enfoques de una situación determinada y las ideas que sirven de base. Luego estos enfoques e ideas pueden ser desarrolladas por el pensamiento vertical.
Me pregunto si será posible aplicar alguna de estas técnicas para entrenar y fortalecer las skills de los testers, por ejemplo, en algún Dojo de Testing. Lo voy a intentar exponiendo técnicas y profundizando sobre este enfoque en sucesivas entradas. Espero que resulte algo novedoso e interesante como para experimentarlo.
Testing Lateral
Llamemos a este enfoque: "Testing Lateral". Se trata, principalmente, de aplicar técnicas del pensamiento lateral para mejorar las habilidades de los testers. Este enfoque no intenta cubrir todo el rango de posibles habilidades que se consideren ya que para las habilidades que son técnicas o muy especializadas, se requiere de la aplicación de conocimientos adquiridos.
El testing lateral intenta trabajar sobre algunos aspectos soft de los tester, es decir, aquellas habilidades que hacen a su mindset, a su creatividad y su meticulosidad (algunas otras habilidades las detallamos aquí). Esto les permitirá considerar diferentes enfoques al momento de resolver cualquier situación que se presente.
Como notarán, el enfoque es simple. De ahora en más, sólo resta conocer algunas técnicas y ejercicios para ver si funciona. Las siguientes son algunas de las técnicas (un subconjunto de las propuestas por De Bono es su libro) que vamos a probar bajo este enfoque, siempre tratando de poner en práctica las habilidades de los testers:
1. Revisión de supuestos
2. Alternativas
3. Ejercicios de dibujo
4. Fraccionamiento o división
5. Inversión
6. Brainstorming
7. Analogías
Técnica 1: Revisar Supuestos
La primer técnica que vamos a ver es la revisión de supuestos. Es simple y está relacionado a la manera en la que axiomatizamos los conceptos y las ideas. Dar algo por supuesto (supuestos lógicos que se aceptan por válidos en sí mismos), nos ayuda a construir un modelo sobre esto sin preocuparnos, muchas veces, por las cuestiones triviales. Además, la aceptación de que una idea sea correcta, no garantiza su corrección.
Práctica para el dojo:
Ejercicio: El siguiente problema ilustra muy bien el factor restrictivo de los supuestos. Consiste en unir los nueves puntos mediante sólo 4 líneas rectas pero sin levantar el lápiz del papel.
Ayuda: El factor que bloquea la solución es que las líneas rectas han de unir los puntos sin exceder los límites de los propios puntos. Los invito a que intenten resolver el ejercicio.
En testing, hacer muchas suposiciones puede ser peligroso. Estas pueden estar asociadas, por ejemplo, a la estandarización de ciertos sistemas. La interface de una aplicación es la misma para todas las ventanas, funciona de la misma manera que el resto y, por ende, lo hace bien. En conclusión, la revisión intenta demostrar que cualquier supuesto puede ser sometido a examen. Claramente, esta técnica no intenta revisar todos los supuestos posibles. No sería aplicable y rentable para ningún proyecto. Sin embargo, para un tester, tener este pensamiento crítico es fundamental. Como ya dijo Jerry Weinberg: "A tester is someone who knows that things could be different".