DotNetArhitects Recife<br />“Aprendendo a fazer software”<br />
Quem sou?<br />Felipe Pimentel<br />MCP, MCTS ASP.NET 2.0, MCTS ASP.NET 3.5, MCTS WPF<br />Sócio e fundador da Ificomm Tec...
Meus contatos<br />Twitter: http://twitter.com/felipe_pimentel<br />Email:  felipe.pimentel@ificomm.com<br />Blog:  http:/...
E vocês?<br />Nome<br />Experiência Profissional<br />Área de interesse<br />
.Net Architects<br />
Reuniões Presenciais<br />
Grupo na Web<br />http://groups.google.com/group/dotnetarchitects<br />http://dotnetarchitects.net/<br />http://dojo.dotne...
“The CHAOS Chronicles”  2006  The Standish Group<br />
Não sabemos fazer Software<br />
TDD (TestDrivenDevelopment)<br />
String[] agendaDoDia = new[] {<br />	“Cenário Atual”<br />	,“O que é TDD?”<br />	,”Para que TDD?”<br />	,”Benefícios”<br /...
Códigos ruins<br />Bugs<br />Difícil Manutenção<br />Produtividade baixa<br />
Ciclo da Morte<br />
Impacto das mudanças e correções<br />(The Economic Impacts of Inadequate Infrastructure for Software Testing)<br />
Solução: TDD<br />
O que NÃO é TDD?<br />TDD != UnitTest<br />Não é um método para TESTAR software<br />Não é limitado<br />Não é Teste de ca...
TDD = TestDrivenDevelopment(Desenvolvimento Orientado a testes)<br />
   “Técnica de desenvolvimento cujo processo é formado por pequenas iterações. Onde os testes são codificados primeiro.”<b...
Test-First Programming      +Refactoring<br />
Assegura  a Qualidade de Software<br />
	“Cleancodethat works”<br />(Test Driven Development By Example, Kent Beck)<br />
“Desenvolvedor que não testa é como um cirurgião que não lava as mãos”Uncle Bob (Robert C. Martin)<br />
“Sistema sem teste dá medo!”					     Giovanni Bassi.<br />
“Código sem teste, é código legado”<br />
Por que não usar?<br />
“Estou sem tempo para testar!”<br />
“Escrever testes demora muito!”<br />
“Esse não é meu trabalho”<br />
“Se compilou é porque está funcionando!”<br />
“Testar é caro, não testar é mais caro ainda!”<br />                                           (Giovanni Bassi)<br />
Benefícios do TDD<br />
“Garante a existência de testes unitários completos e atualizados”<br />
“Diminui a quantidade de erros por linha de código ”<br />
“Testes unitários são documentações executáveis”<br />						(Giovanni Bassi)<br />
“Direciona projeto a ser mais desacoplado, flexível, modular, métodos coesos e extensível.”<br />
O cliente<br />
O desenvolvedor<br />
Práticas e conceitos<br />
Spike Solution<br />Um modo de tornar o desconhecido, conhecido<br />
	Incerto X Familiar<br />
	Maior Valor X Menor esforço<br />
Modularize os Testes<br />
Triangulação<br />
Implementação Obvia<br />
Baby Step<br />
Resistindo a tentação de sair fazendo<br />
DRY<br />
Princípio da responsabilidade única (SRP)<br />
YouAin`t GonnaNeed It (YAGNI)<br />
Participe de CodingDojos<br />
Upcoming SlideShare
Loading in …5
×

TDD (Test Driven Development)

2,010 views

Published on

Published in: Technology
1 Comment
1 Like
Statistics
Notes
No Downloads
Views
Total views
2,010
On SlideShare
0
From Embeds
0
Number of Embeds
86
Actions
Shares
0
Downloads
66
Comments
1
Likes
1
Embeds 0
No embeds

No notes for slide
  • This is of successful projects
  • TDD (Test Driven Development)

    1. 1. DotNetArhitects Recife<br />“Aprendendo a fazer software”<br />
    2. 2. Quem sou?<br />Felipe Pimentel<br />MCP, MCTS ASP.NET 2.0, MCTS ASP.NET 3.5, MCTS WPF<br />Sócio e fundador da Ificomm Tecnologia <br />Arquiteto e consultor.<br />Ministrapalestras e treinamentos.<br />Escreveartigospara o DevMedia<br />
    3. 3. Meus contatos<br />Twitter: http://twitter.com/felipe_pimentel<br />Email: felipe.pimentel@ificomm.com<br />Blog: http://fpimentel88.wordpress.com<br />Ificomm’s blog: http://blog.ificomm.com<br />
    4. 4. E vocês?<br />Nome<br />Experiência Profissional<br />Área de interesse<br />
    5. 5. .Net Architects<br />
    6. 6. Reuniões Presenciais<br />
    7. 7. Grupo na Web<br />http://groups.google.com/group/dotnetarchitects<br />http://dotnetarchitects.net/<br />http://dojo.dotnetarchitects.net/<br />
    8. 8.
    9. 9. “The CHAOS Chronicles” 2006 The Standish Group<br />
    10. 10.
    11. 11. Não sabemos fazer Software<br />
    12. 12. TDD (TestDrivenDevelopment)<br />
    13. 13. String[] agendaDoDia = new[] {<br /> “Cenário Atual”<br /> ,“O que é TDD?”<br /> ,”Para que TDD?”<br /> ,”Benefícios”<br /> ,”Dificuldades”<br /> ,”Demo. Demo. Demo...”<br />}<br />
    14. 14. Códigos ruins<br />Bugs<br />Difícil Manutenção<br />Produtividade baixa<br />
    15. 15. Ciclo da Morte<br />
    16. 16. Impacto das mudanças e correções<br />(The Economic Impacts of Inadequate Infrastructure for Software Testing)<br />
    17. 17.
    18. 18.
    19. 19.
    20. 20. Solução: TDD<br />
    21. 21. O que NÃO é TDD?<br />TDD != UnitTest<br />Não é um método para TESTAR software<br />Não é limitado<br />Não é Teste de caixa preta, caixa branca, caixa cinza ou regressão.<br />
    22. 22. TDD = TestDrivenDevelopment(Desenvolvimento Orientado a testes)<br />
    23. 23. “Técnica de desenvolvimento cujo processo é formado por pequenas iterações. Onde os testes são codificados primeiro.”<br />
    24. 24.
    25. 25. Test-First Programming +Refactoring<br />
    26. 26.
    27. 27.
    28. 28. Assegura a Qualidade de Software<br />
    29. 29.
    30. 30.
    31. 31. “Cleancodethat works”<br />(Test Driven Development By Example, Kent Beck)<br />
    32. 32. “Desenvolvedor que não testa é como um cirurgião que não lava as mãos”Uncle Bob (Robert C. Martin)<br />
    33. 33. “Sistema sem teste dá medo!” Giovanni Bassi.<br />
    34. 34. “Código sem teste, é código legado”<br />
    35. 35. Por que não usar?<br />
    36. 36. “Estou sem tempo para testar!”<br />
    37. 37. “Escrever testes demora muito!”<br />
    38. 38. “Esse não é meu trabalho”<br />
    39. 39. “Se compilou é porque está funcionando!”<br />
    40. 40. “Testar é caro, não testar é mais caro ainda!”<br /> (Giovanni Bassi)<br />
    41. 41.
    42. 42. Benefícios do TDD<br />
    43. 43. “Garante a existência de testes unitários completos e atualizados”<br />
    44. 44. “Diminui a quantidade de erros por linha de código ”<br />
    45. 45. “Testes unitários são documentações executáveis”<br /> (Giovanni Bassi)<br />
    46. 46. “Direciona projeto a ser mais desacoplado, flexível, modular, métodos coesos e extensível.”<br />
    47. 47. O cliente<br />
    48. 48. O desenvolvedor<br />
    49. 49. Práticas e conceitos<br />
    50. 50.
    51. 51. Spike Solution<br />Um modo de tornar o desconhecido, conhecido<br />
    52. 52. Incerto X Familiar<br />
    53. 53. Maior Valor X Menor esforço<br />
    54. 54. Modularize os Testes<br />
    55. 55.
    56. 56. Triangulação<br />
    57. 57. Implementação Obvia<br />
    58. 58. Baby Step<br />
    59. 59. Resistindo a tentação de sair fazendo<br />
    60. 60.
    61. 61. DRY<br />
    62. 62. Princípio da responsabilidade única (SRP)<br />
    63. 63. YouAin`t GonnaNeed It (YAGNI)<br />
    64. 64. Participe de CodingDojos<br />
    65. 65. Demo 1!!!!<br />Desenvolver uma calculadora basica que contem operações de divisão, multiplicação, subtraçaõ e adição de inteiros<br />Ferramentas:<br />Visual Studio 2010<br />Resharper<br />MSUnit<br />
    66. 66. Demo 2!!!!<br />FizzBuzz<br />Caso o número seja divisível por 3, deve dizer: “Fizz”<br />Caso o número seja divisível por 5, deve dizer: “Buzz”<br />Caso seja divisível por 3 e 5, deve dizer: “FizzBuzz”<br />Ferramentas:<br />Visual Studio 2010<br />Resharper<br />MSUnit<br />
    67. 67. Demo 3!!!!<br />Desenvolver uma aplicação bancária que controle saques, depósitos e transferências.<br />Ferramentas:<br />Visual Studio 2010<br />Resharper<br />NUnit<br />Moq<br />
    68. 68. TDD é fácil<br />
    69. 69. Links<br />http://www.codeplex.com/wikipage?ProjectName=xunit&title=Comparisons<br />http://unplugged.giggio.net/<br />http://www.infoq.com/br/news/2009/03/TDD-Improves-Quality<br />http://www.infoq.com/br/articles/levison-TDD-adoption-strategy<br />http://danieltamiosso.com/2009/05/06/o-impacto-de-tdd-no-design/<br />http://www.diogomafra.com.br/2009/09/introducao-ao-tdd_24.html<br />http://www.infoq.com/br/news/2009/11/uncle-bob-tdd-applicability<br />http://www.superexpert.com/<br />http://blogs.southworks.net/dschenkelman/<br />http://www.heroisdati.com/<br />
    70. 70. Literaturas<br />
    71. 71. Perguntas?<br />
    72. 72. Obrigado!<br />

    ×