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
Testes Automatizados: Quem são eles?
By Marcela Godoy Cruz
Testes Automatizados: Quem são eles?
- 535