DotNetArhitects Recife“Aprendendo a fazer software”
Quem sou?Felipe PimentelMCP, MCTS ASP.NET 2.0, MCTS ASP.NET 3.5, MCTS WPFSócio e fundador da Ificomm Tecnologia Arquiteto e consultor.Ministrapalestras e treinamentos.Escreveartigospara o DevMedia
Meus contatosTwitter: http://twitter.com/felipe_pimentelEmail:  felipe.pimentel@ificomm.comBlog:  http://fpimentel88.wordpress.comIficomm’s blog: http://blog.ificomm.com
E vocês?NomeExperiência ProfissionalÁrea de interesse
.Net Architects
Reuniões Presenciais
Grupo na Webhttp://groups.google.com/group/dotnetarchitectshttp://dotnetarchitects.net/http://dojo.dotnetarchitects.net/
“The CHAOS Chronicles”  2006  The Standish Group
Não sabemos fazer Software
TDD (TestDrivenDevelopment)
String[] agendaDoDia = new[] {	“Cenário Atual”	,“O que é TDD?”	,”Para que TDD?”	,”Benefícios”	,”Dificuldades”	,”Demo. Demo. Demo...”}
Códigos ruinsBugsDifícil ManutençãoProdutividade baixa
Ciclo da Morte
Impacto das mudanças e correções(The Economic Impacts of Inadequate Infrastructure for Software Testing)
Solução: TDD
O que NÃO é TDD?TDD != UnitTestNã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.”
Test-First Programming      +Refactoring
Assegura  a Qualidade de Software
	“Cleancodethat works”(Test Driven Development By Example, Kent Beck)
“Desenvolvedor que não testa é como um cirurgião que não lava as mãos”Uncle Bob (Robert C. Martin)
“Sistema sem teste dá medo!”					     Giovanni Bassi.
“Código sem teste, é código legado”
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ções executáveis”						(Giovanni Bassi)
“Direciona projeto a ser mais desacoplado, flexível, modular, métodos coesos e extensível.”
O cliente
O desenvolvedor
Práticas e conceitos
Spike SolutionUm modo de tornar o desconhecido, conhecido
	Incerto X Familiar
	Maior Valor X Menor esforço
Modularize os Testes
Triangulação
Implementação Obvia
Baby Step
Resistindo a tentação de sair fazendo
DRY
Princípio da responsabilidade única (SRP)
YouAin`t GonnaNeed It (YAGNI)
Participe de CodingDojos

TDD (Test Driven Development)

Notas do Editor

  • #11 This is of successful projects