Con cierta frecuencia me llegan preguntas sobre "cómo formarse en calidad de software", "qué cursos o master se pueden realizar", o "qué debería estudiar o hacer para conseguir un puesto como QA Tester". La verdad es que no es una pregunta sencilla. Casi cada especialista que conozco en pruebas de software ha tenido una trayectoria laboral diferente, y lo mismo es aplicable a su formación.
El perfil del tester o espcialista en pruebas de software ha cambiado mucho y actualmente está en plena (r)evolución. Hace no demasiado tiempo se valoraba sobre todo que fueran personas capaces de escribir y ejecutar casos de tests enfocados principalmente en el usuario final, con mucha capacidad de análisis y detallistas. Pero no era habitual que se pidiera dominar ningún lenguaje de programación, ni que se supiera nada sobre el ciclo de desarrollo de software, ni sobre análisis estático de código, o cómo hacer consultas a base de datos, por poner sólo algunos ejemplos.
Las cosas han cambiado. Ahora, un tester debe dominar, por lo menos, un lenguaje de programación. Como comentaban en expoqa'15, la automatización no hará las pruebas más fáciles, hará las pruebas posibles. En un mundo donde todo está conectado, los especialistas en pruebas de software debemos ser capaces de automatizar las pruebas, y para ello es necesario dominar algún lenguaje de programación. Además, hay que conocer cómo es el ciclo de vida de software, saber cómo funciona un equipo ágil, tener conocimientos de integración continua y conocer las herramientas que vamos a necesitar, algunas de ellas muy específicas de la parte de pruebas de software.
¿Qué perfil de probador de software buscan las empresas?
Lo que las empresas buscan en sus ofertas son perfiles que incluyan:
- Estudios mínimos: Ingeniero Técnico ó Ciclo Formativo Grado Superior
- Experiencia en el uso de herramientas de pruebas como Selenium, JMeter o SoapUI (estas son las 3 herramientas clásicas relacionadas con pruebas de software, y cualquier tester debería conocerlas al menos básicamente)
- Capacidad de escribir código en al menos un lenguaje orientado a objetos
- ISTQB (Foundation Level)
Respecto a los estudios mínimos, creo que las empresas valoran el que los candidatos tengan esos conocimientos, pero también saben que hay testers sin esos estudios, que se han formado de forma autodidacta y han adquirido a través de la experiencia parte de esos conocimientos que se consiguen estudiando una ingeniería o ciclo formativo.
Sobre los conocimientos de herramientas como Selenium, JMeter o SoapUI, estos se pueden adquirir de manera autodidacta o trabajando en equipos que ya las utilizan, pero no hay centros formativos que impartan cursos para aprender a usarlas.
Saber programar es uno de los requisitos más importantes actualmente para tener un cierto futuro en el mundo de las pruebas de software. Es más, cuanto mejor programador seamos, mejor probador. Conocer la forma en que se crea el código hace que sepamos también que que aspectos pueden ser fuente de problemas.
Si, pero ¿qué lenguaje de programación tengo que aprender?
Creo que es una elección personal, y que dependiendo de esa elección podremos trabajar en equipos de desarrollo que utilicen esa misma tecnología. El Índice Comunitario de Programación (TIOBE) publica un ranking de popularidad de los lenguajes de programacion que puede servirnos para decidir qué lenguaje elegir. En cualquier caso, más importante que conocer un determinado lenguaje de programación, lo importante es saber programar, tener una buena base, y conocer buenas prácticas de desarrollo de software.
¿Que certificaciones existen en esto de las pruebas de software?
Las 2 que merece la pena tener en cuenta son la certificación del ISTQB (International Software Tersting Qualification Board) y el TMap de Sogeti. Se trata de 2 certificaciones bastante maduras, y en los 2 casos es relativamente fácil encontrar centros dónde asistir a cursos y después certificarse, o simplemente certificarse, tras prepararnos el examen por libre. Para la certificación ISTQB nexoQA organiza cursos con los que preparar la certificación y hacer el examen. Sogeti por su parte organiza cursos para prepararse la certificación del TMap.
Estos cursos no son cursos con los que aprender a probar software, sino que van a ser un apoyo para certificar unos conocimientos mínimos en el área de testing y calidad de software. Mi impresión es que actualmente en España, el ISTQB (Foundation Level) es el "más demandado".
La agilidad también ha jugado un papel importante en el cambio del rol de probador de software. En los desarrollos 'en cascada' existía la 'fase de pruebas', igual que existía la fase de toma de requisitos, y existía un 'equipo de pruebas' independiente del equipo de desarrollo. Todo esto ha cambiado con la implantación del desarrollo ágil.