Muitos imaginam que a Qualidade de um software pode ser medida de acordo com a felicidade do cliente, o quão satisfeito ele está. Em partes, até que pode ser real. Mas também podemos pensar que a qualidade de uma solução está atrelada ao (1) número de defeitos encontrados após a instalação em um cliente, (2) qual a severidade de cada defeito, porque isso pode impactar na utilização, (3) e o tempo e o custo de correção para cada defeito.
Com problemas encontrados após a instalação, o custo dessas correções e o transtorno gerado acaba sendo um preço muito alto a se pagar. Tanto para quem solicita o serviço quanto para quem executa as correções. Fidelizar um cliente feliz é um bom caminho para conquistar novos. E já que tempo é dinheiro, sabendo utilizá-lo já é um sinal de lucro.
Nos dias atuais, devido à grande concorrência entre as empresas, o projeto tem um tempo curto para ser desenvolvido, porque somos a geração do “agora”. Então tanto para quem constrói a solução, quanto para quem usa, o tempo faz uma grande diferença. Acaba sendo um ciclo de interesses em comum.
Seguindo essa ideia, por mais que metodologias ágeis sejam utilizadas, se no ciclo de vida de desenvolvimento do projeto não houver um plano de testes, essa solução não será bem sucedida.
E então você pode questionar, mas o que colocar nas provas de testes? Seria um teste preencher todos os campos com valores inesperados e salvar? Não preencher nada e salvar? Clicar em todos os botões na página mais de uma vez? Utilizar browser diferente para cada teste? Utilizar banco de dados distinto? Tentar várias combinações? Comparar resultados? Sim! Pode ser tudo isso e muito mais. Será que um ser humano conseguiria fazer o mesmo teste minucioso mais de uma vez? Mesmo em fase final de entrega? Acredito que não existiram testes 100%. Dessa forma, podemos pensar que Testes Automatizados é a solução para vários cenários que precisam ser verificados inúmeras vezes, isso porque o código é modificado várias vezes durante o ciclo de desenvolvimento e, para cada alteração é necessário confirmar que nada que já tenha sido testado, parou de funcionar e você perder mais tempo fazendo a manutenção de um artefato de teste em si do que vendo valor na execução dos testes de regressão.
Seguindo essa idéia, podemos afirmar que Automatizar os testes é uma forma de ser eficiente e pró-ativo para validar um produto. É seguir a dica do provérbio do início do texto.
Teste Automatizado nada mais é do que ter ações pré-definidas para cada cenário a ser testado, quantas vezes necessário for.
Num primeiro momento, a automação pode ser recusada, já que o investimento para criar uma infraestrutura, dar treinamento e manter a automação é alto. Afinal profissionais que trabalham com testes, em grande parte, tem mais experiência em testes num modelo antigo, onde não havia investimentos para focar em automação e nas tecnologias que tornam a automação possível. Hoje em dia, precisariam ser treinados para desenvolver um Framework de Teste, onde seria possível codificar um Caso de Teste, em uma linguagem JAVA ou outra utilizada pela empresa – lembrando que nem todos os tipos de testes estão eleitos a serem automatizados.
Após isso, o custo desse ambiente será mais baixo do que manter uma pessoa testando manualmente e o risco de não ter testado todos os cenários cairá drasticamente. Além disso, se o Framework desse ambiente de Automação for criado com base em Programação Orientada a Objeto, esse mesmo design poderá ser reutilizado em outros projetos.
E, então você pode pensar: “por que ter uma pessoa de teste se posso automatizar?” Porque a pessoa de teste pode dedicar o tempo para executar testes que agreguem valores ao projeto como testes de usabilidade, acessibilidade, performance, segurança e testes exploratórios.
Teste Automatizado é a melhor maneira de aumentar a eficácia, eficiência e cobertura do seu teste de software. E, uma forma de converter esse tempo investido no desenvolvimento de um ambiente automatizado em cifras e reconhecimento com o passar do tempo.
Leave a Comment