Testes Automatizados:

O que é e por onde começar?

08/set/20

Disclaimer

A história contada aqui é totalmente fictícia...

Numa empresa fictícia...

Com personagens fictícios...

Qualquer semelhança... É só semelhança.

(E eu negarei que contei essa história)

Era uma vez...

"Desejo uma nova feature para a aplicação."

 

E então...

Desenvolvimento

Testes

Enquanto isso, na sala de testes...

" - Devemos testar toda a feature?"

" - Mas se o valor não for inserido?"

" - Precisamos entender quais são as regras..."

" - E se o motorista não preencher o campo?"

" - Como esse valor aparece no painel de contratação?"

"Precisaremos testar todos os fluxos envolvidos com a alteração"

Processo oneroso em tempo e pessoas

Teste de regressão manuais

Uma feature = Vários fluxos

A cada feature, tudo se repete...

"Pessoas tem dias bons e ruins. Isso pode interferir no resultado de seus testes manuais"

Testes Automatizados

Constância nos testes e menos tempo de execução.

"Falar sobre testes é falar sobre confiança"

Encontramos a qualidade quando entregamos com confiança

"Let's test all!"

"Implementar de maneira sábia os testes, você deve"
(Yoda, Mestre)

Pirâmide de Testes

Pirâmide de testes

Pirâmide que se divide em três patamares, apresentando os principais tipos de testes necessários.

💖 - Valor para a empresa

💰 - Custo dos testes

- Tempo de criação

Testes End to End (e2e)

Testes ponta a ponta

Simulação de um utilizador real da aplicação

Fluxo da aplicação é testado por completo

💖💖💖       💰💰💰     ⏳⏳⏳

Testes End to End (e2e)

Testes ponta a ponta

Difícil descobrir onde ocorre a falha

Execução bem mais lenta, onerosa.

Equipe de testers

Show me the Code!!!

Testes de Unidade

(Unidade, não unitário =P)

"Função com entrada x, deve ter saída y"

Menor unidade da aplicação
(funções e métodos)

💖       💰     ⏳

Testes de Unidade

(Unidade, não unitário =P)

São extremamente rápidos de executar

O desenvolvedor é o principal responsável por ele

TDD - Desenvolvimento Guiado a Testes

O teste de unidade não deve depender de nenhuma outra parte da aplicação ou fatores externos para serem executados.

"Ai Marcela, mas eu preciso dos dados de banco pra conseguir testar a função"

"Mas é impossível sem os dados do serviço externo!!!"

É pra isso que existe o Mock!

"Testes de Unidade falam sobre a saúde do nosso código e facilita sua melhora contínua"

Testes de unidade produzem códigos desacoplados

Show me the code!!!

"Já tenho todos os meus testes de unidade e tudo passou sem falhas!"
(disse o desenvolvedor inocente)
 

Podemos testar o método A e o método B.
Mas a interação entre eles também está correta?

Testes de Integração

Testa um fluxo integrado

💖💖       💰💰     ⏳⏳

Não envolve interface

Para estes, podemos utilizar serviços externos

Cuidado, ele é diferente do teste e2e

Testes são maravilindos!

Testes trazem confiança!

Mas...

Porque poucas equipes o utilizam???

"Uma razão pela qual os times encontram dificuldades em escrever testes é porque eles automatizam no nível errado. Uma estratégia efetiva de testes automatizados é automatizar em três níveis diferentes, assim como sugere a pirâmide de testes."

Mike Cohn.
Succeding with agile (2009)

Proporção visual dos testes a serem realizados

Abuse das unidades

Pense na integração

Essencialize o e2e

Saiba gastar suas forças

Proporção visual dos testes a serem realizados

Por onde começar?

Possuir uma suite de testes, é possuir um novo projeto.

Precisamos de definições do escopo e metas a serem alcançadas

Como serão executados os testes?

Qual é o nosso plano para cobertura e abrangência de testes?

Antes de criar os testes, os cenários já devem estar muito bem definidos

Por onde começar?

Quem serão os encarregados pelos desenvolvimentos e manutenebilidade dos testes?

Qual arquitetura será utilizada no desenvolvimento?

Qual é o nosso plano para cobertura e abrangência de testes?

O que deve ser testado e o que deve continuar manualmente?

Qual serão as ferramentas e frameworks utilizados?

A automatização de testes não substitui a validação humana (manual)

(Testers, amamos vocês <3)

Valeu! ;)

@magodoy88

magodoycruz@gmail.com

Made with Slides.com