Federico Toledo em profundidade: “Vamos precisar de mais e melhores testers”
Como será o futuro dos testes de software? Por que o papel de um tester é crucial na sociedade atual? A inteligência artificial algum dia vai substituir o olhar humano? Conversamos em profundidade sobre tudo isso e muito mais com Federico Toledo, doutor em ciência da computação e COO da Abstracta.
“A ciência, meu rapaz, é feita de erros, mas de erros que são úteis cometer, porque conduzem pouco a pouco à verdade” é uma frase do escritor francês Júlio Verne que Federico Toledo conhece bem. Como um tester incansável, Toledo sabe que cada descoberta nos testes é fundamental para otimizar sistemas que podem ser relevantes em grande escala, em uma sociedade globalizada e amplamente mediada pela tecnologia.
Criado em uma família humilde do interior, cresceu plantando verduras e sonhando em ser marceneiro. Percorreu um longo caminho para chegar onde está. Conhece o esforço e os sacrifícios de perto: quando começou a estudar engenharia, viajava 4 horas por dia para conseguir isso.
Hoje, ele é um líder e um nome de referência em testes de software, que dá palestras e workshops e participa de vários eventos internacionais. É um dos fundadores da Abstracta, uma empresa de testes líder mundial, com escritórios nos EUA e na América Latina. Tem um blog e um podcast, nos quais compartilha informações e insights valiosos.
Seu livro “Introducción a las pruebas de sistemas de información” tem sido uma inspiração para a comunidade de tecnologia no mundo todo, e ele está trabalhando em uma nova edição, que promete muito.
Estão surgindo tecnologias cada vez mais disruptivas, e a inteligência artificial traz novos paradigmas, com desafios complexos, como a necessidade de mais testers no setor e com melhor preparo. Em um diálogo profundo com Toledo, falamos de temas relevantes para os testes e, em uma conversa sincera, tivemos revelações sobre a sua história de vida.
Clique aqui para baixar gratuitamente “Introducción a las pruebas de sistemas de información”, o livro de Federico Toledo.
É possível garantir que um sistema nunca falhe?
Não, sempre vai haver falhas. É impossível demonstrar a ausência delas. Portanto, é impossível afirmar que um sistema não as tem. Há inclusive ocasiões em que se decide ir para produção mesmo com bugs conhecidos, porque talvez nem todos tenham um impacto muito negativo, ou porque o impacto negativo pesa menos do que atrasar a entrega. Existe uma grande variedade de usuários, com prioridades e percepções de qualidade diferentes. Por isso, determinar quando um sistema já está bom o suficiente é uma das decisões mais difíceis de tomar. Depende do objetivo, do contexto, da gravidade dos erros e de quão bem os testes foram feitos. O horizonte é chegar à perfeição, e tem que continuar sendo assim, mas sabemos que não podemos alcançá-la. Nunca vai existir um software perfeito.
Por que o bom funcionamento dos sistemas é fundamental nesta era?
Uma catástrofe pode acontecer por causa da falha de um sistema. Há muitos exemplos: de foguetes espaciais que explodiram a sistemas que causaram graves problemas de saúde. São casos muito extremos, mas reais. Também há situações que afetam o dia a dia das pessoas e, portanto, a sua qualidade de vida. Hoje quase tudo é mediado por sistemas, e é por isso que a qualidade de software é tão importante para o desenrolar da própria vida.
Para chegar à tão esperada qualidade de software que você mencionou, a automação de alguns testes pode ser transcendental. Fazer isso com eficiência exige muito conhecimento, mas também critério. Nesse sentido, você citou no seu livro esta frase de James Bach: “Automatizar o caos só gera um caos mais rápido”. Como evitar o caos e aprender a distinguir quais são os testes mais importantes para automatizar?
Conhecer o projeto que está sendo testado é essencial para entender as suas prioridades. Por sua vez, o tempo e a experiência dão noções importantes sobre as suas necessidades. É essencial que os testers trabalhem em equipe com outros testers, analistas e desenvolvedores, para realizar o trabalho considerando sempre todos os riscos, tanto do lado técnico quanto do lado do negócio. É nessa colaboração que vamos aprender a decidir o que é mais importante testar.
Por que não é recomendável automatizar 100% dos testes?
O paradoxo do pesticida se aplica a essa pergunta: os insetos que um pesticida não consegue matar ficam mais fortes. Um teste automatizado sempre vai testar a mesma coisa, ele não explora o que não pedimos para testar. Ele encontra os bugs maiores na primeira passada, mas os que não foram encontrados ficam mais fortes. Por isso é bom ter uma abordagem combinada: fazer testes automatizados, mas também testes “manuais”, com uma dose de curiosidade. Claro que o ideal seria fazer só testes manuais! Mas isso é ineficiente, caro e, se uma pessoa precisa testar a mesma coisa ao longo do tempo, acaba sendo até entediante. Além disso, se saem versões novas todos os dias, vai chegar um momento em que os olhos deixam de ver e a curiosidade se perde. É importante automatizar tudo o que precisa ser verificado periodicamente da mesma forma.
Então o papel do tester manual é crucial…
Com certeza. Antigamente, em muitos lugares, os testes manuais ficavam com pessoas sem muita experiência. Mas, na verdade, é um papel muito importante. Fazê-lo bem faz toda a diferença. Se a pessoa que executa um teste manualmente apenas segue instruções, sem curiosidade, critério ou compromisso, não vai conseguir encontrar todos os erros necessários. Não vai saber explorar e entender a importância dos diferentes componentes para o negócio. A automação nunca vai poder substituir o olhar humano. Mas é uma excelente ferramenta para ampliar o que podemos conseguir com o nosso esforço.
Qual é o maior ponto de virada na carreira de um tester?
A carreira não é linear. Muitas pessoas acreditam que existe um único caminho, que começa nos testes funcionais e depois passa para a automação. Os testes manuais são fundamentais e não necessariamente apenas o início da carreira, há quem prefira se dedicar totalmente a eles. Por outro lado, automatizar é superlúdico, é como um jogo em que você vai passando de fase, tentando fazer a aplicação acreditar que há uma pessoa do outro lado da tela quando, na realidade, há um script. Conseguir isso é gratificante! A curiosidade guia o caminho. Você começa a se perguntar: e se agora eu tentar fazer o sistema acreditar que há 10 pessoas em vez de 1? E o que vai acontecer se cada uma delas fornecer dados diferentes? É todo um desafio. No início do caminho, é hora de absorver tudo o que puder, mas, na verdade, você nunca para de aprender. Há muitas formas de se desenvolver em testes, mas o maior ponto de virada é quando você percebe que pode ajudar outros testers a avançar na carreira. Independentemente do tipo de teste que se faça, esse é o momento em que alguém pode começar a liderar projetos.
Como é possível manter ao longo do tempo o foco dos testes associado aos riscos?
Vou associar isso à gestão do tempo pessoal. A cada dia há mais tarefas a fazer, e elas se acumulam. Temos que aceitar que somos incapazes de fazer tudo, que o nosso tempo é finito e que precisamos decidir o que não fazer. É aí que você tem que se perguntar: o que acontece se eu não fizer isso? O sistema vai continuar funcionando? Vai haver usuários irritados? Vamos perder dinheiro? Vai haver vidas em risco? Essa análise deve estar sempre presente, em cada decisão que tomamos nos testes. Deveríamos buscar deixar de ter tarefas urgentes. Se há algo urgente, é porque estamos fazendo algo errado. O foco em testes baseados em riscos é uma mentalidade, e devemos mantê-la ao longo do tempo, adaptando-a aos novos riscos que surgem em cada contexto.
O seu livro é um dos primeiros em espanhol dedicados aos aspectos práticos do tema, com um nível de cobertura incrível. De onde veio o seu interesse em escrevê-lo?
Sempre gostei de escrever. Eu queria tornar a Abstracta conhecida e pensei em fazer isso contribuindo com algo útil. Queria construir uma ponte entre o setor de testes que crescia na América do Norte e na Europa, levar todo esse conhecimento ao Uruguai e posicionar a Abstracta como referência de pensamento. Também sempre gostei de aproximar a academia e a indústria. Desde 2007, escrevi muitos artigos sobre testes no blog da Abstracta. Quando terminei o meu doutorado em 2014, na Espanha, decidi reunir tudo o que já tinha feito e desenvolver novos temas para poder oferecer um material completo e gratuito, com boas práticas e técnicas, para que mais pessoas pudessem se dedicar aos testes no Uruguai e criar uma comunidade.
Por que é importante que mais pessoas se dediquem aos testes?
Primeiro, o setor precisa de mais testers, desenvolvedores, analistas e muitos outros perfis. Por outro lado, os testes são um bom primeiro passo para entrar no setor de software, que tem um dos melhores salários do mercado, mais oportunidades de crescimento e melhores ambientes de trabalho. Os testes são um bom canal para as pessoas entrarem pelos testes funcionais e depois se desenvolverem em outras áreas, se quiserem. Ter mais testers responde a uma necessidade do setor de software, mas, por meio disso, também é possível melhorar a qualidade de vida das pessoas.
O que levou você a se dedicar aos testes?
Costuma-se dizer que quem começou nos testes começou por acaso. No meu caso, foi porque isso me dava a oportunidade de trabalhar algumas horas por dia na universidade e continuar estudando. A pessoa que me entrevistou, que foi o meu primeiro chefe, me perguntou se eu tinha certeza de que queria trabalhar como tester, já que isso marcaria o meu futuro profissional. Respondi que tinha certeza, pensando que ele estava exagerando e que não seria tão decisivo. 15 anos depois, aqui estamos! Tive muita sorte de ter escolhido esta profissão e de ter gostado dela! Cresci no interior, em uma família humilde, perto de Atlántida, no Uruguai, a 50 quilômetros da capital, Montevidéu. Estudei em uma escola rural de apenas 50 crianças. Adorava construir os meus brinquedos com madeira e plantar, e sonhava em ser marceneiro. A minha mãe ficou sozinha criando os dois filhos quando eu tinha 10 anos e a minha irmã, 8. Ela teve que sair para procurar trabalho e começou a fazer faxina em casas. Nunca nos faltou o básico, mas era uma situação muito apertada, vivíamos um dia de cada vez.
Federico Toledo com a irmã e a mãe, aos 9 anos
Como foi o caminho para continuar estudando?
A professora do meu último ano do ensino fundamental, Marta, foi muito importante para mim. Um dia, ela disse à minha mãe: ‘Você tem que mandar o seu filho para o ensino médio’. Ela insistiu na ideia e a minha mãe se manteve firme; caso contrário, talvez o meu pai tivesse me colocado para trabalhar no campo. É impressionante a influência que uma professora pode ter na vida de uma pessoa. Depois do ensino médio, entrei na Universidade da República; consegui porque ela é gratuita e também porque recebi bolsas do Fondo de Solidaridad e do Bienestar Universitario: uma consistia em uma ajuda mensal para que eu pudesse me dedicar aos estudos, e a outra me dava acesso a um refeitório universitário. Mas não foi fácil: no primeiro ano e meio, eu viajava 4 horas por dia para estudar. Percorria 5 quilômetros de bicicleta da minha casa no interior até Atlántida, lá pegava um ônibus em que viajava 1 hora até Montevidéu e depois caminhava 30 minutos até a universidade. Depois, o mesmo caminho de volta. Felizmente, conseguimos alugar uma casa em Montevidéu com um amigo, muito barata e em condições não muito boas, mas uma casa, afinal. No meu 3º ano de faculdade, consegui um emprego no Centro de Ensaios de Software (CES), e isso gerou uma mudança econômica que me deu mais estabilidade; então abri mão das bolsas para dar lugar a outras pessoas que precisavam delas naquele momento. Continuei estudando e me desenvolvendo, fiz o meu doutorado na Espanha, com uma bolsa da Agência Nacional de Pesquisa e Inovação (ANII). Todo o sacrifício da minha mãe valeu a pena.
O que mantém você hoje no caminho dos testes? O que você sonha para o futuro nesse sentido?
Quando comecei no setor, poucas pessoas conheciam os testes e muitas não tinham certeza da sua utilidade. Isso evoluiu muito, e hoje eles já estão bem estabelecidos no setor. Os testes são um meio para um fim, que é ter produtos de qualidade que ofereçam excelentes experiências de usuário. Mas o que me mantém nos testes é muito mais do que isso. Hoje, na Abstracta, sabemos o que podemos gerar nas pessoas: oferecer um trabalho agradável, flexível e bem pago, que seja um antes e um depois na sua qualidade de vida. Com esse propósito claro, hoje o meu sonho é que a Abstracta continue crescendo. Construímos um ecossistema sustentável, capaz de gerar um impacto positivo na sociedade, criar sinergias e também apoiar outras iniciativas. O que mais me move é poder criar essa ponte para o crescimento das comunidades e a melhoria da qualidade de vida das pessoas.
Como você vê o futuro dos testes? O que está por vir?
Estamos em um momento muito interessante e estimulante, estão surgindo temas muito disruptivos em termos de tecnologia, tudo o que tem a ver com as ‘coisas cripto’, as organizações descentralizadas e a inteligência artificial. Muitas pessoas estão trabalhando com inteligência artificial para oferecer ferramentas de programação e até de testes. Tudo isso gera, claro, ansiedades: muita gente se pergunta se os testers vão ser substituídos pela inteligência artificial. Na verdade, quanto mais tecnologia houver, mais testers vamos precisar.
Por quê?
A inteligência artificial tem uma tecnologia muito mais complexa do que os sistemas que não a usam. Por isso, vão ser necessários cada vez mais testers, e com melhor preparo. O software está ficando cada vez mais complexo, e vamos ter ferramentas melhores, aprender mais sobre modelos matemáticos e estatística e aprender mais sobre pensamento computacional. Existe uma conexão entre a tecnologia e a experiência humana, e isso é impossível de automatizar. Essa ponte precisa de uma consciência humana que consiga avaliar e ter empatia com o usuário. Tudo o que tem a ver com emoções é impossível de automatizar. Vamos ter dificuldades e desafios diferentes. É um futuro animador; se fosse fácil, seria entediante. Testes bem executados vão ter um impacto radical na era que está chegando.
Minibio
Federico Toledo é engenheiro de computação pela Universidade da República do Uruguai e doutor em ciência da computação pela Universidade de Castilla-La Mancha, na Espanha.
Em 2008, ele cofundou a Abstracta, uma empresa de testes de software que hoje é líder mundial na área e não para de crescer. Atualmente, tem 3 escritórios no Uruguai e se expandiu para o Chile e os Estados Unidos.
Ele também fundou a Abstracta Academy, a Apptim, o projeto social e educacional Nahual Uruguay e a TestingUy, a conferência de testes mais importante da América Latina.
Palestrante internacional e autor do livro “Introducción a las pruebas de sistemas de información”, ele se formou em 2021 no Stanford + LBAN SLEI, um programa dedicado a empreendedores latinos com foco em escalar as suas empresas.
Desde 2019, mora na Califórnia com a esposa, que trabalha como pesquisadora na Universidade de Berkeley. Em 2022, planejam voltar ao Uruguai.
Siga o Federico no LinkedIn e no Twitter.
Siga a gente no LinkedIn, no Facebook, no Twitter e no Instagram para fazer parte da nossa comunidade!
Fique conectado
com a Abstracta
Notícias, artigos e recursos para construir software melhor.
Leia sobre nossa política de privacidade.