10
abr 17

Por que automatizar testes de software?

Por que automatizar testes de software?

Eventualmente, quando trabalhamos com desenvolvimento de software, temos que tomar a decisão de automatizar ou não os cenários de testes gerados. Atualmente, automatizamos cenários de testes para evitar trabalho manual em excesso, garantir que não há regressões no software, obter um feedback mais rápido, economizar tempo executando testes repetidos.

Evitar trabalho manual em excesso é um grande motivo para realizar automação de testes em um software. Softwares em desenvolvimento requerem um grande esforço em testes, já que estão mudando constantemente. Quando um testador executa um mesmo cenário de teste inúmeras vezes, isso pode ocasionar erros, como por exemplo, pular algum passo importante do cenário. Afinal, somos humanos e estamos suscetíveis a errar.

Para garantir que não há regressões no software é importante ter um conjunto confiável de testes de regressão. É possível, então, automatizá-los para que você possa executá-los de maneira instantânea sem depender de um trabalho manual excessivo.

Através dos testes automatizados é possível obter um feedback mais rápido, por exemplo, visualizar quais testes  passaram e quais falharam, em qual passo do teste teve erro e qual o motivo. Muitas ferramentas oferecem gráficos e relatórios onde é fácil analisar os resultados da execução de uma suíte de teste.

Figura 1: Gráfico de execução das features.


Figura 2: Análise da execução do teste automatizado.


Na Figura 1 e  Figura 2 podemos visualizar o uso do plugin cucumber-reports-plugin no Jenkins[1]. Ele exibe gráficos da execução dos testes automatizados e um relatório com todas as features executadas, cenários que passaram e falharam, tempo de execução de cada feature e seu status de execução.

Podemos visualizar na Figura 2 que foram executadas 13 features, com 204 cenários de testes que contêm 802 passos de testes, que levaram aproximadamente 19 minutos para serem executados completamente. No exemplo, todas as 13 features passaram nos testes.

É muito importante economizar tempo executando testes repetidos para que o testador possa se preocupar em planejar e executar testes em funcionalidades que realmente são críticas para o negócio do cliente.

Quais testes automatizar?

No início de cada projeto fazemos um estudo sobre a necessidade do cliente para identificar quais serão as principais funcionalidades a serem desenvolvidas, quais são as funcionalidades de maior risco, ou seja, que são mais importantes para o negócio. Devemos automatizar os cenários de testes das funcionalidades de maior risco, consideradas críticas do sistema.

Testes utilizados para garantir que não há regressão no software também devem ser automatizados de modo a evitar esforço repetitivo. Tarefas repetitivas que requerem um grande esforço de tempo também devem ser automatizadas para o testador poder se dedicar a outras tarefas que agreguem maior valor a equipe.

Principais testes para automatizar:

  • Testes de regressão;
  • Tarefas repetitivas;
  • Funcionalidades críticas;
  • Testes com cálculos matemáticos.

A automação de testes pode trazer diversos benefícios para os projetos, quando utilizada de maneira apropriada. Devemos executá-la de forma incremental, ou seja, analisando quais testes automatizados trarão maior benefício para o produto.

Não esqueça: mesmo com a automação de testes é necessário executar testes manuais no sistema. É interessante utilizar as duas técnicas de forma combinada, afinal, não são todas funcionalidades que devem ser automatizadas.

Cada projeto deve ser analisado para avaliar se os testes serão ou não automatizados e qual o ganho utilizando a automação. Por exemplo, em um projeto pequeno, com funcionalidades simples e que tenham pouco tempo de desenvolvimento, não tem necessidade de automação.

No contexto ágil é ainda mais importante a automação de testes, pois eles auxiliam no recebimento de um feedback contínuo e rápido, além de garantir uma maior qualidade na entrega do software.


Quer saber mais sobre Testes de Software? Acesse o material que preparamos para você!

Acessar conteúdo


[1] Jenkins é uma ferramenta open source de integração contínua. Para obter mais informações ou baixar a ferramenta aconselho acessar o site https://jenkins.io/.

Naise Reginatto
Naise Reginatto

Naise é Analista de Testes na SoftDesign e faz parte da equipe há quase 5 anos. Graduanda em Sistemas de Informação pela PUCRS, possui mais de 6 anos de experiências com análise de testes. Entusiasta em testes automatizados e seguidora de metodologias ágeis, possui duas certificações em testes CTFL e CTFL-AT.

Deixe uma resposta