¿Cómo es el futuro del testing? ¿Por qué el rol del tester es crucial en la sociedad? ¿La inteligencia artificial y la automatización podrán reemplazar alguna vez al ojo humano? De todo esto y mucho más conversamos a fondo con el Quality Engineer Federico Toledo, doctorado en informática y COO de Abstracta.
“La ciencia se compone de errores, que a su vez, son los pasos hacia la verdad” es una frase del escritor francés Julio Verne que sin dudas Federico Toledo conoce hasta el cansancio. Tester empedernido, Toledo sabe que cada hallazgo en testing es clave para la optimización de sistemas que luego podrían ser de relevancia a gran escala en nuestra sociedad globalizada y mediada por las tecnologías.
Criado en el campo en una familia humilde, cuando era chico cultivaba vegetales y soñaba con ser carpintero. Atravesó un largo camino para llegar hasta donde está. Conoce en carne propia el esfuerzo y sacrificio: cuando comenzó a estudiar, viajaba 4 horas por día para hacerlo posible, en trayectos que estaban divididos en tramos en bicicleta, ómnibus y caminatas.
Hoy es un líder y referente en testing de software que ofrece conferencias, workshops y charlas en multiplicidad de eventos internacionales. Es uno de los fundadores de Abstracta, empresa líder mundial en testing con sedes en América y Europa y en constante crecimiento. Tiene su propio blog y su podcast, a través de los cuales comparte valiosa información.
Su libro “Introducción a las Pruebas de Sistemas de Información” ha sido inspirador para personas de todo el globo. ¿Una buena noticia? Actualmente, está trabajando en su nueva edición, que es más que prometedora.
Se avecinan tecnologías cada vez más disruptivas, y la inteligencia artificial trae consigo nuevos paradigmas, con complejos desafíos y la necesidad de más testers en la industria, con mejor preparación. En un diálogo a fondo con Toledo, nos sumergimos en temáticas de gran importancia para el testing, y profundizamos en asuntos nunca antes revelados sobre su propia vida.
¿Es posible lograr que un sistema nunca falle?
No, siempre va a haber fallas. No se puede demostrar su ausencia, entonces es imposible afirmar que un sistema no las tenga. Incluso hay ocasiones en las que se decide salir a producción aún con fallas conocidas debido a que quizás no todas tienen un impacto negativo severo, o porque el impacto negativo se pondera menor que a demorar el delivery. Existe una gran variedad de usuarios, cada cual tiene diferentes prioridades y percepciones sobre la calidad. Por eso, determinar que un sistema ya es suficientemente bueno es una de las decisiones más difíciles de tomar. Dependerá del objetivo, del contexto, de la severidad de los errores y de qué tan bien haya sido realizado el testing. El horizonte es llegar a la perfección y lo tiene que seguir siendo, pero sabemos que no lo podemos alcanzar. Nunca va a haber un software perfecto.
¿Por qué el buen funcionamiento de los sistemas es clave en esta era?
Por la falla de un sistema, puede ocurrir una catástrofe. Existen muchos ejemplos: desde cohetes espaciales que explotaron hasta sistemas que han llegado a generar graves problemas de salud. Son casos muy extremos, pero reales. También hay situaciones que hacen a la cotidianeidad de las personas y entonces a su calidad de vida. Hoy casi todo está mediado por los sistemas y por eso la calidad del software es tan importante para el desarrollo diario de la vida misma.
Para alcanzar la tan buscada calidad de software que mencionas, la automatización de algunas pruebas puede resultar trascendental. Lograrlo de manera eficiente requiere de mucho conocimiento pero también de criterio. Al respecto, en tu libro citás esta frase de James Bach: “Automating chaos just gives faster chaos”. ¿Cómo se logra evitar el caos y aprender a distinguir cuáles son los tests más importantes para la automatización?
Conocer el proyecto que se está testeando es fundamental para entender sus prioridades. A su vez, el paso del tiempo y la experiencia en el mismo aporta nociones muy importantes sobre sus necesidades. Es crucial que el tester trabaje en equipo con otros testers, analistas y desarrolladores, para llevar adelante su labor considerando siempre todos los riesgos, tanto desde el lado técnico como del lado del negocio. Es en esa colaboración en la cual se va a aprendiendo a decidir qué es más importante probar.
¿Por qué no es recomendable automatizar el 100% de las pruebas?
Acá aplica la paradoja del pesticida: los insectos que no logra matar se van haciendo más fuertes. Un test automatizado va a probar siempre lo mismo, no explora cosas que no le dijimos que pruebe. Los errores más grandes los va a encontrar en la primera pasada, pero los que no está hallando se van a hacer más fuertes. Por eso es bueno tener un enfoque combinado: realizar testing automático pero también testing “manual”, con una cuota de curiosidad. ¡Claro que sería ideal hacer solo testing manual! Pero eso es ineficiente, caro y, si una persona debe probar siempre lo mismo, con el tiempo termina siendo incluso aburrido. Si salen nuevas versiones todos los días, por ejemplo, llega un momento en que los ojos ya no ven con tanta curiosidad. Es importante automatizar todo aquello que debe chequearse periódicamente de la misma manera.
Entonces el rol del tester manual en realidad es crucial…
Absolutamente. Antes, en muchos lugares se daba el testing manual a personas sin mucha experiencia. Pero en realidad es un rol muy importante. Hacerlo bien definitivamente hace la diferencia. Si la persona que ejecuta una prueba de forma manual lo hace solo siguiendo instrucciones, sin curiosidad, criterio ni compromiso, no va a lograr hallar todos los errores necesarios. No va a saber explorar ni entender qué tan importantes son los diferentes componentes para el negocio. La automatización no podrá nunca reemplazar al ojo humano. Pero es una excelente herramienta para ampliar lo que podemos alcanzar con nuestros esfuerzos.
¿Cuál dirías que es el mayor momento de inflexión en la carrera de un tester?
La carrera no es lineal. Hay muchos que ven un camino único, que se inicia con el testing funcional, y luego avanza hacia el automatizado. Pero el testing manual es fundamental y no es necesariamente solo el inicio de la carrera, hay quienes prefieren dedicarse completamente a ello. Por su lado, automatizar es super lúdico, es como un juego en el que vas pasando etapas, intentando que la aplicación crea que hay una persona del otro lado de la pantalla cuando en realidad lo que hay es un script. ¡Lograr eso es muy satisfactorio! La curiosidad es la que guía el camino. Empezás a preguntarte: ¿Y si ahora intento que crea que hay 10 personas en vez de 1? ¿Y qué pasará si cada una de ellas aporta datos diferentes? Es todo un desafío.
Al principio del trayecto, es momento de absorber todo lo que se pueda, y en realidad siempre se sigue aprendiendo. Hay muchas formas de desarrollarse en testing, pero el mayor momento de inflexión es cuando te das cuenta de que podés ayudar a otros testers a progresar en su carrera. Más allá del tipo de testing que se haga, es ahí cuando alguien puede empezar a liderar proyectos.
¿Cómo se logra mantener el foco del testing asociado a los riesgos a lo largo del tiempo?
Lo voy a asociar a la gestión del tiempo personal. Cada día hay más tareas para hacer, y se van acumulando. Hay que aceptar que somos incapaces de hacer todo, que nuestro tiempo es finito y tenemos que decidir qué no hacer. Ahí es donde hay que preguntarse: ¿qué pasa si yo no hago esto? ¿El sistema va a dejar de responder? ¿Van a haber usuarios enojados? ¿Vamos a perder dinero? ¿Va a haber vidas en riesgo? Ese análisis tiene que estar siempre, en cada decisión que vamos a tomar en testing. Deberíamos apuntar a dejar de tener tareas urgentes, si hay algo urgente es porque estamos haciendo algo mal. El foco de un testing basado en riesgos es un mindset, y deberíamos mantenerlo en el tiempo, adaptándolo a los nuevos riesgos que vayan surgiendo en cada contexto. Debería ser parte de la forma de realizar cada actividad, en cada paso.
Tu libro es uno de los primeros en español que se dedican a aspectos prácticos del tema, con un nivel de cobertura increíble. ¿Cuándo y cómo nació tu interés por llevarlo adelante?
Siempre me gustó escribir. Quería hacer conocer Abstracta y pensé en hacerlo a través de aportar algo útil. Quería realizar un puente entre la industria de testing que estaba creciendo en América del Norte y Europa, traer todo ese conocimiento a Uruguay y posicionar a Abstracta como referente. También me gustó siempre hacer un puente entre la academia y la industria. Desde 2007, escribí un montón de artículos sobre testing en el blog de Abstracta. Cuando terminé el doctorado en 2014 en España, decidí recolectar todo lo que ya había elaborado y desarrollar nuevos tópicos para poder ofrecer un material completo y gratuito, con buenas prácticas y técnicas, para que más personas pudieran dedicarse al testing en Uruguay y crear una comunidad.
¿Por qué es importante que más personas se dediquen al testing?
Por un lado, la industria necesita más testers, desarrolladores, analistas y tantos otros roles. Por otro, el testing es una buena puerta de entrada a la industria de software, la cual tiene uno de los mejores salarios del mercado, más oportunidades de crecimiento y mejores entornos laborales. El testing es un buen canalizador para que las personas empiecen haciendo testing funcional y luego puedan desarrollarse en otras áreas si lo desean. Que haya más testers responde a una necesidad de la industria del software pero también a mejorar la calidad de vida de las personas.
¿Qué te llevó a dedicarte al testing?
Siempre se dice que quien arrancó por testing, fue por accidente o casualidad. En mi caso, fue la oportunidad de trabajar pocas horas y en la universidad, y poder seguir estudiando. Quien me hizo la entrevista, que fue mi primer jefe, me preguntó si estaba seguro de querer trabajar como tester, ya que eso marcaría mi futuro profesional. Yo le respondí que sí, pensando que en realidad no sería determinante. 15 años después, aquí estamos. ¡Tenía toda la razón! Hoy sé que el testing es crítico para desarrollar software de buena calidad, es una actividad lúdica que necesita pensamiento crítico y el desarrollo de habilidades que la convierten en entretenida y desafiante. Por eso me gusta tanto.
¿Soñabas con esto cuando eras chico?
No sabía ni lo que era programar. Elegí estudiar informática porque me gustaban las matemáticas y me habían dicho que la carrera tenía mucho de eso. Solo una vez había usado una computadora. ¡Fue una verdadera suerte haber elegido la carrera y que me haya gustado! Yo me crié en el campo en una familia humilde cerca de Atlántida en Uruguay, a 50 kilómetros de Montevideo. Iba a una escuela rural de solo 50 niños, me gustaba armar mis propios juguetes con madera y cultivar, y soñaba con ser carpintero. Mi mamá se quedó sola cuando yo tenía 10 años y mi hermana 8, salió a buscar trabajo y comenzó a dedicarse a la limpieza de casas. Nunca nos faltó lo elemental, pero era una situación bastante luchada, vivíamos día a día.
¿Cómo fue el camino para lograr seguir estudiando?
Mi maestra del último año de la escuela primaria, Marta, fue muy importante para mí. Un día, le dijo a mi madre: ‘Tiene que mandar a este gurí al liceo (colegio secundario)’. Insistió con la idea y mi madre se puso firme con ello, de otro modo quizás mi padre me hubiera puesto a trabajar en el campo. Es increíble la influencia que puede tener una maestra en la vida de una persona. Luego del liceo, fui a la Universidad de la República, pude hacerlo ya que es gratuita y además porque recibí becas del Fondo de Solidaridad y de Bienestar Universitario: una consistía en una mensualidad para poder dedicarme al estudio, y otra me brindaba acceso a un comedor comunitario de la Universidad. Pero no fue fácil, el primer año y medio viajaba 4 horas por día para poder estudiar.
Recorría 5 kilómetros en bicicleta desde mi casa en el campo hasta Atlántida, allí tomaba un ómnibus en el que viajaba 1 hora hasta Montevideo, y luego caminaba 30 minutos hasta la facultad. Después, el mismo camino a la inversa para regresar. Afortunadamente, pudimos alquilar una casa en Montevideo con un amigo, muy barata y en no muy buenas condiciones, pero una casa al fin. En 3.er año de la facultad conseguí trabajo en el Centro de Ensayos de Software (CES), y eso generó un cambio económico que me dio más estabilidad y renuncié a las becas para dejarle lugar a otros que la necesitaran en ese momento. Luego seguí estudiando y desarrollándome, hice mi doctorado en España, becado por la Agencia Nacional de Investigación en Innovación (ANII). Todo el sacrificio de mi mamá valió la pena.
¿Qué es lo que hoy te mantiene en el camino del testing? ¿Qué sueñas para el futuro en este sentido?
Cuando comencé en el sector, poca gente conocía de testing y muchos no estaban seguros de su utilidad. Esto evolucionó mucho, hoy ya está bastante establecido en la industria. El testing es un medio para un fin, que es tener productos de calidad que brinden excelentes experiencias de usuario. Pero lo que me mantiene en testing es mucho más que eso. Hoy en Abstracta sabemos lo que podemos generar en las personas: ofrecer un trabajo disfrutable, flexible y bien pago, que sea un antes y después en su calidad de vida. Con este propósito claro, hoy mi sueño es que Abstracta siga creciendo. Conformamos un ecosistema sustentable, capaz de lograr un impacto positivo en la sociedad, generar sinergias y apoyar también otras iniciativas. Lo que más me moviliza es poder crear ese puente para el crecimiento de las comunidades y la mejora de la calidad de vida de las personas.
¿Cómo es el futuro del testing? ¿Qué se viene de nuevo?
Estamos en un momento muy curioso, están surgiendo cuestiones muy disruptivas en cuanto a tecnología, todo lo que tiene que ver con las ‘cripto cosas’, comunidades descentralizadas e inteligencia artificial. Hay mucha gente trabajando en inteligencia artificial para ofrecer herramientas para programar e incluso para testear. Todo esto genera miedos, mucha gente se pregunta si el tester va a ser reemplazado por la inteligencia artificial. En realidad, mientras más tecnología haya, más testers vamos a necesitar.
¿Por qué?
La inteligencia artificial es una tecnología mucho más compleja que los sistemas que no la usan. Por eso, cada vez van a ser necesarios más testers, y con mejor preparación. El software se hace cada vez más complejo y vamos a tener que contar con mejores herramientas, conocer más de modelos matemáticos y estadística y aprender más sobre pensamiento computacional. Hay un puente entre lo tecnológico y lo humano, y eso es imposible de automatizar. Ese puente necesita una consciencia humana que pueda hacer evaluaciones y tener empatía con el usuario. Todo lo que tenga que ver con las emociones es imposible de automatizar. Tendremos desafíos difíciles y diferentes. Es un futuro desafiante y alentador, si fuera fácil sería aburrido. El testing bien realizado va a tener un impacto radical en la era que se viene.
Mini BIO
Federico Toledo es Ingeniero en Computación por la Universidad de la República en Uruguay y Doctor en Informática por la Universidad de Castilla-La Mancha, España.
En 2008, cofundó la empresa de testing de software Abstracta en Uruguay, la cual hoy es líder mundial en el área y se encuentra en constante crecimiento. Actualmente, cuenta con sedes en Montevideo, Salto y Juan Lacaze, en Uruguay; California, Estados Unidos; Santiago de Chile y Londres, Reino Unido.
También co-fundó Abstracta Academy, Apptim, el proyecto social y educativo Nahual Uruguay y TestingUy, la conferencia más importante de testing de América Latina.
Autor del libro “Introducción a las Pruebas de Sistemas de Información” y conferencista internacional, en 2021 se graduó de Stanford + LBAN SLEI, un programa dedicado a emprendedores latinos con foco en escalar sus empresas.
Desde 2019, reside en California junto a su esposa, investigadora en la Universidad de Berkeley, con quien proyecta volver a vivir a Uruguay en 2022.
¡Puedes seguir a Federico en X o en Linkedin!
¡Síguenos en LinkedIn, Facebook, X, Instagram y YouTube para ser parte de nuestra comunidad!
Otros contenidos relacionados
Tester de Software, entre los empleos del futuro del trabajo
¿Cuándo es necesario contratar un tester de software?
¿Cuáles son las tareas y responsabilidades de un tester de software?
Etiquetas
Posts Relacionados
Mujeres influyentes en testing de Latinoamérica que debes conocer
Conoce a algunas de las profesionales de América Latina con destacada experiencia, que realizan testing alrededor del mundo.
Nueva COO en Abstracta y creación del puesto Chief Quality Officer
Alejandra Viglietti, Operations Manager por casi 2 años, es la nueva Chief Operations Officer (COO) de Abstracta, en reemplazo de Federico Toledo, cofundador y socio de la empresa. Federico ocupó el puesto por más de 5 años, y asumió ahora como Chief Quality Officer (CQO). De este modo, Alejandra se unió al C-Suite de la compañía.