Inovação e Tecnologia

Os testes de software têm uma grande contribuição para o sucesso de um produto. Quando um software é entregue apresentando falhas, tem grandes chances de que isso esteja acontecendo devido ao não desenvolvimento de uma etapa de testes no desenvolvimento de software. 

Com isso, as falhas continuarão acontecendo e a maioria das pessoas não o comprará ou o usará... pelo menos não por muito tempo.

Nesse sentido, testar para encontrar defeitos — ou bugs — apesar dos grandes benefícios, pode ser demorado, custoso financeiramente, muitas vezes repetitivo e sujeito a erro humano. 

Por isso, dependendo do software e dos problemas encontrados, um caminho para agilizar os testes é automatizá-los.

Por que devo automatizar os testes de software?

Os testes automatizados nada mais são que um conjunto de instruções (código) criado para validar todas as funcionalidades de um sistema, mas sem a necessidade de um ser humano para isso.

Vale ressaltar que, apesar de os testes serem feitos sem a presença humana, é necessário que uma pessoa crie o código tanto do que será testado, como do modo que será testado aquele sistema. Além disso, esses códigos criados também passam por testes e manutenções quando uma nova funcionalidade ou mudança é implementada no sistema.

Benefícios de automatizar testes 

Os testes automatizados, além de reduzir o tempo dos ciclos de desenvolvimento, aumentam a execução dos testes, promovendo um ganho de produtividade. Com isso tarefas repetitivas e incômodas são evitadas, como também ajudam a melhorar a qualidade do software, reduzindo custos e riscos e aumentando a produtividade.

Em 2016, Divya Kumar e K.K. Mishra estudou os impactos da automação de testes no custo e qualidade de software. De acordo com um estudo realizado, concluiu-se que o uso de testes automatizados, principalmente testes longos e que necessitam de várias execuções, pode dar retornos notáveis e expressivos. 

A automação de testes aumenta a eficácia geral do processo quando temos tarefas de teste repetitivas e semelhantes, um exemplo é a famosa pirâmide de testes. Essa pirâmide expressa a relação entre quantidade de testes por tipo/camada que deve ser empregada em um software. 

Assim, torna-se necessário mais testes no código (testes unitários) e menos testes manuais, o que repercute em maior ganho de velocidade e menor custo. Nesse sentido, o uso de testes automatizados nas camadas mais abaixo da pirâmide (testes unitários e de integração) contribuem para essa eficácia.

Fonte

Dado a importância da automação de testes no ciclo de desenvolvimento de software, é importante que o analista de qualidade de software siga algumas práticas para alcançar esses benefícios. Assim, vai algumas dicas abaixo que podem auxiliar.

Dicas para automatizar testes no desenvolvimento de software

Analise e defina quais cenários deve automatizar 

Para ter uma automação eficiente e satisfatória é importante planejar minuciosamente quais cenários serão testados, sempre levando em consideração os pontos mais críticos do sistema, no qual está a regra de negócio, e que de forma alguma não podem ocorrer falhas, pois impacta diretamente o funcionamento do sistema, e que pode gerar insatisfação do cliente.

A automação é importante, principalmente quando está relacionada à quantidade de vezes que um determinado teste pode ser repetido. Quando são cenários, testes realizados apenas uma vez, os manuais são mais vantajosos. 

Dessa forma, ao deixar bem visível quais os cenários serão testados através do plano elaborado e tendo a visão da importância da automação, o analista de qualidade de software consegue definir os cenários prioritários, mais importantes automatizar, e quais não é necessário. 

Os testes de regressão, por exemplo, são testes que temos que validar funcionalidades que já foram testadas para garantir que as novas implementações não comprometerão o que já estava funcionando. 

Assim, como precisamos repetir testes já feitos e fazer o que chamamos de “caminho feliz” da aplicação, a automação é uma grande aliada para garantir uma boa cobertura de testes, com ganho de tempo.

Automatize cada cenário de forma gradativa

É interessante que, ao iniciar um projeto de automação, o analista de qualidade de software tenha conhecimento dos fluxos e regras da aplicação, seja ela web ou mobile. As automações com os fluxos mais simples, como um login, por exemplo, devem ser iniciadas primeiro.

Depois, se deve seguir para a automação com os fluxos mais extensos, seguindo o sentido do mais fácil para o mais difícil. Na maioria das situações ficará nítido que os fluxos simples e repetitivos ocupam mais tempo de teste.

Crie testes automatizados que possam ser reutilizados

Ao criar os scripts que serão automatizados, se deve evitar o agrupamento de vários testes em um mesmo caso. É interessante que para cada caso haja um script independente. Com isso, todos eles podem ser agendados de uma só vez para serem executados a qualquer momento e, em paralelo, ou seja, em diferentes ambientes. 

Além disso, é fácil reutilizar a lógica contida em outros casos, assim, o tempo necessário para criar um novo é minimizado, garantindo maior flexibilidade, agilidade, etc.

Escolha bem qual ferramenta utilizar

Escolher uma boa ferramenta de teste automatizada é de extrema importância. Dentre as várias opções no mercado, é importante escolher a ferramenta que melhor atenda às suas necessidades gerais. 

Analise a arquitetura da aplicação que a organização que você trabalha possui e identifique todos os aplicativos e tecnologias que podem ser potenciais alvos para automação e servem para a sua aplicação. 

Além disso, é preciso verificar os cenários em que os casos de teste precisam se mover entre tecnologias, por exemplo, entre aplicativos da web e de desktop, e selecionar uma plataforma de automação que tenha recursos correspondentes.
Por fim, é interessante fazer alguns questionamentos que podem auxiliar na sua escolha:

  • Quem usará a ferramenta para testes? Serão desenvolvedores ou equipes de controle de qualidade? 
  • Ela pode ser integrada a pipelines ou cadeias de ferramentas CI/CD?
  • É fácil manter scripts e reutilizar ativos de teste?
  • Qual é o orçamento da sua equipe? Onde você pode obter suporte para problemas técnicos?

Diante disso, a título de informação, segue as ferramentas de testes automatizados mais conhecidas:

Fonte

Além disso, dentre essas ferramentas segue algumas informações sobre os recursos que cada uma possui, que pode auxiliar na escolha:

Fonte

Dica bônus: para aqueles(as) QAs que desejam certificação pela da ISTQB (International Software Testing Qualifications Board), existe uma focada em automação de testes: CT-TAE (Certified Tester - Test Automation Engineer).  

E se quiser entender mais sobre a relação entre desenvolvedores e analistas de qualidade de software, leia o artigo abaixo:

A parceria entre QA e DEV no desenvolvimento de software

Author

Julião Medeiros

Analista de Qualidade de Software

Posts relacionados

Todos os posts

Não perca as nossas atualizações!

Assine para receber a newsletter da Vsoft e fique por dentro do mundo da identificação e tecnologia.

Obrigado! Recebemos sua mensagem!
Oops! Algo deu errado no envio do formulário.
Tente novamente em instantes.
go  top