Pirâmide de testes, O que é?

06/05/2021

É uma forma eficiente de incluir a automação de testes considerando o investimento, e trazendo resultados diminuindo seu lead time.

A pirâmide de testes defini níveis de testes e te mostra basicamente como deveriam ser distribuídos a quantidade de testes por cada nível da pirâmide, além de te auxiliar no engajamento da automação de forma estrutural desde o inicio do desenvolvimento do software, assim trazendo a qualidade pela menor parte possível de um sistema que seria os métodos ou classes assim definidos.


Na base de nossa pirâmide temos os testes unitários (unit tests) para validação de cada método e classe que implementam as regras de negócio da aplicação.

No centro da pirâmide temos o testes de integração (integrations test) para validação entre as peças internas do sistema.

No topo da nossa pirâmide temos o teste de ponta a ponta (End to End Tests) que seriam o testes realizados de ponta a ponta no front end de sua aplicação.


Testes de Unidade

O testes de unidade validam se a menor unidade de código testável, independente da ligação dele com outras partes do sistema.

Geralmente os testes unitários ou testes de unidade como são chamados, são feito em métodos públicos de uma classe consiste em validar dados válidos e inválidos via I/O (entrada/saída) sendo aplicado por desenvolvedores ou analistas de teste. Uma unidade é a menor parte testável de um programa de computador.

Testes de Integração

Têm por objetivo encontrar falhas de integração entre as unidades, e não mais em testar as funcionalidades da mesma. Nesta fase as categorias de testes aplicáveis são: testes de interface, testes de dependências entre os componentes.

Os testes de integração existem para os cenários que não podem ser cobertos por testes de ponta a ponta, e para cenários que os testes de unidade já cobrem muito bem (até porque não é necessário ter testes redundantes). Nessa lógica, temos menos testes de integração que de unidade, e (bem) menos testes de ponta a ponta que de integração.

Testes de ponta a ponta

Os testes de ponta a ponta, são os testes realizados na aplicação final, geralmente no front end simulando o ambiente do usuário, sobem a aplicação ou abrem o navegador, preenchem formulários, clicam em botões e por fim verificam se aconteceu o que era esperado. A diferença desse tipo de teste para um usuário real é que os testes end to end geralmente acontecem em um ambiente controlado (não o de produção).

Esses testes são complexos de escrever e costumam demorar um tempo considerável pra rodar (afinal, interações do usuário com a aplicação são complexas e demoradas). Além disso, quando um teste de ponta a ponta falha, não é trivial inferir onde está o problema da aplicação, já que o teste é bem abrangente. Por esses motivos, geralmente são testes que cobrem apenas os fluxos principais da aplicação. 

Conclusão

Agora que você já conhece cada etapa da pirâmide, quero explicar por que e melhor e mais barato investir na base, os testes unitários, são mais rápidos de ser executados, além de encontrar erros sem precisar de ambiente de testes, o desenvolvedor pode encontrar o erro na sua própria maquina rodando uma bateria de testes, assim economizando tempo de subida de ambiente e mais rápido e fácil de debugar, logico que só o testes unitários não encontraríamos todos os erros, as vezes na integração pode ocorrer alguma falha ou ate mesmo no front end, por este motivo precisamos utilizar e implementar todas as etapas da pirâmide de testes, abaixo uma tabela comparando quantidade de teste versos tempo por etapa da pirâmide de teste.

Share
© 2020 BRUNO CASSIANO | Todos os direitos reservados
Desenvolvido por Webnode
Crie seu site grátis! Este site foi criado com Webnode. Crie um grátis para você também! Comece agora