TDD (Test Driven Development)

  • 1,596 views
Uploaded on

 

More in: Technology
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
No Downloads

Views

Total Views
1,596
On Slideshare
0
From Embeds
0
Number of Embeds
1

Actions

Shares
Downloads
57
Comments
1
Likes
1

Embeds 0

No embeds

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
    No notes for slide
  • This is of successful projects

Transcript

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