# What? TDD - Test Driven Development Test-first programming XP (eXtreme Programming), Agile Methodologies Mantra: Red, Green, Refactor - Red: escrita do primeiro teste antes mesmo da lógica existir. - Green: é o ponto em que a lógica para que o teste previamente criado passe. Esta lógica deve ser desenvolvida da forma mais simples possível eliminando complexidades desnecessárias fazendo com que a evolução do código ocorra de forma segura. - Refactor: é a melhoria do código. Neste ponto são removidas duplicações, múltiplas responsabilidades e o código fica cada vez mais próximo de sua versão final.
# Why? Design: objetos concisos e com menos dependências. Fácil de dar manutenção e fácil de evoluir.
Feedback rápido e contínuo: com os "baby-steps" temos um rápido feedback do que estamos implementando, o que nos auxilia a manter o foco no que é realmente necessário e importante; e nos auxiliar a enxergar se estamos cumprindo com o esperado.
Segurança: temos mais confiança de que o código alterado ou a nova funcionalidade implementada não quebra outra existente. E quando isso ocorre identificamos onde isso ocorreu e corrigimos antes de colocarmos o erro em produção. [veja o custo de um defeito]
Raciocínio: mudança na forma de pensar. Nós forçamos nosso raciocínio a níveis elevados pra gerarmos código com um design melhor.
Documentação: testes descritivos descrevem melhor o funcionamento do software do que a documentação tradicional, já que a documentação tradicional geralmente está defasada ao código, ao contrário dessa abordagem onde a documentação é escrita antes do código.
Qualidade: como consequência um número menor de defeitos em produção. Remoção dos "bad-smells".
# How? Tipos de Teste Unidade, Integração, Funcional e Sistema
Unit Tests Classic and Mockist styles
Como começar? Coding Dojo: um lugar como os dojos de artes marciais, onde podemos praticar e aprender.
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.