Test DrivenDevelopment
Códigos ruinsBugsDifícil manutençãoProdutividade baixaDesmotivação
Ciclo da morte
Impacto das mudanças e correções
Códigos ruins? #1
Códigos ruins? #2
Códigos ruins? #3
Solução: TDD
O que NÃO é TDD?TDD != Teste UnitárioNão é um método para TESTAR softwareNão é limitadoNão é teste de caixa preta, caixa branca, caixa cinza ou regressão.
TDD = TestDrivenDevelopment(Desenvolvimento Orientado a testes)
   “Técnica de desenvolvimento cujo processo é formado por pequenas iterações. Onde os testes são codificados primeiro.”
WTF?!
Programar os testes primeiro      +Refatorar
Assegura  a Qualidade do Código
“Clean codethatworks”(Test Driven Development By Example, Kent Beck)
“Desenvolvedor que não testa é como um cirurgião que não lava as mãos”(Robert C. Martin “Uncle Bob”)
“Sistema sem teste dá medo!”(Giovanni Bassi)
“Código sem teste, é código legado”(Working Effectively with LegacyCode, Michael Feathers)
Por que não usar?
“Estou sem tempo para testar!”
“Escrever testes demora muito!”
“Esse não é meu trabalho”
“Se compilou é porque está funcionando!”
“Testar é caro, não testar é mais caro ainda!”(Giovanni Bassi)
Benefícios do TDD
“Garante a existência de testes unitários completos e atualizados”
“Diminui a quantidade de erros por linha de código ”
“Testes unitários são documentação executável”(Giovanni Bassi)
“Direciona projeto a ser mais desacoplado, flexível, modulare extensível.”
O cliente
O desenvolvedor
Práticas e conceitos
Modularize os Testes
Baby Steps
Resistindo a tentação de sair fazendo
DRY
Princípio da responsabilidade única (SRP)
Participe de CodingDojos
TDD é fácil
Literaturas
Linkshttp://www.codeplex.com/wikipage?ProjectName=xunit&title=Comparisonshttp://unplugged.giggio.net/http://www.infoq.com/br/news/2009/03/TDD-Improves-Qualityhttp://www.infoq.com/br/articles/levison-TDD-adoption-strategyhttp://danieltamiosso.com/2009/05/06/o-impacto-de-tdd-no-design/http://www.diogomafra.com.br/2009/09/introducao-ao-tdd_24.htmlhttp://www.infoq.com/br/news/2009/11/uncle-bob-tdd-applicabilityhttp://www.superexpert.com/http://blogs.southworks.net/dschenkelman/http://www.heroisdati.com/
[...] E este sou eu!twitter: @waldyrfelixmsn: waldyrpe@hotmail.comgtalk: waldyrfelix@gmail.comskype: waldyrfelixblog: waldyrfelix.net/blog
Perguntas?
Ao Dojo! Obrigado!

TDD - Test Driven Development