Mucho se ha hablado de las cosas en las que las reclutadoras (y reclutadores) necesitan esforzarse para ser competitivas en el área de Tecnologías de la información y también sobre sus “áreas de oportunidad”, en este post hablaré de los errores más básicos al entrevistar testers, (principalmente enfocado a identificar al tipo de tester que esperas encontrar) esas creaturas incomprendidas que pareciera que por tener la palabra “Testing” o "QA" en su curriculum están listos para ejecutar cualquier actividad relacionada a las pruebas.
La verdad sería más divertido quejarme de las reclutadoras que no le dan seguimiento a los candidatos, nos mandan correos con nombres de otras personas, o nos hablan para una vacante que no encaja para nada con nuestro perfil, etc etc etc, pero ya todo el mundo habla sobre eso, esta de más mencionarlo, así que mejor tratare de ayudar a las reclutadoras a reclutarnos mejor!
Al ponerme en los zapatos de las reclutadoras me queda claro que eso de saberse (y medio entender) los distintos lenguajes, bases de datos, herramientas, frameworks, versiones, protocolos, modelos, blablablá que utilizamos todas las personas de TI está muy complicado, así que aquí les dejo algunos datos interesantes para diferenciar las diferentes “razas” de Testers que existen y algunos tips, preguntas y datos interesantes para hacerles la vida más fácil:
MANUAL TESTER
Básicamente lo que hace es realizar… ¿pruebas manuales? ¡Sí! principalmente necesitan ser creativos y tener buenas capacidades de análisis, tener algo de conocimiento en bases de datos como SQL para realizar consultas de información, deben saber crear casos de prueba, ejecutarlos, levantar defectos y para los más experimentados les piden que sepan crear “Planes de Pruebas” (Ja), pero como sé si mi candidato es un manual tester? Podrías preguntarle lo siguiente:
¿Qué es un caso de prueba? (Nivel Jr)
Una serie de precondiciones, pasos y resultados esperados que permitan realizar una prueba para cubrir un requerimiento.
Como se levanta un defecto? (Nivel Jr)
Hay que detallar una descripción, datos de entrada, pasos para replicar, severidad, prioridad, y cualquier información útil para identificar la causa raíz del error.
¿Cuál es la diferencia entre “Prioridad” y “Severidad” en un defecto? (Nivel Intermedio)
Prioridad: que tan rápido se debe arreglar / Severidad: que tanto impacta el sistema.
¿Cuáles son los niveles de pruebas y cuales los tipos de pruebas? (Solo para certificados ISTQB, Nivel Intermedio)
Niveles de prueba: Pruebas de Componentes, de Integración, de sistema y de aceptación.
Tipos de pruebas: Pruebas funcionales, no funcionales, estructurales, y relacionadas a cambios (Regresión y retest).
¿Que es Exploratory Testing? (Nivel Sr)
En un enfoque de pruebas en donde el diseño y la ejecución de casos de prueba se hacen a la par (algunas veces no se hacen casos de prueba), se busca aprender de la aplicación y encontrar defectos que típicamente un caso de prueba no puede, solo puede ser ejecutado por testers experimentados para que tenga un verdadero valor.
NOTA: Si tu manual tester conoce HP ALM/Quality Center puede aprender cualquier herramienta de “Gestión de Pruebas” fácilmente, todas son prácticamente una copia con más o menos funcionalidades.
NOTA 2: La certificación ISTQB no indica que tienes un mejor tester que otro no certificado (Solo aplica para nivel Sr...), solo tienes uno mas preocupado por su cv (Eso es bueno...)
NOTA 3: HPQC es lo mismo que Quality Center o HP ALM 11 (HP Application Lifecyle Management), es la misma herramienta solo que con un nombre distinto por el cambio de versiones que ha tenido con los años
AUTOMATION TESTER
Estos especímenes básicamente lo que hacen es crear y ejecutar scripts (piezas de código) para realizar pruebas muy repetitivas, las cuales son más fáciles de realizar por una maquina que por un humano. Aquí es un poco más variado porque dependiendo de lo que se quiera automatizar es lo que se debe de buscar, estos son los tipos de automatizadores que existen:
Automatizadores de Interfaz gráfica (GUI)
Son los más comunes, ellos realizan la automatización de la parte gráfica del sistema, (Osea, la pantalla que ves de un sistema) los puede identificar por conocer herramientas como QTP/UFT, Selenium, CodeUI o Rational; Por lo general necesitan conocer sobre lenguajes como Java, Visual Basic o .NET (no se limita a esos lenguajes, pero son los más comunes).
Automatizadores de APIs / Web Services
Un API es un programita que permite la interacción entre dos programas, así que lo que aquí se automatiza es las interacciones entre programas, se verifica que estén funcionando en conjunto sin ningún problema, la seguridad, etc. la herramienta más conocida para estas pruebas es SoapUI.
Automatizadores de Pruebas Unitarias
La pruebas unitarias por lo general son realizadas por los desarrolladores, se hacen directamente en el código del sistema, se agregan puntos de verificación en cada parte del código que se quiera revisar; como la prueba va en el código la herramienta debe estar relacionada con el lenguaje utilizado, por lo general podemos encontrar que para Java existe el “JUnit”, para .Net el “NUnit”, para PHP el “PHPUnit”, para ABAP el “ABAPUnit”y asi... XUnit, aunque existen muchas más con otros nombres no relacionados al lenguaje que pertenecen.
NOTA: A los tester que también saben agregar código al sistema tal como un desarrollador se les llama “Software Developer Engineer in Test” (SDET, esta de moda!).
PERFORMANCE TESTER
Este tipo de tester se encarga de verificar cuantos usuarios soporta una aplicación (entre varias otras cosas), por decir, si mi aplicación es utilizada por 500 personas yo tester de performance me aseguro que con mis pruebas la aplicación soporte esas 500 personas, incluso puedo ver cuántas personas hacen que la aplicación deje de funcionar o casas por el estilo. Aquí principalmente se buscan personas que tengan conocimientos técnicos en la herramienta que se utilizara, por ejemplo programación en C++, Java, .Net entre otros...
Las herramientas por excelencia para Performance son Load Runner (Performance Center), Apache JMeter y Rational Performance tester.
Si te es complicado encontrar Testers con conocimientos en Automatizacion y Performance con los requerimientos técnicos que te solicitan (lenguajes de programación específicos) lo que algunos hacen es buscar desarrolladores interesados en especializarse en pruebas o que tengan un poco de experiencia con esas herramientas de pruebas, u otras similares, muchos consideran mas fácil encontrar un desarrollador con el skill técnico y enseñarlo a utilizar las herramientas de pruebas.
En caso de requerir un Test Manager muchas empresas buscan personas con certificaciones como el PMP, CAPM, ISTQB Test Manager o algún maestría relacionada a TI, pero todo depende mucho de la empresa y sus necesidades / enfoques.
Por lo general los tester estamos especializados en alguno de estas tres ramas, y es algo difícil encontrar expertos en las tres áreas (pero no imposible); Existen algunos otros que aun no son tan conocidos como mobile tester, cloud tester, penetration tester, UX tester entre otros, de una o de otra forma caen en las tres razas descritas arriba pero las tecnologías van cambiando y no me sorprenderia que dentro de poco existan mas razas de testers!;
Este fue un resumen lo más sencillo posible de nosotros los tester, hay muchas cosas que quedan en el aire para alguien con conocimiento en testing, pero indagar a detalle en cada uno sería imposible en un post, así que si tienes algún comentario sobre estos tres distintos tipos de testing te invito a complementarlo en los comentarios.