Falando em automação

1. O que é automação de testes?
Automação é o ato de executar e controlar processos operacionais por meio de dispositivos mecânicos ou eletrônicos.
Na automação de testes de softwares temos uma sequência de ações a serem executadas no intuito de simular um usuário real, ou vários usuários simultâneos ou não, a fim de testar a navegabilidade, verificar se as funcionalidades cumprem os requisitos especificados, e até mesmo analisar o comportamento do sistema quando exposto a um auto índice de processamento. Também podemos pensar em automação de testes como um suporte as atividades de monitoramento de produção e ambientes de desenvolvimento, interpretação ou formatação de arquivos de log ou ainda a criação de casos de teste. Esse ponto, evidenciando que automação é uma ferramenta mais ampla, fica evidente nas conversas com o Richard Bradshaw ( https://www.softwaretestpro.com/richard-bradshaw-automation-in-testing/) e outros representantes da comunidade Ministry of Testing.
2. Por que automatizar?
A automação permite que ações sejam executadas de forma consistente e repetitiva, sem variação no resultado final. Portanto, automatizar testes aumenta a precisão nos resultados, uma vez que os dispositivos de execução estão livres de vícios humanos, desgastes e cansaço, desta forma, o profissional de testes/QA poderá realizar uma análise mais detalhada no planejamento de seus cenários, uma vez que a automação reduz o tempo e os esforços aplicados na execução dos testes.
3. Quando aplicar?
A equipe precisa estar alinhada e o negócio precisa estar definido para que a automação dos testes seja viável.
4. Tudo pode ser automatizado?
Desde que haja tempo, conhecimento e disposição, tudo pode ser automatizado. Porém, nem sempre vale a pena automatizar tudo: pode ser uma boa estratégia priorizar as regras de negócio e as funcionalidades complexas, concentrando mais esforços na automação de testes unitários e serviços. Deve-se levar em consideração se o esforço necessário para automatizar uma ou outra tela é uma boa contrapartida ao benefício que aquele teste trará.
5. Qual linguagem utilizar?
A linguagem depende do projeto, do sistema a ser testado, da compatibilidade. É legal, sempre que possível, utilizar a mesma linguagem que o time de desenvolvimento realiza as suas implementações, até pela facilidade em se obter uma ajuda dos nossos amigos desenvolvedores.
Dica do Gabriel: use uma linguagem de programação que a equipe de desenvolvimento já utiliza, afim de aproximar-se do que eles fazem, melhor entender como o produto é desenvolvido e até pedir ajuda deles num design pattern (padrão de desenho) ou seletor mais cabeludo.
6. Por onde começar?
Ter noções de lógica de programação é essencial para automação de testes, este pode ser o primeiro passo. Depois é só escolher uma linguagem com a qual se tenha alguma simpatia, de forma a tornar o aprendizado mais prazeroso e simples. Participar de comunidades ajuda bastante: sempre tem um pessoal disposto a ajudar. A dica é não ter medo. Tem muita coisa na Internet. Escolha uma linguagem e um framework, e mãos à obra.
Dica da Bruna Monq: por experiência própria, recomendo começar com aplicações Web, utilizando ‘Cucumber’ e escrever os scripts de testes em ‘Ruby’.
Caso opte em seguir a dica acima, segue alguns link’s que podem ajudar:
Comunidades recomendadas:
Você pode obter ajuda no nosso site ‘Falando em testes’ ou no nosso grupo do WhatsApp: https://chat.whatsapp.com/Bt0B7trqGvi8TESb89su1E
Sudeste:
Sul:
Conhece outros grupos ou comunidades?
Compartilhe com a gente!
Este artigo foi baseado no vídeo acima: um bate-papo entre Gabriel Oliveira, Ricardo Kenichi e Eleandra Bruna (Bruna Monq).
Tem uma sugestão de tema a ser abordado nos próximos hangouts ou quer participar?
Conheça o autor:
Pós graduada em Engenharia da Qualidade Software — SENAC
MBA em Engenharia da Produção — UNESP
Graduada em Automação Industrial — UNIPExperiência em planejamento e execução de teste de software funcional para dispositivos móveis (Windows Mobile) e plataforma web. Conhecimentos em análise, qualificação e desenvolvimento de novos processos visando a qualidade do produto final.
Originally published at http://ftstblog.wordpress.com on May 28, 2018.