Your SlideShare is downloading. ×
Importância dos testes automatizados no dia a dia
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

Importância dos testes automatizados no dia a dia

6,655
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 …

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,655
On Slideshare
0
From Embeds
0
Number of Embeds
6
Actions
Shares
0
Downloads
36
Comments
4
Likes
15
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

Transcript

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

×