A área de tecnologia se expande cada vez mais, tornando-se um mercado bastante aquecido para…
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.
Ótimo site!
Parabéns!!!
Desejo-lhes sucesso.
Muito obrigado!