Desenvolvedor no controle      utilizando TDD                  Victor Villela Serta                    victorserta@gmail.c...
Quem sou eu?Victor Serta●  Desenvolvedor Java●  Fundador da Agivis, uma startup de  desenvolvimento ágil de aplicações web...
twitter.com/victorserta
victorserta.com.br
Test Driven          Development#soudevcon #tdd
Mas antes... uma história#soudevcon #tdd
●  Desenvolvedor bem intensionado●  Sem testes automatizados●  XGH#soudevcon #tdd
Após 3 semanas estavapronto...#soudevcon #tdd
...só faltava testar.#soudevcon #tdd
3 dias antes da entrega um bug foi encontrado#soudevcon #tdd
Depois de muita pizza e noites viradas....#soudevcon #tdd
Ele arrumou o                  bug e o projeto                  foi entregue!#soudevcon #tdd
Quando o cliente foi testar...#soudevcon #tdd
Arrumou o bug,mas causou outros 5#soudevcon #tdd
Outra história...#soudevcon #tdd
●  Desenvolvedor  experiente●  Domina Design  Patterns#soudevcon #tdd
Diagrama de um “Hello World” desse  desenvolvedor:#soudevcon #tdd
Levou 2 meses levantandorequisitos...#soudevcon #tdd
1 mês defnindo aarquitetura...#soudevcon #tdd
2 meses elaborandodiagramas...#soudevcon #tdd
4 meses desenvolvendo...#soudevcon #tdd
2 meses testando.#soudevcon #tdd
Quando o cliente foi testar...#soudevcon #tdd
“Não era isso que euqueria...”
Dinheiro jogado fora!#soudevcon #tdd
A solução:                  Lean                  Agile                  Scrum                   XP#soudevcon #tdd
#soudevcon #tdd
Desenvolvimento padrão                  Projetar                  Codificar                   Testar#soudevcon #tdd
Test Driven Development                   Testar                  Codificar                  Projetar#soudevcon #tdd
Por que TDD?    Qualidade#soudevcon #tdd
Por que TDD?       Menos     desperdício#soudevcon #tdd
Por que TDD?     Mais rápido#soudevcon #tdd
Ferramentas – Java  ●      JUnit  ●      TestNG  ●      Mockito  ●      EasyMock  ●      DbUnit  ●      Fit / FitNesse#sou...
Ferramentas – Ruby  ●      Test::Unit  ●      Mocha  ●      RSpec  ●      Shoulda#soudevcon #tdd
Ferramentas – PHP  ●      SimpleTest  ●      PHPUnit#soudevcon #tdd
Ferramentas – Action Script  ●      FlexUnit  ●      Mockolate#soudevcon #tdd
Ferramentas – JavaScript  ●      JsUnit  ●      DOH  ●      FireUnit  ●      QUnit  ●      JSMock  ●      QMock  ●      Mo...
Ferramentas – .NET  ●      NUnit  ●      csUnit  ●      DotNetMock#soudevcon #tdd
Conceito base     Red#soudevcon #tdd
Conceito base     Red          Green#soudevcon #tdd
Conceito base     Red          Green   Refactor#soudevcon #tdd
“Talk is cheap. Show me the code.”                            (Linus Torvalds)#soudevcon #tdd
O Exemplo                  Controle de Estoque#soudevcon #tdd
Requisitos  ●      Controle de entrada/saída de produtos      atualizando quantidade atual  ●      Não permitir saldo nega...
Programação por Intenção●    Assumir que    a implementação    existe●    Design livre#soudevcon #tdd
Baby Steps  ●      Passos pequenos  ●      Desenvolvimento incremental  ●      Feedback#soudevcon #tdd
Estamos na barra vermelha
Busque a barra verde o quantoantes
Refatore!
Triangulação                  Teste 1                                       Teste 2       Teste 3                   Espaço...
Limpar testes repetidos#soudevcon #tdd
Requisitos  ●      Controle de entrada/saída de produtos      atualizando quantidade atual  ●      Não permitir saldo nega...
Requisitos  ●      Controle de entrada/saída de produtos      atualizando quantidade atual  ●      Não permitir saldo nega...
Mock objects        ●            Ensaiar        ●            Repetir        ●            Verifcar#soudevcon #tdd
Stub/Fake objects●   Stub    ●   Implementação hardcoded    ●   Apenas parece como um        pato●   Fake    ●   Parece co...
Requisitos  ●      Controle de entrada/saída de produtos      atualizando quantidade atual  ●      Não permitir saldo nega...
Além do TDD...●  ATDD – Acceptance TDD●  BDD – Behavior Driven  Development#soudevcon #tdd
Resumindo TDD...#soudevcon #tdd
Crie e execute o teste              Red
Codifique para passar no testeRed      Green
Refatore!Red   Green   Refactor
Pronto para assumir o controle ?
Referências Test-Driven Development By Example   Test Driven: Practical TDD and                                      Accep...
Obrigado!Twitter: @victorsertaBlog: victorserta.com.br/blogEmail: victorserta@gmail.com#soudevcon #tdd
Próximos SlideShares
Carregando em…5
×

Desenvolvedor no controle utilizando tdd

1.099 visualizações

Publicada em

0 comentários
0 gostaram
Estatísticas
Notas
  • Seja o primeiro a comentar

  • Seja a primeira pessoa a gostar disto

Sem downloads
Visualizações
Visualizações totais
1.099
No SlideShare
0
A partir de incorporações
0
Número de incorporações
7
Ações
Compartilhamentos
0
Downloads
8
Comentários
0
Gostaram
0
Incorporações 0
Nenhuma incorporação

Nenhuma nota no slide

Desenvolvedor no controle utilizando tdd

  1. 1. Desenvolvedor no controle utilizando TDD Victor Villela Serta victorserta@gmail.com twitter.com/victorserta victorserta.com.br 1#soudevcon #tdd
  2. 2. Quem sou eu?Victor Serta● Desenvolvedor Java● Fundador da Agivis, uma startup de desenvolvimento ágil de aplicações web e mobile● Graduado em Engenharia de Computação pela PUC-PR● Entusiasta de metodologias ágeis (Scrum, XP e Kanban)
  3. 3. twitter.com/victorserta
  4. 4. victorserta.com.br
  5. 5. Test Driven Development#soudevcon #tdd
  6. 6. Mas antes... uma história#soudevcon #tdd
  7. 7. ● Desenvolvedor bem intensionado● Sem testes automatizados● XGH#soudevcon #tdd
  8. 8. Após 3 semanas estavapronto...#soudevcon #tdd
  9. 9. ...só faltava testar.#soudevcon #tdd
  10. 10. 3 dias antes da entrega um bug foi encontrado#soudevcon #tdd
  11. 11. Depois de muita pizza e noites viradas....#soudevcon #tdd
  12. 12. Ele arrumou o bug e o projeto foi entregue!#soudevcon #tdd
  13. 13. Quando o cliente foi testar...#soudevcon #tdd
  14. 14. Arrumou o bug,mas causou outros 5#soudevcon #tdd
  15. 15. Outra história...#soudevcon #tdd
  16. 16. ● Desenvolvedor experiente● Domina Design Patterns#soudevcon #tdd
  17. 17. Diagrama de um “Hello World” desse desenvolvedor:#soudevcon #tdd
  18. 18. Levou 2 meses levantandorequisitos...#soudevcon #tdd
  19. 19. 1 mês defnindo aarquitetura...#soudevcon #tdd
  20. 20. 2 meses elaborandodiagramas...#soudevcon #tdd
  21. 21. 4 meses desenvolvendo...#soudevcon #tdd
  22. 22. 2 meses testando.#soudevcon #tdd
  23. 23. Quando o cliente foi testar...#soudevcon #tdd
  24. 24. “Não era isso que euqueria...”
  25. 25. Dinheiro jogado fora!#soudevcon #tdd
  26. 26. A solução: Lean Agile Scrum XP#soudevcon #tdd
  27. 27. #soudevcon #tdd
  28. 28. Desenvolvimento padrão Projetar Codificar Testar#soudevcon #tdd
  29. 29. Test Driven Development Testar Codificar Projetar#soudevcon #tdd
  30. 30. Por que TDD? Qualidade#soudevcon #tdd
  31. 31. Por que TDD? Menos desperdício#soudevcon #tdd
  32. 32. Por que TDD? Mais rápido#soudevcon #tdd
  33. 33. Ferramentas – Java ● JUnit ● TestNG ● Mockito ● EasyMock ● DbUnit ● Fit / FitNesse#soudevcon #tdd
  34. 34. Ferramentas – Ruby ● Test::Unit ● Mocha ● RSpec ● Shoulda#soudevcon #tdd
  35. 35. Ferramentas – PHP ● SimpleTest ● PHPUnit#soudevcon #tdd
  36. 36. Ferramentas – Action Script ● FlexUnit ● Mockolate#soudevcon #tdd
  37. 37. Ferramentas – JavaScript ● JsUnit ● DOH ● FireUnit ● QUnit ● JSMock ● QMock ● MockMe#soudevcon #tdd
  38. 38. Ferramentas – .NET ● NUnit ● csUnit ● DotNetMock#soudevcon #tdd
  39. 39. Conceito base Red#soudevcon #tdd
  40. 40. Conceito base Red Green#soudevcon #tdd
  41. 41. Conceito base Red Green Refactor#soudevcon #tdd
  42. 42. “Talk is cheap. Show me the code.” (Linus Torvalds)#soudevcon #tdd
  43. 43. O Exemplo Controle de Estoque#soudevcon #tdd
  44. 44. Requisitos ● Controle de entrada/saída de produtos atualizando quantidade atual ● Não permitir saldo negativo ● Notifcar setor de compras quando o saldo do produto fcar zerado após uma saída#soudevcon #tdd
  45. 45. Programação por Intenção● Assumir que a implementação existe● Design livre#soudevcon #tdd
  46. 46. Baby Steps ● Passos pequenos ● Desenvolvimento incremental ● Feedback#soudevcon #tdd
  47. 47. Estamos na barra vermelha
  48. 48. Busque a barra verde o quantoantes
  49. 49. Refatore!
  50. 50. Triangulação Teste 1 Teste 2 Teste 3 Espaço da solução#soudevcon #tdd
  51. 51. Limpar testes repetidos#soudevcon #tdd
  52. 52. Requisitos ● Controle de entrada/saída de produtos atualizando quantidade atual ● Não permitir saldo negativo ● Notifcar setor de compras quando o saldo do produto fcar zerado após uma saída#soudevcon #tdd
  53. 53. Requisitos ● Controle de entrada/saída de produtos atualizando quantidade atual ● Não permitir saldo negativo ● Notifcar setor de compras quando o saldo do produto fcar zerado após uma saída#soudevcon #tdd
  54. 54. Mock objects ● Ensaiar ● Repetir ● Verifcar#soudevcon #tdd
  55. 55. Stub/Fake objects● Stub ● Implementação hardcoded ● Apenas parece como um pato● Fake ● Parece com um pato, anda como um pato, mas não é um pato real#soudevcon #tdd
  56. 56. Requisitos ● Controle de entrada/saída de produtos atualizando quantidade atual ● Não permitir saldo negativo ● Notifcar setor de compras quando o saldo do produto fcar zerado após uma saída#soudevcon #tdd
  57. 57. Além do TDD...● ATDD – Acceptance TDD● BDD – Behavior Driven Development#soudevcon #tdd
  58. 58. Resumindo TDD...#soudevcon #tdd
  59. 59. Crie e execute o teste Red
  60. 60. Codifique para passar no testeRed Green
  61. 61. Refatore!Red Green Refactor
  62. 62. Pronto para assumir o controle ?
  63. 63. Referências Test-Driven Development By Example Test Driven: Practical TDD and Acceptance TDD for Java Developers Kent Beck Lasse Koskela
  64. 64. Obrigado!Twitter: @victorsertaBlog: victorserta.com.br/blogEmail: victorserta@gmail.com#soudevcon #tdd

×