Nesses últimos anos o ciclo de desenvolvimento de software passou por uma evolução que compreende desde a fase de construção até a entrega dos produtos ao mercado. As metodologias ágeis tiveram uma grande participação nessa mudança, quebrando vários paradigmas e mudando o perfil dos profissionais de tecnologia.
Sob a garantia de qualidade, o processo de testes de software incorporou a automação de testes como principal aliada a uma metodologia de trabalho com entregas em períodos mais curtos (sprints), e uma participação mais efetiva, mais próxima do time de testes junto à equipe de desenvolvimento.
A execução do teste manual continua sendo importante e utilizada principalmente quando não ocorre a viabilidade da automação, por isso durante a fase de planejamento é preciso verificar qual ou quais as metodologias serão aplicadas, uma vez que é possível mesclar o uso da automação durante o teste de software junto com a execução manual.
Os benefícios dos testes manuais e automatizados
Os testes automáticos surgiram com o objetivo de aperfeiçoar o processo de execução. Eles permitiram, por exemplo, a repetição de uma grande massa de testes em um tempo menor e com o número reduzido de testadores.
Mas é bom destacar que não são técnicas excludentes, como foi dito anteriormente. É preciso verificar a viabilidade, tanto econômica quanto a arquitetura utilizada pela solução que está sendo desenvolvida. Vamos analisar os benefícios de cada uma.
Execução dos testes de software de forma manual
O principal benefício do uso de testes manuais é a observação humana. Com ela é possível utilizar características como:
- Conhecimento prático do testador
- Experiência
- Habilidades analíticas e lógicas
- Uso da criatividade e intuição
Outro fator importante ao se considerar os testes manuais é a percepção quanto à facilidade de uso do aplicativo. Isso significa verificar na visão de um usuário final o quanto o software é eficiente e atende as necessidades reais.
Transformar essa compreensão e uma visão mais crítica do aplicativo em testes automáticos torna-se inviável. Ocorre uma complexidade difícil de ser transformada em código e com uso de ferramentas de automação.
Execução através da automação dos testes
Uma das principais razões para a automação dos testes sem dúvida é redução de custos, entretanto é bom destacar que existe uma lista de ganhos quando se utiliza essa técnica de teste.
- Confiabilidade
Com o uso de ferramentas e scripts é possível um processo repetitivo de testes sem que ocorra a fadiga humana, comum em testes manuais. Dessa forma temos resultados mais confiáveis.
- Redução de tempo
Com a automação dos testes é possível realizar a execução de uma grande quantidade de testes em um tempo menor, comparando-se à velocidade normalmente alcançada nos testes manuais.
- Redução de custos
Apesar da necessidade de investimentos quanto ao licenciamento de software e infraestrutura, a médio e longo prazo todo o capital utilizado consegue ser diluído na execução do projeto. As despesas relativas à construção e manutenção do software chegam a ser menores devido à necessidade de um time reduzido de testadores.
Podemos verificar que as técnicas são complementares. Dentro da estratégia de testes sempre existirá espaço para mesclar a execução dos testes manuais e automatizados. Claro que a automação sempre nos levará a resultados melhores e custos atrativos.
O que se deve considerar na escolha da estratégia
Durante a fase de planejamento dos testes precisamos ter em mente alguns pontos importantes que nos ajudam na escolha da estratégia a ser utilizada.
- Cronograma do projeto
- O público-alvo
- Os custos do projeto
- A complexidade da aplicação
Além desses pontos é preciso verificar a criticidade do software frente ao negócio e avaliar também todas as variáveis para, desta forma, fazer a escolha da estratégia correta de testes.
Em que momento utilizar cada estratégia?
Após verificar os benefícios de cada um é preciso decidir a estratégia mais adequada a ser utilizada no processo de testes.
Os testes manuais são mais utilizados nos seguintes cenários:
- Testes exploratórios
- Testes de usabilidade
- Testes de aceitação
Para esses testes, experiências e habilidades humanas como criatividade e a intuição do testador são mais utilizadas, e trazem resultados mais interessantes.
Os testes automáticos são a opção para os seguintes cenários:
- Testes de regressão
- Testes de carga e desempenho
A necessidade de repetição e a simulação de grandes volumes de transações fazem com que a automação seja a melhor abordagem a ser utilizada na estratégia de testes.
Com todos esses fatores em mente, é possível encontrar a melhor abordagem a ser utilizada no projeto e obter a qualidade esperada dos produtos, bem dentro do orçamento e cronograma previstos.
Qual método você usa para testes de software em seu projeto? Compartilhe conosco nos comentários. Mantenha-se atualizado sobre tudo que acontece em testes de software através dos nossos artigos e das redes sociais da Base2.
Comentários