Testes: O que são e por quê?

Contextualizando

A um tempo atrás(quando ainda estava com um computador) e fui fazer o o pull request de uma feature aqui para o TabNews, não consegui executalo por completo, pela falta de teste automatizado para a função, tendo contado com a ajuda do Felipe Deschamps para resolver.

Testes

Existem vários tipos de técnicas de teste de software que você pode usar para garantir que as alterações em seu código funcionem conforme o esperado. No entanto, nem todos os testes são iguais, e exploramos como algumas práticas de teste diferem.

Testes Automatizados

Testes automatizados são realizados por uma máquina que executa um script de teste escrito com antecedência. Esses testes podem variar muito em termos de complexidade, indo desde a verificação de um único método em uma classe à garantia de que realizar uma sequência de ações complexas na interface do usuário leva aos mesmos resultados. São muito mais robustos e confiáveis que testes manuais. Porém, a qualidade dos testes automatizados depende da qualidade com que seus scripts de teste foram escritos. Se você está apenas começando a usar testes, pode ler o tutorial de integração contínua para ajudar com seu primeiro pacote de teste.

Alguns tipos de teste comuns

Testes de unidade

Testes de unidade são feitos em um nível muito baixo, próximo ao código-fonte do aplicativo. Eles consistem em testar métodos e funções individuais de classes, componentes ou módulos usados pelo software. Testes de unidade, em geral, têm custo baixo para automatizar e podem ser executados com rapidez por um servidor de integração contínua.

Testes de integração

Testes de integração verificam se diferentes módulos ou serviços usados pelo seu aplicativo funcionam bem juntos. Por exemplo, pode ser testar a interação com o banco de dados ou garantir que os microsserviços funcionem juntos conforme o esperado. A execução desses tipos de testes tem um custo maior, uma vez que exigem que várias partes do aplicativo estejam ativas e em execução.

Testes funcionais

Os testes funcionais têm como foco os requisitos de negócios de uma aplicação. Eles só verificam a saída de uma ação e não verificam os estados intermediários do sistema ao executar essa ação.
Às vezes há uma confusão entre testes de integração e testes funcionais, uma vez que ambos exigem vários componentes para interagirem entre si. A diferença é que um teste de integração pode simplesmente verificar que você pode consultar o banco de dados, enquanto um teste funcional esperaria obter um valor específico do banco de dados conforme definido pelos requisitos do produto.

Testes de ponta a ponta

Teste de ponta a ponta replica o comportamento de um usuário com o software em um ambiente de aplicativo completo. Ele verifica se vários fluxos de usuário funcionam como o esperado e podem ser tão simples quanto carregar uma página da web ou fazer login ou cenários muito mais complexos verificando notificações por e-mail, pagamentos on-line etc.
Testes de ponta a ponta são muito úteis, mas têm um alto custo e podem ser difíceis de atualizar quando automatizados. Recomendamos ter alguns testes de ponta a ponta essenciais e contar mais com tipos de testes de nível inferior (testes de unidade e de integração) para poder identificar rapidamente alterações que causam falha.

Teste de aceitação

Os testes de aceitação são testes formais executados para verificar se um sistema a
Teste de desempenho
Os testes de desempenho avaliam o desempenho de um sistema sob uma carga de trabalho específica. Esses testes ajudam a medir a confiabilidade, a velocidade, a escalabilidade e a capacidade de resposta de um aplicativo. Por exemplo, o teste de desempenho pode observar tempos de resposta ao executar um grande número de solicitações, ou ver como o sistema se comporta com quantidade significativa de dados. Ele pode determinar se um aplicativo atende aos requisitos de desempenho, localizar gargalos, medir a estabilidade durante picos de tráfego e muito mais.

Deixe um comentário

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