Vale, ya te has convencido de la importancia del testing de software. Ya sabes que probar bien tu aplicación es necesario, pero ¿qué se necesita para ser un buen tester?
Eso mismo le hemos preguntado a Jorge Turrado, autor de nuestro curso de testing de aplicaciones en la charla que mantuvimos con él en directo. De su intervención hemos rescatado algunas reflexiones muy interesantes:
A hacer tests de software se aprende... haciendo tests...
De entrada lo que recomienda Jorge es hacer tests. No hay otra forma de aprender. En nuestro cursos siempre insistimos que "a programar se aprende programando" y este caso no iba a ser distinto.
O como a Jorge le gusta decir irónicamente: "Miseria... para ser un buen tester hay que pasar miseria. A todo se aprende con la práctica". 😉
...pero debes tener unos conocimiento mínimos sobre testing
Para romper las reglas primero hay que conocerlas. Si existe una pirámide básica del testing, quizá en algún caso podrás llegar a saltártela en función de la aplicación y de tu experiencia, pero primero hay que conocer los distintos tipos de tests y su relación entre ellos.
Necesitas unos conocimientos mínimos de cómo funciona un test. Ya no hablamos de conocer herramientas supercomplejas, ya que un simple script de PowerShell que vaya haciendo comprobaciones se puede considerar un test, aunque probablemente no es la mejor manera porque escala muy mal.
No es imprescindible pero te va a facilitar mucho la vida saber que existen frameworks de testing y de mocking (como xUnit y Moq) y que puedes simular una llamada a una API para hacer tus test, siempre que lo hayas desarrollado bien y tu objeto esté bien aislado. De hecho, en el curso de testing hay un módulo entero dedicado esto.
Tener inquietud por mejorar tus pruebas de software
Una serie de .EXE o .BAT ejecutándose puede estar bien para empezar, pero la cuestión es tener la intención de mejorar e irse preguntando si hay una forma mejor de hacer las cosas. Saber un par de conceptos básicos te sirve para empezar, pero luego hay que ir tirando del hilo. Incluso se puede llegar al caso extremo de que los tests sean tan explícitos que te sirvan de documentación introduciento aserciones con frameworks como Fluent Assertions y en este caso el hecho de que pueda ser fácil de leer por otra persona redunda en un mejor mantenimiento futuro.
Capacidad de comunicación en equipo
Enlazando con el punto anterior: no trabajamos solos, normalmente trabajas en un equipo y el hecho de comunicar bien lo que se requiere, cómo hay que hacerlo y luego hacer esos tests de manera que nos entendamos todos es muy importante para el buen funcionamiento de todo el equipo de desarrollo.
¿Quién puede ser un buen tester?
¿Vale cualquiera para desarrollar software? No, evidentemente no. Pero cualquiera que pueda desarrollar software desde luego que puede desarrollar tests, porque al final no son más que piezas de software.
Más allá de las herramientas y conceptos de testing, no hace falta nada especial siendo desarrollador para poder crear tests. No obstante, como en todo, si eres una desarrolladora o un desarrollador proactivo, que te gusta mejorar, que te gusta aprender, que te preguntas el porqué de las cosas; si tienes esa inquietud evidentemente serás mejor tester, pero también serás mejor desarrollador.