enero 24, 2014

"Mientras el desarrollo de software genera código, el testing genera conocimientos"

Esta desafiante frase nos debe poner a pensar en la actuación que tenemos colectivamente cuando desarrollamos software, ya que analizada con cuidado nos está diciendo que el Testing es una actividad puramente cerebral, por lo tanto exclusiva de seres humanos 

La declaración inicial no pretende hacer separaciones entre testers y desarrolladores, sino que por lo contrario, pretende reunirlos en la idea de que cada cosa cumple con un propósito y el propósito del Testing es generar conocimientos, muchas veces en la forma de defectos, errores y/o fallas detectadas, otras veces en el descubrimiento de riesgos, tantas otras al encontrar "huecos" en las ideas, conceptos, requerimientos, modelos y desarrollos.
  
Los nuevos paradigmas (quizás hoy representados en Agile) están en constante evolución para facilitarnos este tipo de concepción de ideas y la implementación depende en toda medida de nosotros mismos, de la inteligencia y esfuerzo que le pongamos al conjunto.  

Hoy más que nunca la premisa del trabajo colaborativo nos obliga a ser hiper-reflexivos y  re-pensar la actividad del testing como el verdadero motor que provoca evolución. Por lo tanto conviene entender que no es una actividad pura y exclusiva de especialista (los mal llamados testers en antiguos paradigmas), sino de toda persona que "ponga materia gris" en el 'estudio', 'experimentación', 'modelado', 'cuestionamiento', 'inferencia', etc. con el propósito de generar conocimientos de lo que estamos desarrollando.  


Como es sabido, existirá un gran volumen de automatizaciones en los diferentes momentos del desarrollo de nuestro software, a lo que yo prefiero darle la denominación de "conjunto de activos del testing". Considero conveniente y necesario hacer diferenciaciones plenas entre el momento en testeamos, lo que hacemos cuando diseñamos, modelamos, exploramos, cuestionamos, comprobamos, etc, y lo que hacemos cuando corremos un conjunto automático de activos del testing (checking). 

Esto hay que remarcarlo cada día más por cuanto por supuesto, no faltan aquellos modelos de trabajo donde se usa al ser humano como un "semi-robot", poniéndolo a ejecutar un conjunto de activos del testing (test cases) para obtener resultados empíricos del tipo 'Pass/Fail'. 

En conclusión, hay ciertas destrezas que solo las podremos desplegar los seres humanos y por supuesto, ejecutarlas con eficiencia requiere entrenamiento en el contexto que se intentan desplegar las destrezas, por lo tanto el Testing no lo hará cualquier persona sino alguien calificado (no necesariamente como tester típico), pero quien lo haga, si cumple el objetivo específico de descubrimiento de lo que aún falta por conocerse sobre el software en cuestiónestará necesariamente haciendo testing

No hay comentarios: