O documento discute a importância dos testes no desenvolvimento de software, mencionando três pontos principais:
1) Testes automatizados são necessários para evitar falhas futuras e garantir a qualidade do código.
2) É importante testar partes críticas do sistema que, caso falhem, podem ter grandes impactos.
3) Testes devem ser incorporados desde o início do desenvolvimento, por meio de metodologias como TDD.
13. A Síndrome do
“o que está
funcionando não
se deve mexer”.
14. Quebre a aplicação!
• Criamos testes simples que passem
• Teste o que está em produção
• Cobertura de testes
• O que é crítico?
• Especificação
• O que falta testar?
• Testes de Trollagem
16. Já viu essa síndrome?
• Não vai ao médico pra evitar descobrir um
mal grave
• Pode haver um problema latente que vai
falhar em um momento crítico
• Pode acabar em morte
17. Na aplicação
• Não testamos para não descobrir o que
falha
• Há problemas latentes que vão falhar em
momentos críticos (Por exemplo: um
sistema de pagamento do seu e-commerce)
• Sua empresa morre (vai a falência)
18. Estabeleça o que é
crítico
• Quão crítico é cada parte do seu sistema?
• Se não funcionar, quais as consequências?
19. Alto
Ri
sc
o
C
Ri
rí t
sc
ico
o
de
Ocorrência
Ri
ní
sc
ve
o
ml
de
éd
ba
io
ix
o
ní
ve
Baixo l
Baixo Impacto Alto
Gerenciamento de Risco http://bit.ly/11tTwN
35. Testes vs Especificação
• Se os testes validassem especificação, não
poderiamos prever correções de bugs e
comportamentos de ambientes.
• Bugs não fazem parte de uma especificação.
36. Teste que Falha Código Refatorar
Baby Steps
(Testes Unitários)
37. Sempre em Baby Steps
• Ótimo para pegar o ritmo
• função 1, 2, 3, pin
• Treino do Lutador
137. Referências
• Coding Dojo
• Inicialize um projeto com o GruntJS
• TDD - Kent Back
• Engenharia de Software - Roger S Pressman
• Testable JavaScript - Mark Ethan Trostler *