4-Motivos-Automação-de-Testes

4 Motivos para Começar a Automação de Testes Agora

Introdução - Automação de Testes

Logo mais veremos 4 bons motivos para iniciar a abordagem de Automação de Testes!

Mas antes uma história…

Charles é Analista de Qualidade e trabalha há um ano na empresa XPTO. Em sua entrevista de admissão a empresa lhe informou que tinha uma cultura ágil e que prezava muito pela qualidade de seus sistemas. Charles pensou então que estava no lugar ideal para mostrar todo o poder da automação de testes para os times de desenvolvimento.

Um ano se passou e Charles acabou tornando-se apenas um testador de software. E o pior… não conseguiu automatizar os seus testes porque a empresa acreditava fortemente que era um gasto absurdo de tempo e queria garantir a entrega dos produtos da forma mais rápida possível. “Se está funcionando é o que importa” era a mentalidade que predominava. Charles passava horas para identificar bugs do time de desenvolvimento e precisava sempre apagar incêndios. Então ele resolveu ir para outra empresa, enquanto a XPTO perdeu a credibilidade ao passar dos anos e viu os lucros serem reduzidos a pó.

Apesar de fictícia, essa história reflete a realidade de muitas empresas que ainda não acordaram para a “Nova Qualidade” e ainda utilizam as poucas e últimas horas do projeto para realizar os testes de forma manual.

1 - Redução de tempo e esforço gastos com testes manuais

Em projetos ágeis, espera-se que pequenas partes do produto estejam prontas para rodar ao final de cada iteração, sendo indispensável que sejam executados testes regressivos para garantir que o software continue rodando corretamente após a funcionalidade incrementada, e executar esses testes de forma manual torna-se uma tarefa impossível a cada iteração. Os desenvolvedores precisarão parar a codificação para realizar esses testes ou será necessário contratar mais testadores para a equipe. O resultado disso será o aumento de débito técnico, pois a complexidade do software crescerá, haverá aumento gradativo nos custos do projeto e tudo isso somado acaba gerando um sentimento de frustação em toda a equipe e nos stakeholders.

Quando existe um planejamento de testes em que a Automatização é distribuída corretamente entre as camadas de unidade, serviço e interface, os desenvolvedores amadurecem no design da aplicação e os testadores terão mais tempo para explorar bugs mais graves deixando a suíte de testes reportar os bugs mais simples.

Testar manualmente diferentes cenários pode durar muito tempo, especialmente quando esses testes são feitos através de uma interface de usuário. Entrar com os dados para cada complexidade de cenário pode ser uma tarefa colossal se não houver uma forma automatizada para acelerar o processo. Isso resultará em apenas uma pequena quantidade de cenários sendo testados e bugs graves podem escapar para produção.

2 - Confiabilidade nos Testes

Testes manuais são repetitivos e se tornam chatos rapidamente quando que você precisa seguir um script de testes, entrar com vários dados e repetir rotinas diversas vezes. Além disso quando o prazo para a entrega fica apertado há uma tentação em deixar de testar alguns cenários ou executar os testes de forma descuidada. Assim fica quase certo que bugs passarão sem serem percebidos. Automatizar esses testes elimina a possibilidade de erros, pois eles serão executados sempre da mesma forma.

Criar uma esteira de testes que seja executada sempre antes do produto ir para a produção garante que todos os cenários planejados possam ser testados sem atalhos.

Um outro ponto a destacar é a dificuldade de realizar a correção de um bug ou incrementar novas funcionalidades sem um pacote de testes automatizados. É necessário garantir que após a correção, ou mudança, as demais partes do software continuem funcionando. Uma forma de obter essa segurança é com uma boa cobertura de código através de testes de regressão.

3 - Possibilidade de explorar outros testes

Uma vez que os testes são automatizados em cada camada da aplicação, os testadores possuem mais tempo para explorar outros cenários e executar outras estratégias de testes que só podem ser feitas de forma manual e, com isso, podem aprender mais sobre a aplicação. Logo, a qualidade do produto aumenta, os esforços são concentrados em melhorar a aplicação através da Refatoração, outras métricas de qualidade podem ser identificadas e aplicadas e a equipe não é consumida com vários débitos técnicos.

4 - Feedbacks mais rápidos

Quando aplicamos Automação de Testes, queremos que, quando houver mudanças no software, seja verificada a integridade da aplicação. A execução da suíte pode detectar um problema decorrente da alteração de um código. E assim podemos rapidamente executar a correção, o que é bem melhor do que detectar esse problema quando a funcionalidade já estiver em produção.

Além disso, também podemos citar o ganho de qualidade no próprio designer do software. Testes Automatizados nos permitem identificar com frequência quando uma página de formulário demora para ser submetida, quando uma API que atualizou o seu contrato quebrou a retrocompatibilidade com algum consumidor, ou quando uma superclasse deve ser decomposta em classes menores favorecendo as boas práticas de programação.

Automação de Testes VS
Automação de Testes - Comparação

Conclusão

Times que vivem de testes manuais acabam detectando os problemas tardiamente e a sprint é engolida por débitos técnicos, bugs diários, não conseguem otimizar o tempo para testar todos os cenários e acabam deixando de lado testes importantes e que possam capturar falhas críticas. Toda essa bola de neve gera um sentimento de frustação para toda a equipe e para os demais interessados, além de comprometer drasticamente a qualidade de software.

Com isso, Automação de Testes se tornou a solução mais inteligente. Testes Automatizados quando aderidos como parte importante da cultura de um desenvolvimento ágil geram alto retorno sobre o investimento, pois permitem que o time detecte falhas antes do sistema ir para produção permitindo a correção rápida do problema, assim como planejar a estratégia de testes de forma mais qualitativa, e de concentrar seus esforços em entregar um bom produto de forma rápida e eficiente.

Gostou do artigo? Quer saber mais? Deixe sua opinião sobre esse tema e conecte-se com a P4Pro!

Deixe um comentário

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

Rolar para o topo