TDD - What, Why, How

Preview:

DESCRIPTION

# 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

Citation preview

TDD What, Why, How

test first programming

XP agile methodology

Mantra

RED

teste antes mesmo da lógica existir

GREEN

lógica pra que o teste passe

REFACTOR

melhoria do código

design um

melhor

feedback rápido e contínuo

segurança no código criado

sentimos mais

raciocínio a níveis elevados de abstração

forçamos nosso

documentação do que é desenvolvido

geramos

qualidade do que produzimos

aumentamos a

tipos de teste

unidade integração funcional sistema

unit tests no nosso caso

Classic

Mockist

style

style

Muito obrigado !

Recommended