skip to Main Content

Testes automatizados como solução para entregas mais eficazes

Nos últimos anos a adoção por novas metodologias ágeis por parte dos times de desenvolvimento de Software vem aumentando gradativamente conforme o crescimento do produto considerando o aumento das demandas.  

Rodrigo Bittencourt de Lima aborda que devido a crescente adoção de novos métodos ágeis dentro do desenvolvimento do Software, diversos processos precisaram ser adaptados a sua realidade.  

Diante deste contexto considera-se a qualidade do Software como parte importante de uma entrega do produto ao cliente final, sendo este um fator recorrente a mudanças. 

Definição de qualidade de software e seu impacto 

Quando falamos em qualidade de Software devemos levar em consideração a constante evolução dos processos que vem sofrendo inúmeras mudanças durante o ciclo de desenvolvimento do produto. Por exemplo: 

  • Demandas de desenvolvimento entrando no ciclo num espaço curto de tempo. 
  • Crescimento do mercado digital. 
  • Busca por soluções mais eficazes. Clientes buscando por produtos com alta qualidade 
  • Funcionalidade adequada a cada cenário. 
  • Alto desempenho e garantia na integração dos dados. 

Contudo, controlar a qualidade de um Software se torna desafiador, pois cada vez mais os sistemas estão elevando seu nível de complexidade e adotando novos modelos em seu processo de desenvolvimento. É o que dizem Paulo Cheque Bernardo e Fabio Kon na revista Engenharia de Software Magazine. 

A agilidade no desenvolvimento de software e análise de testes 

Quando se trata de atender a grandes demandas em um espaço curto de tempo, diversos fatores devem ser levados em consideração, tais como: 

  • Tempo de análise. 
  • Tempo de priorização. 
  • Tempo de desenvolvimento. 
  • Tempo de testes. 
  • Tempo de entrega da solução ao cliente final. 

Considerando que uma entrega precisa ser realizada dentro de um determinado período em uma data acordada com todo o time, o tempo começa a correr contra o relógio, tornando o processo de desenvolvimento da solução cada vez mais desafiador para todo o time.  

Diante de cada etapa: análise, priorização, desenvolvimento, testes e entrega, temos processos que se tornam repetitivos e demorados, impactando a entrega dentro do prazo com uma qualidade mais robusta. Este processo repetitivo pode ser encontrado na atividade de teste e validação manual da funcionalidade implementada. 

Ainda existem Softwares no mercado que são testados de forma totalmente manual, o que demanda tempo, alto custo e consequentemente se tornam repetitivos. Estes testes podem gerar retrabalhos futuros e estão sujeitos a falhas. Quando falamos em tempo de teste estamos falando do tempo dedicado a cada teste funcional da aplicação. 

 Por exemplo: imagine que o seu time liberou uma atividade na qual pode impactar todo o processo do sistema, esta atividade precisa ser testada e entregue em menos de oito horas, como você faria? Como atuaria diante deste cenário? Entregaria sem garantia de qualidade? Atingiria o objetivo realizar o máximo de cobertura possível nos testes manuais dentro deste espaço de tempo? Existe um alto custo realizar todo este trabalho de forma manual, já pensou ter que testar toda a funcionalidade da aplicação como um todo, em um tempo reduzido, e de forma manual? 

Rodrigo de Lima retrata que, quando um erro é encontrado na execução de um determinado cenário de testes, a equipe de desenvolvimento deve se encarregar de corrigir e liberar novamente a atividade para validação, onde todo o fluxo de teste realizado inicialmente será repetido. E assim sucessivamente, sempre que erros forem encontrados e corrigidos pelo desenvolvedor. 

Os testes automatizados como solução 

Diante deste contexto surge a ideia de tornar o processo de teste automatizado. Os testes automatizados são rotinas que há pouca ação humana envolvida, onde diversas funcionalidades podem ser executadas, segundo Rodrigo de Lima.  

Com este processo é possível reduzir o custo do teste, o custo do tempo, o retrabalho bem como evitar a execução dos testes de forma repetitiva. Paulo Bernardo e Fabio Kon retratam que os scripts de testes automatizados podem ser simulados e executados diversas vezes em diferentes situações especificas onde os passos essenciais não serão deixados de lado por uma falha humana, facilitando a identificação de um comportamento não desejado no Software. 

Com a utilização da automação do teste de Software, todo o esforço necessário para executar um teste funcional que requer grandes quantidades de fluxos pode ser reduzido em um curto espaço de tempo e serem executados de forma automática sempre que acionados. É o que afirma Eliane Collins no IX Simpósio Brasileiro de Qualidade de Software.

Devemos levar em consideração que o tempo gasto para desenvolver scripts de testes automatizados é relativamente alto, dependendo de cada realidade do projeto em que será desenvolvido. Desenvolver os scripts automatizados pode demorar mais do que a execução do manual do teste. 

 Porém, pensando em uma realidade próxima, se o desenvolvimento destes scripts for reaproveitado para os próximos testes que estiverem sujeitos a execução futura de outras atividades, o tempo que seria gasto executando o teste de forma manual será totalmente desconsiderado, podendo ser utilizado em um outro teste exploratório da funcionalidade, ou seja, o script pode ser reaproveitado para cenários futuros. 

Conclusão 

Concluímos então que a adoção de novas metodologias dentro do desenvolvimento do Software requer mudanças, e que diante dessas mudanças temos o contexto de qualidade, no qual vem crescendo gradativamente conforme a procura por Softwares com qualidade. Dentro de um cenário de desenvolvimento podemos executar diversos processos para a melhoria da qualidade do produto e proporcionar uma ótima experiência ao usuário final, um destes processos é o teste de Software, porém a etapa de testes de Software é uma etapa demorada, exaustiva e repetitiva quando executado de forma manual.  

Com o intuito de melhorar a escalabilidade do teste foi apresentado a importância de adotar os testes automatizados dentro dos processos de teste do projeto. Com esta implementação podemos ter grandes resultados como: diminuir o tempo do teste, teste menos exaustivo, não tornar o teste repetitivo, melhorar a qualidade e a confiabilidade do teste, cobertura dos testes em maiores quantidades e por fim utilizar o tempo de teste funcional para a execução de testes exploratórios, enquanto os demais cenários relacionados a cada funcionalidade seja testado de forma automatizada, tendo assim uma melhoria na performance do teste de Software, consequentemente entregando dentro do prazo. 

 

Referências: 

BERNARDO, Paulo Cheque; KON, Fabio. A importância dos testes automatizados. Engenharia de Software Magazine, v. 1, n. 3, p. 54-57, 2008. 

COLLINS, Eliane F. et al. Experiência em Automação do Processo de Testes em Ambiente Ágil com SCRUM e ferramentas OpenSource. IX Simpósio Brasileiro de Qualidade de Software, 2010. 

LIMA, Rodrigo Bittencourt de et al. Testes de integração automatizados sobre API Rest do software Hawa. 2019. 

 

Compartilhe:

This Post Has 2 Comments

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *

Back To Top