Automação Zero to Hero – Saiba como começar a automatizar seus testes
Por Caroline Calixto de Oliveira Smanioto
Você já se pegou pensando em como implementar a automação de testes em um projeto? Ou então, que é algo muito obscuro e distante de ser aplicado? Sabemos como um projeto pode ser conturbado e que quase sempre a automação de testes é deixada de lado.
Pensando nisso, decidi compartilhar um passo a passo que me ajudou a sair do Zero e chegar no Hero para automatizar os testes. Ao longo do texto irei abordar pontos chaves na busca da implementação que vai te garantir mais precisão nos resultados e rápido feedback nos testes.
Conheça seu cenário!
O primeiro passo é conhecer o cenário atual. Já houve tentativas de aplicar automação? Se sim, como foi abordado? O que foi escolhido para usar? É importante saber esses pontos, conhecer as habilidades do time e identificar nas tecnologias utilizadas o que funcionou, o que pode ser reaproveitado e o que não deu certo de forma alguma.
E, se ainda não houve iniciativa de automação dos testes, pode ser interessante avaliar as tecnologias que são utilizadas no projeto para não fugir muito do que já está sendo feito e manter a consistência entre o time e o projeto como um todo.
Vale a pena automatizar todos os testes?
Automatizar todos seus testes seria incrível, certo? Nem sempre! Além do tempo que pode consumir no desenvolvimento, não são todos os que geram algum valor ao projeto. Imagina automatizar aquela funcionalidade complexa, porém pouca utilizada pelo cliente? Seria desperdício de tempo. Portanto, considere automatizar:
- Testes que possuem maior valor ao negócio do cliente;
- Testes repetitivos – permite que a automação lide com precisão com os testes que se repetem com frequência;
- Testes de regressão – pois precisam ser executados sempre que uma nova funcionalidade é aplicada/alterada;
- Testes de fumaça (Smoke Tests) – validação dos pontos principais de uma funcionalidade.
Escolha bem as ferramentas
Existem muitas ferramentas de automação de testes por aí, sejam elas pagas ou gratuitas, mas como escolher a que realmente vai agregar valor? É importante escolher as ferramentas – sendo ela uma IDE, framework, linguagem de programação – levando em consideração o que cada uma oferece.
Por exemplo, se o time irá trabalhar com C# todas as ferramentas devem comportar essa linguagem. Uma boa dica é optar por ferramentas que possuam documentação, fórum e etc. sobre elas, pois toda vez que você obter uma dúvida ou dificuldade terá um acervo para recorrer.
Mas no final o importante é o time estar de acordo, já que todos tem o mesmo objetivo: garantir a qualidade de tudo o que está sendo desenvolvido.
Versionamento
É interessante também, procurar uma ferramenta de controle de versão, para a organização e gerenciamento do código. Isso facilitará para todos que forem implementar, e ou, alterar os testes. Afinal, não queremos manter o código somente na nossa máquina e correr o risco de perder todo o trabalho feito, certo?
Coloque no papel
Já sei meu cenário atual, quais testes vou automatizar e quais ferramentas utilizar: e agora? Chegou a hora de documentar esse planejamento! Uma vez que conhecemos a aplicação, o time, e todos os outros fatores que conversamos anteriormente, precisamos partir para a documentação.
É interessante que seja definido um processo a ser utilizado no projeto de automação, como o Scrum por exemplo, que visa entregas rápidas de valor e em pequenos ciclos. Além disso, documente quais pontos da aplicação serão automatizados, quais ferramentas serão utilizadas e alinhe tudo com o time.
Este passo talvez seja o mais importante, pois precisa estar claro para todos o que será feito, como e qual o objetivo. Sem planejamento as chances de você não conseguir alcançar o objetivo final é grande, ou até mesmo pior, é provável que você não saiba a onde quer chegar!
Automatizando os testes: Mão na massa
Saiba os cenários de testes primeiro
Com o plano definido, podemos começar a desenvolver nossos testes propriamente ditos. Comece criando os cenários que serão automatizados. Portanto, documente os casos que a automação deve cobrir, quando se sabe a sequência lógica de passos a serem seguidos e os resultados esperados fica muito mais claro (e fácil) como o teste deve ser codificado.
Desenvolva os testes pouco a pouco
Não se preocupe em querer automatizar tudo de uma vez. Comece aos pouquinhos e vá aumentando gradativamente, afinal se você seguir arrisca os dois passos anteriores você terá em mãos um plano traçado e arrisco em dizer que inevitavelmente saberá o objetivo dele.
Portanto, comece pouco a pouco e vá evoluindo seus testes gradualmente para ficarem cada vez mais entendíveis, performáticos e efetivos.
Execute os testes automaticamente
Agora é só executar, certo? Sim, porém pode ser estressante ter que sempre executar os testes manualmente, se preocupando em não os esquecer. O melhor dos mundos seria rodá-los automaticamente usando alguma ferramenta de integração contínua. Pois desta forma, os testes seriam executados automaticamente assim que houvesse uma nova implementação de código e, rapidamente, proveria feedback: apresentando se os testes passaram com sucesso ou se houve alguma falha.
Compartilhe com o time
Depois de realizar todo o processo e ter os testes desenvolvidos, é interessante compartilhar os resultados alcançados com o time e demais envolvidos. Manter todos na mesma página faz com que a comunicação seja mais efetiva e que todos tenham conhecimento se o que foi desenvolvido está de acordo com o planejado e entender os porquês que podem surgir. Avaliar o processo é sempre uma forma de aprender mais e aplicar melhorias nos próximos ciclos.
Só não se esqueça de manter seus testes atualizados! Caso alguma alteração faça com que algum teste fique defasado, procure ajustá-lo. Mantê-los sempre funcionando é o maior desafio, mas também é a melhor forma de continuar colhendo os frutos que só a automação pode trazer.
Por fim, planejar e implementar automação não parece mais tão obscuro assim, não é mesmo? Afinal, quando se sabe o caminho a seguir para automatizar seus testes, fica muito mais fácil visualizar o que de valor vai ser gerado, como por exemplo: testes importantes para o cliente, respostas mais rápidas e frequentes, e o aumento da profundidade dos testes, o que é claro, vai potencializar a qualidade do projeto.
Caroline Calixto de Oliveira Smanioto é QA Analyst certificada ISTQB com 7 anos de experiência em projetos nacionais e internacionais. Entusiasta da Automação de Testes, tem se aprofundado cada vez mais em tudo que envolve esse universo.