Se é um programador de automatização de testes ou está a considerar seguir esta carreira, já alguma vez se perguntou se as competências de teste são essenciais para o seu trabalho? Este artigo vai ajudá-lo a responder a essa pergunta.
Eis como aprender uma “mentalidade de tester” me ajudou a tornar-me um melhor programador de automatização.
A Minha História: Trabalhar em Paralelo como Programador de Automatização e Tester
O meu primeiro emprego depois da universidade foi como especialista de testes na IBM. Estava entusiasmado, sobretudo porque tinha entrado na empresa dos meus sonhos. No entanto, bem no fundo, sentia que me faltava alguma coisa. Em breve percebi que isso acontecia porque a minha paixão sempre tinha sido o desenvolvimento de código durante os meus anos de faculdade.
Assim, para alcançar o meu objetivo de ser programador, durante os meus primeiros dias de trabalho falei com o responsável pelo projeto para me envolver no desenvolvimento de automatização de testes. Para minha satisfação, ele aceitou prontamente! No entanto, acrescentou que eu deveria continuar a considerar o desempenho, em paralelo, das funções de especialista de testes.
O acordo era o seguinte: trabalhava como especialista de testes para um conjunto de componentes e como programador de automatização para outro componente importante do produto.
Avancemos alguns dias — fiz uma descoberta surpreendente!
Descobri que ser tester tinha ajudado a melhorar as minhas competências de desenvolvimento. Enquanto desenvolvia código, comecei a pensar como um tester. Comecei a pensar na cobertura de testes, em vários percursos de teste, nos aspetos de usabilidade, nos aspetos de legibilidade e muito mais!
O Meu Primeiro Mentor Especialista em Testes
Além disso, durante esses primeiros tempos, tive a oportunidade de trabalhar com um especialista em testes num artigo técnico sobre testes de acessibilidade, que seria submetido a uma conferência internacional de tecnologia.
Enquanto elaborávamos o nosso artigo, com base na nossa experiência e nos conhecimentos adquiridos sobre o tema, encontrei o meu primeiro mentor de testes.
Como era novo na área dos testes, tinha muitas perguntas. O meu colega e mentor ajudou-me a esclarecê-las, orientando-me da melhor forma possível. Era apaixonado pela área dos testes! Esse amor pelos testes era contagiante, e também fui contagiado!
Fazer Networking com Apaixonados por Testes
Adivinhe o que aconteceu a seguir — participámos na conferência de tecnologia onde o nosso artigo foi selecionado!
Durante a conferência de tecnologia, conhecemos uma comunidade apaixonada por testes, tal como o meu mentor. Fiquei maravilhado com o respeito que as pessoas tinham pelos testes e com a forma como planeavam desenvolver as suas carreiras. Conhecemos pessoas, trocámos notas e aprendemos dicas e truques sobre testes!
Have an account? Log In
Recapitulação
O destino levou-me aos testes no meu primeiro emprego, embora o desenvolvimento de automatização fosse a minha paixão original.
A pouco e pouco, descobri como os testes me tinham ajudado a tornar-me um melhor programador! Por fim, percebi como a “mentalidade de testes” me permitia desenvolver scripts de teste de automatização de elevada qualidade.
Tive a sorte de ter a oportunidade de aprender esta perspetiva trabalhando simultaneamente como tester e programador de automatização de testes.
Teste o Seu Código: Seja Exímio como Programador
Durante a minha experiência de trabalho simultâneo como tester e programador de automatização, descobri que um programador que melhora as suas competências de teste acaba por aprender a desenvolver código “melhor”.
Afinal, quanto mais cedo os erros forem detetados no código, menor será o custo. Por isso, se, enquanto programador, conseguir identificar esse erro antes de enviar o código para a equipa de testes, poupará esforço.
Além disso, quando começa a pensar como um tester ideal, dá prioridade à perspetiva de utilização empresarial do produto, o que é muito importante. Começa a pensar “fora da caixa”.
Por exemplo:
Antes de entregarem o código à equipa de QA, os programadores devem realizar testes unitários bem planeados. Desta forma, evitam que surjam defeitos desnecessários no sistema ao nível da integração ou do sistema.
Durante os testes unitários, os programadores testam unidades individuais do código-fonte para verificar se cumprem os requisitos e se o código funciona conforme pretendido.
Além disso, um programador pode envolver-se em testes de integração.
Os testes de integração são uma forma de teste em que os programadores testam os sistemas relacionados ou as unidades de código para garantir que os vários aspetos da estrutura funcionam corretamente quando integrados.
Quais Poderão Ser as Razões pelas Quais os Programadores Ignoram Frequentemente as Competências de Teste?
As razões podem ser qualquer uma das seguintes:
1. A crença prévia de que os testes devem ser realizados apenas por testers
Podem pensar que os testes de software não têm muito que ver com eles ou que não têm muito que ver com os testes de software.
2. Presumem que o seu foco deve estar apenas no aperfeiçoamento da estrutura
Os programadores que se concentram apenas no aperfeiçoamento da estrutura e da documentação, em vez de detetarem erros no software, normalmente acabam por ter uma surpresa desagradável mais tarde.
Se um defeito «aparente» não for detetado pelo programador, quando um testador o deteta, isso implica tempo para reformular o código de modo a corrigir o defeito. Este não é um cenário desejável.
E, como sabe – um programador está mais familiarizado com o código que desenvolveu. Por isso, não seria melhor se o detetasse primeiro, numa fase inicial? Além disso, como resultado, os testadores poderão dedicar tempo e esforço a falhas críticas e de maior prioridade.
3. O hábito de adiar a resolução do problema quando este é detetado pela primeira vez
Os programadores podem presumir que a depuração posterior é mais eficiente. Mas, na realidade, a depuração torna-se mais fácil quando um programador deteta o defeito atempadamente.
A depuração da falha e o número da linha que causou o erro serão apresentados no cenário que falhou quando o programador o detetar pela primeira vez.
Pelo contrário, se o defeito for «empurrado» para mais tarde, isso implicará revisões do defeito, uma depuração aprofundada e tempo para reformulação do código.
Cinco dicas para desenvolver uma mentalidade de testes enquanto programador de testes de automação
1. Ofereça-se para desempenhar uma função de testes
Seria boa ideia oferecer-se para desempenhar uma função de testes, de modo a adquirir experiência prática. Desta forma, os programadores podem aperfeiçoar as suas competências de testes.
E o que pode fazer para assumir uma função de testes?
Bem, a resposta é simples: enquanto procura essa função, pode instruir-se para compreender como «pensa» um testador eficiente.
2. Instrua-se
Leia, discuta, faça brainstorming, coloque questões!
Explicarei mais adiante neste artigo como pode fazê-lo.
3. Crie uma rede de contactos
Os workshops e as conferências são excelentes locais para encontrar especialistas na área dos testes. Aqui pode discutir as suas ideias e preocupações mais importantes, e tenho a certeza de que terá a sorte de encontrar alguém que o possa ajudar.
4. Encontre um mentor
Como mencionei anteriormente, tive a sorte de encontrar o meu mentor, que me fez gostar de testes. É extremamente valioso encontrar um mentor apaixonado por testes, alguém que o oriente.
5. Tenha uma mente aberta e ouça as avaliações dos seus testadores de automação
Haverá alturas em que os testadores que executam o seu código de automação poderão deparar-se com problemas e partilhar as suas preocupações. Ouça-os com uma intenção positiva e ponha as sugestões em prática se considerar que estão corretas.
Os seus colegas testadores abrirão novas perspetivas na sua forma de pensar e, eventualmente, ajudarão a melhorar a forma como escreve código para testes de automação.
Como pode instruir-se sobre testes?
More Articles
Leia blogues e artigos de investigação
Leia muito sobre testes e pratique aquilo que aprende. Temos a sorte de viver numa era em que toda a informação está disponível na Internet.
Assim, pode ler blogues e até artigos de investigação para encontrar conteúdos excelentes que lhe permitam aprender. E também pode contribuir com aquilo que aprendeu!
Participe em seminários e workshops e obtenha certificações
Pode participar em seminários, workshops e conferências que expliquem a área dos testes. Estes são excelentes locais para aprender, partilhar conhecimentos e discutir as suas ideias. Também terá a oportunidade de conhecer pessoas apaixonadas por testes.
Além disso, pode procurar obter certificações de testes, como ISTQB, CSTM, entre outras. Desta forma, aprenderá metodologias, ferramentas, dicas e técnicas de testes para compreender tudo sobre o mundo dos testes.
Conclusão
A mentalidade de um testador e o conhecimento das metodologias, ferramentas, dicas e técnicas de testes são necessários para se destacar como programador de testes de automação. Com efeito, é vantajoso para qualquer programador compreender porquê, quando e como testar.
Quando uma equipa de desenvolvimento testa o seu código de forma eficiente, antes de o encaminhar para ser testado pela equipa de QA, haverá uma melhoria significativa na dinâmica da equipa.
Esta mudança beneficiará todos. Os programadores poderão lançar código de elevada qualidade e os testadores poderão concentrar-se na deteção de falhas críticas que os programadores poderão corrigir posteriormente.
O resultado é um produto de elevada qualidade entregue ao cliente.
Tudo isto é possível aprendendo mais sobre testes, mesmo que seja programador. Se ainda não começou, não se preocupe, nunca é tarde para aprender! Comece por consultar a nossa biblioteca de podcasts! Eis um que selecionámos para si: A GERAÇÃO DA AUTOMAÇÃO AUTÓNOMA E O SEU ASPETO (COM BERTOLD KOLICS, DA MABL)
Leitura relacionada: BOAS PRÁTICAS DE AUTOMAÇÃO NA TRANSFORMAÇÃO DIGITAL




