TDD - What, Why, How

286 visualizações

Publicada em

# TDD - "What, why and how"

# 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.

Referências
http://vimeo.com/104311361
http://www.infoq.com/br/presentations/tdd-clean-code-dev-saudavel
http://blog.andredias.net/o-custo-de-um-bug/
http://www.prweb.com/releases/2013/1/prweb10298185.htm
http://www.extremeprogramming.org/rules/testfirst.html
https://sites.google.com/site/unclebobconsultingllc/
http://www.infoq.com/br/news/2010/09/paradigma-tdd
http://desenvolvimentoagil.com.br/xp/praticas/tdd/
http://tableless.com.br/tdd-por-que-usar/
http://blog.thiagobelem.net/aprendendo-tdd-ou-desenvolvimento-orientado-a-testes/
http://martinfowler.com/bliki/UnitTest.html
http://www.infoq.com/br/presentations/dnad-mauricio-aniche
http://www.infoq.com/br/presentations/refatorar-codigo
http://martinfowler.com/articles/mocksArentStubs.html
http://blog.caelum.com.br/mais-uma-vez-tdd-nao-e-bala-de-prata/
http://blog.caelum.com.br/tag/tdd/
http://apoie.org/Dojo.html
http://www.colourlovers.com/web/trends/websites/7818/Brooklyn_Beta

Publicada em: Software
0 comentários
1 gostou
Estatísticas
Notas
  • Seja o primeiro a comentar

Sem downloads
Visualizações
Visualizações totais
286
No SlideShare
0
A partir de incorporações
0
Número de incorporações
4
Ações
Compartilhamentos
0
Downloads
1
Comentários
0
Gostaram
1
Incorporações 0
Nenhuma incorporação

Nenhuma nota no slide

TDD - What, Why, How

  1. 1. TDD What, Why, How
  2. 2. test first programming
  3. 3. XP agile methodology
  4. 4. Mantra
  5. 5. RED teste antes mesmo da lógica existir
  6. 6. GREEN lógica pra que o teste passe
  7. 7. REFACTOR melhoria do código
  8. 8. design um melhor
  9. 9. feedback rápido e contínuo
  10. 10. segurança no código criado sentimos mais
  11. 11. raciocínio a níveis elevados de abstração forçamos nosso
  12. 12. documentação do que é desenvolvido geramos
  13. 13. qualidade do que produzimos aumentamos a
  14. 14. tipos de teste
  15. 15. unidade integração funcional sistema
  16. 16. unit tests no nosso caso
  17. 17. Classic Mockist style style
  18. 18. Muito obrigado !

×