Importância dos testes automatizados no dia a dia

6,818 views
6,996 views

Published on

Desenvolver software é uma luta contra complexidade. Cada linha de código que um programador escreve pode ser mais um ponto de falha no software. Para diminuir os riscos é fundamental que o programador e a equipe adotem uma cultura na escrita de testes, de preferência automatizados, para garantir que o software se comporte como esperado durante todo o ciclo de vida do desenvolvimento.

Nesta apresentação explanarei a importância dos testes automatizados de acordo com a cultura ágil, os tipos de testes que podemos escrever, os prejuízos causados pelo não uso de testes, os benefícios obtidos a médio e longo prazo, e as dificuldades ao escreve-los.

Published in: Technology
4 Comments
15 Likes
Statistics
Notes
No Downloads
Views
Total views
6,818
On SlideShare
0
From Embeds
0
Number of Embeds
7
Actions
Shares
0
Downloads
38
Comments
4
Likes
15
Embeds 0
No embeds

No notes for slide

Importância dos testes automatizados no dia a dia

  1. 1. A importância dos testes automatizados no dia a dia_ Rafael Ponte @rponteMonday, February 4, 2013
  2. 2. @rponteMonday, February 4, 2013
  3. 3. Monday, February 4, 2013
  4. 4. Como os clientes chegam até nós...Monday, February 4, 2013
  5. 5. Solucionar bugs críticos e “apagar incêndios”Monday, February 4, 2013
  6. 6. Solucionar bugs críticos e “apagar incêndios” Migrar ou Reescrever sistemasMonday, February 4, 2013
  7. 7. Treinar a Solucionar bugs críticos equipe e “apagar incêndios” Migrar ou Reescrever sistemasMonday, February 4, 2013
  8. 8. Treinar a Solucionar bugs críticos equipe e “apagar incêndios” Migrar ou Reescrever sistemasMonday, February 4, 2013
  9. 9. Migrar ou reescrever sistemas de:Monday, February 4, 2013
  10. 10. Migrar ou reescrever sistemas de: * Desktop para WebMonday, February 4, 2013
  11. 11. Migrar ou reescrever sistemas de: * Desktop para Web * PHP para JavaMonday, February 4, 2013
  12. 12. Migrar ou reescrever sistemas de: * Desktop para Web * PHP para Java * Java para Ruby on RailsMonday, February 4, 2013
  13. 13. Migrar ou reescrever sistemas de: * Desktop para Web * PHP para Java * Java para Ruby on Rails * Java para JavaMonday, February 4, 2013
  14. 14. após alguns minutos de conversa...Monday, February 4, 2013
  15. 15. após alguns minutos de conversa... com o gerente ou a equipe, é comum escutar...Monday, February 4, 2013
  16. 16. “Temos uma equipe de 8 programadores. E +3 vagas em aberto.” - GerenteMonday, February 4, 2013
  17. 17. “Criamos nosso próprio framework para agilizar o trabalho.” - ArquitetoMonday, February 4, 2013
  18. 18. “Eu li que JSF2 é mais simples do que GWT.” ProgramadorMonday, February 4, 2013
  19. 19. “Fiz uma PoC com Ruby On Rails. É mais produtivo do que Java!” - ArquitetoMonday, February 4, 2013
  20. 20. “Com o “Caker” podemos gerar cadastros em minutos.” - GerenteMonday, February 4, 2013
  21. 21. Eles querem mais Produtividade?!Monday, February 4, 2013
  22. 22. não ?! Eles querem mais ProdutividadeMonday, February 4, 2013
  23. 23. Eles procuram VELOCIDADE no desenvolvimento de novas funcionalidadesMonday, February 4, 2013
  24. 24. Produtividade = VelocidadeMonday, February 4, 2013
  25. 25. não Produtividade = VelocidadeMonday, February 4, 2013
  26. 26. Eles estão focando no local errado...Monday, February 4, 2013
  27. 27. Eles estão focando no local errado... * Java para Ruby on RailsMonday, February 4, 2013
  28. 28. Mudar a forma como o programador trabalha!Monday, February 4, 2013
  29. 29. Programadores Resistência a mudança?Monday, February 4, 2013
  30. 30. Programador CowboyMonday, February 4, 2013
  31. 31. Code and Fix Abandona sua disciplina na hora do aperto O programador que os gerentes adoramMonday, February 4, 2013
  32. 32. Programador ProfissionalMonday, February 4, 2013
  33. 33. Disciplinado Mantém a tranquilidade e disciplina Se mantém em evoluçãoMonday, February 4, 2013
  34. 34. Boas PráticasMonday, February 4, 2013
  35. 35. Escrita de Testes AutomatizadosMonday, February 4, 2013
  36. 36. Testes Manuais versus Testes AutomatizadosMonday, February 4, 2013
  37. 37. Não é mais demorado?Monday, February 4, 2013
  38. 38. Produtividade "Cowboy" Profissional 70 52.5 Produtividade 35 17.5 0 1 2 3 4 5 6 7 8 TempoMonday, February 4, 2013
  39. 39. Produtividade "Cowboy" Profissional 70 52.5 Produtividade 35 17.5 0 1 2 3 4 5 6 7 8 TempoMonday, February 4, 2013
  40. 40. Produtividade "Cowboy" Profissional 70 52.5 Produtividade 35 17.5 0 1 2 3 4 5 6 7 8 TempoMonday, February 4, 2013
  41. 41. Produtividade "Cowboy" Profissional 70 52.5 Produtividade 35 17.5 0 1 2 3 4 5 6 7 8 TempoMonday, February 4, 2013
  42. 42. Produtividade "Cowboy" Profissional 70 52.5 Produtividade 35 17.5 0 1 2 3 4 5 6 7 8 TempoMonday, February 4, 2013
  43. 43. Produtividade "Cowboy" Profissional 70 52.5 Produtividade 35 17.5 0 1 2 3 4 5 6 7 8 TempoMonday, February 4, 2013
  44. 44. Produtividade "Cowboy" Profissional 70 52.5 Produtividade 35 17.5 0 1 2 3 4 5 6 7 8 TempoMonday, February 4, 2013
  45. 45. Produtividade "Cowboy" Profissional 70 52.5 Produtividade 35 17.5 0 1 2 3 4 5 6 7 8 TempoMonday, February 4, 2013
  46. 46. Produtividade "Cowboy" Profissional 70 52.5 Produtividade 35 17.5 0 1 2 3 4 5 6 7 8 TempoMonday, February 4, 2013
  47. 47. Se a coisa já é ruim com um programador cowboy...Monday, February 4, 2013
  48. 48. imagina uma equipe de cowboysMonday, February 4, 2013
  49. 49. F = Nova Funcionalidade F = Funcionalidade com Bug Cowboys Profissionais 1s 2s 3s 4s 5s 6sMonday, February 4, 2013
  50. 50. F = Nova Funcionalidade F = Funcionalidade com Bug Cowboys Profissionais 1s F5 F4 F3 F2 F1 F1 F2 2s 3s 4s 5s 6sMonday, February 4, 2013
  51. 51. F = Nova Funcionalidade F = Funcionalidade com Bug Cowboys Profissionais 1s F5 F4 F3 F2 F1 F1 F2 2s F8 F4 F7 F2 F6 F1 F4 F5 3s 4s 5s 6sMonday, February 4, 2013
  52. 52. F = Nova Funcionalidade F = Funcionalidade com Bug Cowboys Profissionais 1s F5 F4 F3 F2 F1 F1 F2 2s F8 F4 F7 F2 F6 F1 F4 F5 3s F10 F4 F7 F9 F6 F6 F7 F8 4s 5s 6sMonday, February 4, 2013
  53. 53. F = Nova Funcionalidade F = Funcionalidade com Bug Cowboys Profissionais 1s F5 F4 F3 F2 F1 F1 F2 2s F8 F4 F7 F2 F6 F1 F4 F5 3s F10 F4 F7 F9 F6 F6 F7 F8 4s F13 F12 F7 F11 F6 F9 F10 F8 F11 5s 6sMonday, February 4, 2013
  54. 54. F = Nova Funcionalidade F = Funcionalidade com Bug Cowboys Profissionais 1s F5 F4 F3 F2 F1 F1 F2 2s F8 F4 F7 F2 F6 F1 F4 F5 3s F10 F4 F7 F9 F6 F6 F7 F8 4s F13 F12 F7 F11 F6 F9 F10 F8 F11 5s F12 F7 F10 F14 F12 F13 F14 F15 6sMonday, February 4, 2013
  55. 55. F = Nova Funcionalidade F = Funcionalidade com Bug Cowboys Profissionais 1s F5 F4 F3 F2 F1 F1 F2 2s F8 F4 F7 F2 F6 F1 F4 F5 3s F10 F4 F7 F9 F6 F6 F7 F8 4s F13 F12 F7 F11 F6 F9 F10 F8 F11 5s F12 F7 F10 F14 F12 F13 F14 F15 6s F9 F12 F4 F10 F1 F16 F17 F18 F19Monday, February 4, 2013
  56. 56. Não é dificil perceber alguns padrões...Monday, February 4, 2013
  57. 57. reincidência de bugsMonday, February 4, 2013
  58. 58. F = Nova Funcionalidade F = Funcionalidade com Bug Cowboys Profissionais 1s F5 F4 F3 F2 F1 F1 F2 2s F8 F4 F7 F2 F6 F1 F4 F5 3s F10 F4 F7 F9 F6 F6 F7 F8 4s F13 F12 F7 F11 F6 F9 F10 F8 F11 5s F12 F7 F10 F14 F12 F13 F14 F15 6s F9 F12 F4 F10 F1 F16 F17 F18 F19Monday, February 4, 2013
  59. 59. funcionalidades “bugam” do nadaMonday, February 4, 2013
  60. 60. F = Nova Funcionalidade F = Funcionalidade com Bug Cowboys Profissionais 1s F5 F4 F3 F2 F1 F1 F2 2s F8 F4 F7 F2 F6 F1 F4 F5 3s F10 F4 F7 F9 F6 F6 F7 F8 4s F13 F12 F7 F11 F6 F9 F10 F8 F11 5s F12 F7 F10 F14 F12 F13 F14 F15 6s F9 F12 F4 F10 F1 F16 F17 F18 F19Monday, February 4, 2013
  61. 61. diminuição de novas funcionalidadesMonday, February 4, 2013
  62. 62. F = Nova Funcionalidade F = Funcionalidade com Bug Cowboys Profissionais 1s F5 F4 F3 F2 F1 F1 F2 2s F8 F4 F7 F2 F6 F1 F4 F5 3s F10 F4 F7 F9 F6 F6 F7 F8 4s F13 F12 F7 F11 F6 F9 F10 F8 F11 5s F12 F7 F10 F14 F12 F13 F14 F15 6s F9 F12 F4 F10 F1 F16 F17 F18 F19Monday, February 4, 2013
  63. 63. Por que isso acontece?Monday, February 4, 2013
  64. 64. reincidência de bugs Não escrevem testes!Monday, February 4, 2013
  65. 65. F = Nova Funcionalidade F = Funcionalidade com Bug Cowboys Profissionais 1s F5 F4 F3 F2 F1 F1 F2 2s F8 F4 F7 F2 F6 F1 F4 F5 3s F10 F4 F7 F9 F6 F6 F7 F8 4s F13 F12 F7 F11 F6 F9 F10 F8 F11 5s F12 F7 F10 F14 F12 F13 F14 F15 6s F9 F12 F4 F10 F1 F16 F17 F18 F19Monday, February 4, 2013
  66. 66. F = Nova Funcionalidade F = Funcionalidade com Bug Cowboys Profissionais 1s F5 F4 F3 F2 F1 F1 F2 2s F8 F4 F7 F2 F6 F1 F4 F5 3s F10 F4 F7 F9 F6 F6 F7 F8 4s F13 F12 F7 F11 F6 F9 F10 F8 F11 5s F12 F7 F10 F14 F12 F13 F14 F15 6s F9 F12 F4 F10 F1 F16 F17 F18 F19Monday, February 4, 2013
  67. 67. funcionalidades “bugam” do nada Não fazem teste de regressãoMonday, February 4, 2013
  68. 68. F = Nova Funcionalidade F = Funcionalidade com Bug Cowboys Profissionais 1s F5 F4 F3 F2 F1 F1 F2 2s F8 F4 F7 F2 F6 F1 F4 F5 3s F10 F4 F7 F9 F6 F6 F7 F8 4s F13 F12 F7 F11 F6 F9 F10 F8 F11 5s F12 F7 F10 F14 F12 F13 F14 F15 6s F9 F12 F4 F10 F1 F16 F17 F18 F19Monday, February 4, 2013
  69. 69. F = Nova Funcionalidade F = Funcionalidade com Bug Cowboys Profissionais 1s F5 F4 F3 F2 F1 F1 F2 2s F8 F4 F7 F2 F6 F1 F4 F5 3s F10 F4 F7 F9 F6 F6 F7 F8 4s F13 F12 F7 F11 F6 F9 F10 F8 F11 5s F12 F7 F10 F14 F12 F13 F14 F15 6s F9 F12 F4 F10 F1 F16 F17 F18 F19Monday, February 4, 2013
  70. 70. diminuição de novas funcionalidades Disciplina com testesMonday, February 4, 2013
  71. 71. F = Nova Funcionalidade F = Funcionalidade com Bug Cowboys Profissionais 1s F5 F4 F3 F2 F1 F1 F2 2s F8 F4 F7 F2 F6 F1 F4 F5 3s F10 F4 F7 F9 F6 F6 F7 F8 4s F13 F12 F7 F11 F6 F9 F10 F8 F11 5s F12 F7 F10 F14 F12 F13 F14 F15 6s F9 F12 F4 F10 F1 F16 F17 F18 F19Monday, February 4, 2013
  72. 72. F = Nova Funcionalidade F = Funcionalidade com Bug Cowboys Profissionais 1s F5 F4 F3 F2 F1 F1 F2 2s F8 F4 F7 F2 F6 F1 F4 F5 3s F10 F4 F7 F9 F6 F6 F7 F8 4s F13 F12 F7 F11 F6 F9 F10 F8 F11 5s F12 F7 F10 F14 F12 F13 F14 F15 6s F9 F12 F4 F10 F1 F16 F17 F18 F19Monday, February 4, 2013
  73. 73. F = Nova Funcionalidade F = Funcionalidade com Bug Cowboys Profissionais 1s F5 F4 F3 F2 F1 F1 F2 2s Medo F2 F6 F1 F4 F5 F7F8 F4Segurança 3s Insegurança F6 F6 F7 F8 F10 F4 F7 F9 Feedback Evolução Lenta F9 Produtividade 4s F13 F12 F7 F11 F6 F10 F8 F11 Cliente Frustrado F12 F13 F14Satisfeito 5s F12 F7 F10 F14 Cliente F15 Sem credibilidade F16 Credibilidade 6s F9 F12 F4 F10 F1 F17 F18 F19Monday, February 4, 2013
  74. 74. Não é dificil escrever testes automatizadosMonday, February 4, 2013
  75. 75. Mas requer um tempo de maturidadeMonday, February 4, 2013
  76. 76. tipos de testes testes de unidade testes de integração testes de aceitaçãoMonday, February 4, 2013
  77. 77. testes de unidade menor unidade de código executávelMonday, February 4, 2013
  78. 78. menor unidade na = método POOMonday, February 4, 2013
  79. 79. teste de teste = unidade unitárioMonday, February 4, 2013
  80. 80. testes de unidade normalmente são: > mais fáceis de escrever; > muito rápidos para rodar; > mais fáceis para rastrear erros;Monday, February 4, 2013
  81. 81. que tal rodar centenas ou milhares de testes em segundos?Monday, February 4, 2013
  82. 82. feedback quase que instantâneo! WOW!Monday, February 4, 2013
  83. 83. testes de integração seu código integrado ao banco de dados, rede, disco etcMonday, February 4, 2013
  84. 84. valida os componentes de software funcionando juntosMonday, February 4, 2013
  85. 85. valida os componentes de software funcionando juntos teste de “maxu” vai no banco de dados! Yuri AdamsMonday, February 4, 2013
  86. 86. e assim como os testes de unidade...Monday, February 4, 2013
  87. 87. testes de integração normalmente são: > mais fáceis de escrever; > muito rápidos para rodar; > mais fáceis para rastrear erros;Monday, February 4, 2013
  88. 88. feedback AINDA quase que instantâneoMonday, February 4, 2013
  89. 89. testes de aceitação o que o usuário espera que aconteçaMonday, February 4, 2013
  90. 90. testeMonday, February 4, 2013
  91. 91. teste endMonday, February 4, 2013
  92. 92. teste end toMonday, February 4, 2013
  93. 93. teste end to endMonday, February 4, 2013
  94. 94. valida o software na perspectiva do usuárioMonday, February 4, 2013
  95. 95. valida o software na perspectiva do usuárioMonday, February 4, 2013
  96. 96. valida o software na perspectiva do usuárioMonday, February 4, 2013
  97. 97. testes de aceitação normalmente são: > trabalhosos para escrever; > lentos para rodar; > difíceis para rastrear erros; > frágeisMonday, February 4, 2013
  98. 98. apesar da dificuldade para escrevê-los...Monday, February 4, 2013
  99. 99. apesar da dificuldade para escrevê-los... Aceite os testes de aceitação!! Handerson FrotaMonday, February 4, 2013
  100. 100. apesar da dificuldade para escrevê-los... Aceite os testes de aceitação!! ainda assim vale a pena! Handerson FrotaMonday, February 4, 2013
  101. 101. resumindo...Monday, February 4, 2013
  102. 102. como tudo isso vai numa app real?Monday, February 4, 2013
  103. 103. Monday, February 4, 2013
  104. 104. browser banco de dados app (servidor)Monday, February 4, 2013
  105. 105. teste de unidadeMonday, February 4, 2013
  106. 106. teste de integraçãoMonday, February 4, 2013
  107. 107. teste de aceitaçãoMonday, February 4, 2013
  108. 108. teste de unidade teste de aceitação teste de integraçãoMonday, February 4, 2013
  109. 109. qual o melhor?Monday, February 4, 2013
  110. 110. unidade > integração ?Monday, February 4, 2013
  111. 111. nãoMonday, February 4, 2013
  112. 112. integração > aceitação ?Monday, February 4, 2013
  113. 113. nãoMonday, February 4, 2013
  114. 114. aceitação > unidade ?Monday, February 4, 2013
  115. 115. nãoMonday, February 4, 2013
  116. 116. depende?Monday, February 4, 2013
  117. 117. simMonday, February 4, 2013
  118. 118. depende da tua necessidadeMonday, February 4, 2013
  119. 119. depende da tua necessidade teste de aceitação testa TUDO.Handerson FrotaMonday, February 4, 2013
  120. 120. teste de integração é teste de “maxu”. depende da tua Yuri Adams necessidade teste de aceitação testa TUDO.Handerson FrotaMonday, February 4, 2013
  121. 121. mas no geral, siga a pirâmideMonday, February 4, 2013
  122. 122. Test Automation Pyramid Aceitação - 10% Integração - 40% Unidade - 50%Monday, February 4, 2013
  123. 123. indo além...Monday, February 4, 2013
  124. 124. “Modelo Tradicional” primeiro escreve o código de produção, depois escreve o teste... LEGAL!Monday, February 4, 2013
  125. 125. e se fosse possível escrever o teste ANTES da implementação?Monday, February 4, 2013
  126. 126. ahn?Monday, February 4, 2013
  127. 127. TDD Test Driven DevelopmentMonday, February 4, 2013
  128. 128. step by stepMonday, February 4, 2013
  129. 129. O que ganho com isso?Monday, February 4, 2013
  130. 130. TDD = testesMonday, February 4, 2013
  131. 131. não TDD = testesMonday, February 4, 2013
  132. 132. TDD é sobre DESIGN e MODELAGEM de códigoMonday, February 4, 2013
  133. 133. a bateria de testes é um brindeMonday, February 4, 2013
  134. 134. CONCLUSÃOMonday, February 4, 2013
  135. 135. Você só percebe os benefícios dos testes entre 6 meses e 1 anoMonday, February 4, 2013
  136. 136. não existe uma receita de bolo para desenvolver softwareMonday, February 4, 2013
  137. 137. mas sim um conjunto de princípios e práticas que podem te ajudar a desenvolver melhorMonday, February 4, 2013
  138. 138. testes automatizados é apenas a ponta do icebergMonday, February 4, 2013
  139. 139. permita que sua equipe trabalhe melhorMonday, February 4, 2013
  140. 140. permita que sua empresa entregue software melhorMonday, February 4, 2013
  141. 141. permita-se ser um profissional melhorMonday, February 4, 2013
  142. 142. use testes automatizadosMonday, February 4, 2013
  143. 143. testes automatizados eu aprovo!Monday, February 4, 2013
  144. 144. Rafael Ponte rponte@triadworks.com.brMonday, February 4, 2013

×