jueves, 31 de enero de 2013

Convertirse en un tester de Clase Mundial



Este post es una traducción de un gran post hecho por Ilari Henrik Aegerter en un blog de Ebay
Es tan bueno y útil que me pareció que debía intentar traducirlo para que los testers de habla hispana también puedan leer esta interesante linea de pensamiento, que está creciendo día a día en el mundo, espero que a Ilari no le importe.

Un Tester es alguien que sabe que las cosas pueden ser diferentes.

Esa es la descripción de Jerry Weinberg de un tester de clase mundial, que nos recuerda que el Testing se trata sobre el pensamiento crítico y la imaginación. Se trata de no creer en nada en su sentido literal, pero manteniendo una mentalidad investigativa.

Testing es cuestionar a un producto con el fin de evaluarlo.

Esta definición de la actividad de Testing de software, de James Bach, incluye uno de los aspectos más importantes del Testing: descubrir información y entregarla. Software Testing trata de revelar lo desconocido.

Si la calidad significa valor para alguna persona que le importa (como Weinberg ha definido), entonces el Testing está al servicio de descubrir cualquier cosa que amenace este valor. Para proporcionar este servicio, un tester tiene que ser capaz de hacer una variedad de cosas, tales como hacer buenas preguntas, comentando sobre los requisitos, e interactuar con un producto de tal manera que produzca información que sea útil.

Mi definición de un tester de clase mundial es una persona que es capaz de descubrir rápidamente información muy relevante sobre el producto, alguien que hace el máximo uso de cualquier recurso que está disponible para él o ella, y que cuenta con el respeto de las personas involucradas en un proyecto. Es una persona en quien se puede confiar.

Por lo tanto, teniendo en cuenta estas definiciones, ¿qué habilidades y mentalidad debería invertir en convertirse en un tester de clase mundial? ¿En qué áreas necesitas ser bueno para evitar ser desacreditado como un "monkey-tester"?

Competencias Técnicas

En los niveles superiores del gerenciamiento, las pruebas de software son a menudo vistas como sólo una disciplina técnica. Creen que su eficacia como tester depende de su capacidad de escribir código que haga las pruebas por voz. Sin embargo, hay muchos aspectos de las pruebas de software que simplemente no son automatizables. Los seres humanos son increíblemente hábiles en pensar y adaptarse a la nueva información que se presenta en función del contexto, y dado que el software es un sistema de cambio constante de funciones y estados, a veces es más eficiente hacer un proceso explorativo. La automatización es todo lo contrario a eso, ya que se trata de scripts.

Sin embargo, la automatización puede liberar tiempo a los testers para hacer más exploración, que permite el descubrimiento. Cualquier cosa que sea altamente repetitiva o aburrida o que tenga que ejecutarse una y otra vez, es un buen candidato para la automatización. La automatización es muy valiosa en estas áreas.

El desarrollo de un automatización poderosa y fácil de mantener es difícil. Estoy convencido de que un desarrollador de software mediocre no es capaz de cumplir con los requisitos para ese trabajo. Si usted quiere hacer la automatización de pruebas útiles, es mejor que sea un programador excelente, además de tener otras habilidades de Testing.

Aquí hay algunas otras habilidades y modos de pensar que creo que le ayudarán:

Curiosidad de Investigación

Si usted piensa que el Testing es un mal necesario - algo para salir del camino hasta que pueda hacer algo realmente bueno - usted está en peligro de perderse problemas importantes. Testers de clase mundial están constantemente explorando las capacidades y limitaciones de sus productos, manteniendo un sano escepticismo sobre la capacidad de esos productos.

Si quiere darse un título de fantasía, piense en si mismo como un "empirista compulsivo", guiado por impulsos irresistibles para encontrar la verdad sobre lo que está pasando. Tester de primera clase significa seguir el impulso de llegar al fondo de las cosas, no darse por vencido hasta que haya experimentado suficiente valor para usted. Cuando ves a un tester rehuir de supuestos no verificados, eso es una buena señal de que toman su trabajo en serio.

Habilidades de observación

Si desea observar algo, usted tiene que notarlo primero. La observación es la capacidad de darse cuenta de detalles importantes o significativos. Al probar un producto tiene que ser capaz de observar situaciones que no son habituales.

¿Quién sería un buen maestro en el dominio de la observación? Vaya a dar un paseo con un niño de cinco años de edad, y vea qué atrapa su atención: una pequeña grieta en el pavimento, una hermosa flor en un jardín, un caracol haciendo lentamente su camino en una pared. Los niños son observadores naturales; están interesados en todo lo que sucede a su alrededor. Sus canales están abiertos y observan con alegría.

Condicionese a sí mismo para mantener sus canales abiertos. Emule el comportamiento de un niño. Entrénese en la conciencia general. Mire más de cerca. Baje la velocidad. Observe.

Habilidades de comunicación

Usted se encontrará con circunstancias en las que uno tiene que defender sus hallazgos. Usted tendrá que convencer a la gente a tomar acción, así que es mejor que sepa cómo explicar por qué sus resultados son relevantes.

Los Testers de clase mundial realmente practican describiendo sus pruebas. Ellos saben que sus explicaciones deben ir mucho más allá de "Sí, lo he probado, confía en mí." Si usted puede describir su prueba, su credibilidad como alguien que sabe lo que está haciendo crece. Una forma de mejorar es utilizar el modelo de estrategias de pruebas heurísticas cuando usted explica lo que está haciendo. O, mejor aún, a usted se le ocurrirán sus propios modelos.

Al contar su historia, recuerde que la comunicación es una calle de dos vías. Los Testers de clase mundial hacen un seguimiento a las respuestas que reciben de sus preguntas y están alertas a la nueva información que aparece en una conversación.

Habilidades de escritura y defensa de bugs

Las comunicaciones más ricas ocurren cuando usted es capaz de hablar con alguien cara a cara. Usted observa las expresiones faciales, puede reaccionar a los indicadores de confusión y los malentendidos pueden aclararse de inmediato. Esto no sucede con la escritura. El canal es más estrecho y más propenso a malentendidos. Las aclaraciones necesitan más tiempo y esfuerzo.

La defensa del Bug a menudo va de la mano con la escritura. Su capacidad para describir el problema con precisión y de manera comprensible influye en la probabilidad de que los errores correctos sean corregidos. No todos los errores reportados deben ser arreglados, pero si aquellos que mejor no se hubieran escapado a causa de una mala redacción.

Un informe de bugs es un documento convincente que necesita influir en las personas adecuadas para actuar. Libere sus informes de errores de información irrelevante y no los atraiga como un titular sensacionalista que le grita en el lector.

Es posible que desee mantener un registro de sus informes de bugs pasados. ¿Cuáles produjeron confusión? Podría haberlos escrito de otra manera? ¿Un cambio de redacción podría traducirse en una mejor comprensión?

Conocimiento del Dominio

Como tester, usted no sólo compara las especificaciones con la implementación. Hay muchas otras referencias, como las expectativas del usuario, la coherencia con otros productos similares, o la historia de su producto, que puede utilizar para identificar problemas. Conocimiento del dominio es también una de las referencias que usted puede desarrollar. Hable con sus clientes. Tenga una charla con los chicos de marketing. Pase un día con Atención al Cliente. Cuanto más conoce lo que es importante para su negocio, mejor será su juicio.

La voluntad de aprender

Usted es un trabajador del conocimiento. El conocimiento no es estático, especialmente no en el dominio técnico. El aprendizaje constante es esencial para llegar a ser mejor en lo que hace. Una situación en la que los seres humanos interactúan con el software es una situación donde el software está interactuando con los seres humanos. Es útil tratar de entender cómo ambos trabajan. Recomiendo explorar las ciencias sociales (psicología cognitiva, las teorías de interacción social, etc), así como incrementar su educación técnica.

En mi opinión, cada tester que quiere llegar a ser realmente bueno se beneficiará de la participación en los cursos excelentes de BBST (Black Box Software Testing) . Cada curso dura cuatro semanas, y usted pasará 15-25 horas cada semana con intensivos ejercicios prácticos. Puede encontrar más información sobre estos cursos en la página web de la Association for Software Testing.

Otro curso que recomiendo es RST (Rapid Software Testing), que se centra en el contexto, la exploración y pensamiento para encontrar mejores bugs. En la actualidad está impartido por James Bach, Michael Bolton y Paul Holland. Una búsqueda hábil en el buscador le llevará al lugar correcto.

Habilidades sociales

Testers que constantemente se quejan de su trabajo y lo horrible que todos los demás son, hace que mi sangre hierva. La Auto-victimización es venenosa. A veces sólo tienes que dejarlo ir. Si usted no puede hacer eso, se le percibe como un amargado. Si la gente va a tomar una cerveza la noche del viernes,usted no será invitado. Imagínese lo que eso influye en la voluntad de las personas en colaborar con usted.

Humor

El humor ayuda. Entre muchas otras cosas, ayuda a mantener la cordura. Como tester, usted a menudo vive en un ambiente estresante. Sonreír y reír reduce los efectos dañinos de las hormonas del estrés. Le ayuda a mantenerse enfocado en lo que quieres hacer: Testing.

Práctica

Y sobre todo, hay que practicar sus habilidades. Si no practica, no se puede llegar a los niveles más altos de capacidad. Mientras que usted practica, observese a sí mismo, encuentre áreas de mejora, y que todas sus acciones sean deliberadas y auto-reflexivas.

Conclusión

Pretender convertirse en un tester de clase mundial no significa llegar a un destino, sino más bien estar en un constante viaje hacia nuevos territorios. La exploración nunca termina, lo cual es estimulante, y hace que Testing sea tan gratificante.

Feliz Testing!

No hay comentarios:

Publicar un comentario