Salto/SP
Full stack developer @ AGV H&N
@magodoy88
magodoycruz@gmail.com
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)
"- Vamos desenvolver uma nova feature"
"- Fazer teste dá muito trabalho"
"- Vai demorar mais pra entregar a feature"
"- Teste deve custar caro"
E além disso...
O que foi alterado pelos devs?
O que se espera dessa funcionalidade?
O que se espera dessa funcionalidade?
"- Devemos testar toda a feature ou algo específico?"
"- O que eu preciso testar e o que é esperado neste teste?"
"- E se o usuário preencher de uma forma errada?"
Entendimento do cenário e regras de negócio como um todo
Muitos fluxos envolvidos
Teste de regressão necessário
A cada feature, tudo se repete...
Encontramos a qualidade quando entregamos com confiança
Constância nos testes e menos tempo de execução.
Script, código ou sistema responsável pela realização de testes na aplicação
Executar mais vezes em menos tempo
Maior confiança no desenvolvimento
(Yoda, Mestre)
Mike Cohn
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 de ponta a ponta
Fluxo completo da funcionalidade
Simulação de um utilizador real
💖💖💖 💰💰💰 ⏳⏳⏳
Difícil descobrir onde ocorre a falha
Execução bem mais lenta, onerosa.
Menor unidade da aplicação
(funções e métodos)
💖💖 💰💰 ⏳⏳
"Função com entrada x, deve ter saída y"
Desenvolvedor costuma ser o principal responsável
Rápida criação e execução
Simulação de comportamento de um objeto parq que possa ser utilizado em um teste unitário
Dado simulado, fake...
Códigos desacoplados, melhor manutenibilidade...
"Já tenho todos os meus testes de unidade e tudo passou sem falhas! Minha aplicação está 100% ok!"
(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?
Menor unidade da aplicação
(funções e métodos)
💖💖 💰💰 ⏳⏳
"Função com entrada x, deve ter saída y"