Testar é bom, integrar é ainda melhor

2.304 visualizações

Publicada em

Apresentação feita no Latinoware dando uma breve introdução sobre os conceitos de Integração contínuo e seus resultados de implementação no dia a dia num projeto fictício que está disponível para qualquer pessoa ver, executar e modificar.

Todas as ferramentas utilizadas são livres e as metodologias ou conceitos independente de linguagens e já estabelecidos no mercado.

Publicada em: Tecnologia
1 comentário
16 gostaram
Estatísticas
Notas
Sem downloads
Visualizações
Visualizações totais
2.304
No SlideShare
0
A partir de incorporações
0
Número de incorporações
7
Ações
Compartilhamentos
0
Downloads
80
Comentários
1
Gostaram
16
Incorporações 0
Nenhuma incorporação

Nenhuma nota no slide

Testar é bom, integrar é ainda melhor

  1. 1. TESTAR É BOM. INTEGRAR É MELHOR AINDA! Augusto Pascutti Wednesday, November 10, 2010
  2. 2. @AUGUSTOHP Wednesday, November 10, 2010
  3. 3. O QUE É INTEGRAÇÃO CONTÍNUA (IC)? Wednesday, November 10, 2010
  4. 4. O QUE É INTEGRAÇÃO CONTÍNUA (IC)? Wednesday, November 10, 2010
  5. 5. O QUE É INTEGRAÇÃO CONTÍNUA (IC)? ‣ Prática ágil Wednesday, November 10, 2010
  6. 6. O QUE É INTEGRAÇÃO CONTÍNUA (IC)? ‣ Prática ágil ‣ Processo contínuo Wednesday, November 10, 2010
  7. 7. O QUE É INTEGRAÇÃO CONTÍNUA (IC)? ‣ Prática ágil ‣ Processo contínuo ‣ Controle de qualidade Wednesday, November 10, 2010
  8. 8. O QUE É INTEGRAÇÃO CONTÍNUA (IC)? ‣ Prática ágil ‣ Processo contínuo ‣ Controle de qualidade ‣ Automático ou não Wednesday, November 10, 2010
  9. 9. O QUE É INTEGRAÇÃO CONTÍNUA (IC)? ‣ Prática ágil ‣ Processo contínuo ‣ Controle de qualidade ‣ Automático ou não ‣ Reduz Wednesday, November 10, 2010
  10. 10. O QUE É INTEGRAÇÃO CONTÍNUA (IC)? ‣ Prática ágil ‣ Processo contínuo ‣ Controle de qualidade ‣ Automático ou não ‣ Reduz ‣ Custo,Tempo,Trabalho Wednesday, November 10, 2010
  11. 11. OK, O QUE É INTEGRAR? Wednesday, November 10, 2010
  12. 12. OK, O QUE É INTEGRAR? É testar! Ver como tudo funciona JUNTO! Wednesday, November 10, 2010
  13. 13. PORQUE INTEGRAR? Wednesday, November 10, 2010
  14. 14. PORQUE INTEGRAR? Existem 10 tipos de pessoas Wednesday, November 10, 2010
  15. 15. AS QUE ENTENDEM BINÁRIO Wednesday, November 10, 2010
  16. 16. E AS QUE NÃO ENTENDEM 10 Wednesday, November 10, 2010
  17. 17. E AS QUE NÃO ENTENDEM Espero que tenham entendido ... 10 Wednesday, November 10, 2010
  18. 18. A atualização não funciona ... Wednesday, November 10, 2010
  19. 19. Funciona.Algo deve estar errado. Wednesday, November 10, 2010
  20. 20. Hmn ... Wednesday, November 10, 2010
  21. 21. Rosquinha! Wednesday, November 10, 2010
  22. 22. NÃO IMPORTA O TIPO DE PROBLEMA Wednesday, November 10, 2010
  23. 23. PARA O CLIENTE É A MESMA COISA Wednesday, November 10, 2010
  24. 24. Não funciona! Wednesday, November 10, 2010
  25. 25. PORQUE INTEGRAR? Wednesday, November 10, 2010
  26. 26. ‣ Cliente mais satisfeito PORQUE INTEGRAR? Wednesday, November 10, 2010
  27. 27. ‣ Cliente mais satisfeito ‣ Métricas! PORQUE INTEGRAR? Wednesday, November 10, 2010
  28. 28. ‣ Cliente mais satisfeito ‣ Métricas! ‣ Aumento da qualidade PORQUE INTEGRAR? Wednesday, November 10, 2010
  29. 29. ‣ Cliente mais satisfeito ‣ Métricas! ‣ Aumento da qualidade ‣ Bugs detectados mais cedo PORQUE INTEGRAR? Wednesday, November 10, 2010
  30. 30. ‣ Cliente mais satisfeito ‣ Métricas! ‣ Aumento da qualidade ‣ Bugs detectados mais cedo ‣ Sem “release-caos” PORQUE INTEGRAR? Wednesday, November 10, 2010
  31. 31. PORQUE INTEGRAR? Wednesday, November 10, 2010
  32. 32. ‣ Seu software tem quantos bugs? PORQUE INTEGRAR? Wednesday, November 10, 2010
  33. 33. ‣ Seu software tem quantos bugs? ‣ Quantos % dele é testado? PORQUE INTEGRAR? Wednesday, November 10, 2010
  34. 34. ‣ Seu software tem quantos bugs? ‣ Quantos % dele é testado? ‣ Ele é complicado de manter? PORQUE INTEGRAR? Wednesday, November 10, 2010
  35. 35. Parece bom! Isso me custa quanto? Wednesday, November 10, 2010
  36. 36. Parece bom! Isso me custa quanto? Nada! Wednesday, November 10, 2010
  37. 37. Vai me dar mais trabalho né? Wednesday, November 10, 2010
  38. 38. Vai me dar mais trabalho né? Você já faz isso Wednesday, November 10, 2010
  39. 39. VOCÊ JÁ FAZ ISSO! Wednesday, November 10, 2010
  40. 40. Como assim? Wednesday, November 10, 2010
  41. 41. Você vai testar o que faz, certo? VOCÊ JÁ FAZ ISSO Wednesday, November 10, 2010
  42. 42. Você vai testar o que faz, certo? VOCÊ JÁ FAZ ISSO Wednesday, November 10, 2010
  43. 43. E o que você faz depois que vê que funcionou? Wednesday, November 10, 2010
  44. 44. Ué, removo os “lixos” ... Wednesday, November 10, 2010
  45. 45. E se um dia você tiver problemas justo com esse pedaço de código? Wednesday, November 10, 2010
  46. 46. Hmn....Testo de novo? Wednesday, November 10, 2010
  47. 47. PORQUÊ FAZER 2X A MESMA COISA? Wednesday, November 10, 2010
  48. 48. E SEVOCÊ GUARDASSE SEUS TESTES? Wednesday, November 10, 2010
  49. 49. Wednesday, November 10, 2010
  50. 50. Wednesday, November 10, 2010
  51. 51. LEMBRE DISSO: Wednesday, November 10, 2010
  52. 52. TODA ENTREGA GERA MAIS TRABALHO Wednesday, November 10, 2010
  53. 53. TODA ENTREGA GERA MAIS TRABALHO Wednesday, November 10, 2010
  54. 54. TODA ENTREGA GERA MAIS TRABALHO ‣ Seu app já tinha bugs antes Wednesday, November 10, 2010
  55. 55. TODA ENTREGA GERA MAIS TRABALHO ‣ Seu app já tinha bugs antes ‣ O código dele aumenta Wednesday, November 10, 2010
  56. 56. TODA ENTREGA GERA MAIS TRABALHO ‣ Seu app já tinha bugs antes ‣ O código dele aumenta ‣ Mais Bugs! Wednesday, November 10, 2010
  57. 57. TODA ENTREGA GERA MAIS TRABALHO ‣ Seu app já tinha bugs antes ‣ O código dele aumenta ‣ Mais Bugs! ‣ Mais complexo! Wednesday, November 10, 2010
  58. 58. TODA ENTREGA GERA MAIS TRABALHO ‣ Seu app já tinha bugs antes ‣ O código dele aumenta ‣ Mais Bugs! ‣ Mais complexo! ‣ Dica: contratar mais gente não é solução, é suicídio. (nesse caso) Wednesday, November 10, 2010
  59. 59. QUEREMOS SAIR DISSO Wednesday, November 10, 2010
  60. 60. QUEREMOS SAIR DISSO 0 11 23 34 45 56 68 79 90 v 1.0 v 1.1 v 1.2 v 1.3 v 1.5 v 2.0 v 2.1 v 2.2 v 2.3 v 2.5 v 3.0 Bugs Wednesday, November 10, 2010
  61. 61. PRA ISSO Wednesday, November 10, 2010
  62. 62. PRA ISSO 0 2 4 6 8 9 11 13 15 v 1.0 v 1.1 v 1.2 v 1.3 v 1.5 v 2.0 v 2.1 v 2.2 v 2.3 v 2.5 v 3.0 Bugs Wednesday, November 10, 2010
  63. 63. EM RESUMO: Wednesday, November 10, 2010
  64. 64. QUEREMOS QUE AS NOVAS ENTREGAS GEREM SOMENTE BUGS NOVOS Wednesday, November 10, 2010
  65. 65. QUEREMOS CÓDIGOS SIMPLES DE SE LER E POR CONSEQUÊNCIA, MANTER. Wednesday, November 10, 2010
  66. 66. QUEREMOS COISAS QUE FUNCIONEM (TESTADAS) Wednesday, November 10, 2010
  67. 67. Acho que você ta no lugar errado .... Wednesday, November 10, 2010
  68. 68. Wednesday, November 10, 2010
  69. 69. QUAL A MÁGICA? Wednesday, November 10, 2010
  70. 70. QUAL A MÁGICA? IntegreTeste mais. Sofra isso sem o cliente saber. Wednesday, November 10, 2010
  71. 71. PERCA MENOS TEMPO! Wednesday, November 10, 2010
  72. 72. PERCA MENOS TEMPO! Com testes ! Wednesday, November 10, 2010
  73. 73. TESTES Testar e jogar fora seu trabalho não é uma boa idéia, como vimos. Wednesday, November 10, 2010
  74. 74. TESTES UNITÁRIOS Wednesday, November 10, 2010
  75. 75. TESTES UNITÁRIOS Dão mais trabalho do que vc pensa Wednesday, November 10, 2010
  76. 76. TESTES UNITÁRIOS Dão mais resultado do que você imagina! Wednesday, November 10, 2010
  77. 77. TESTES UNITÁRIOS https://github.com/augustohp/ManoWars Wednesday, November 10, 2010
  78. 78. TESTES UNITÁRIOS Wednesday, November 10, 2010
  79. 79. TESTES UNITÁRIOS ‣ Melhoram a qualidade Wednesday, November 10, 2010
  80. 80. TESTES UNITÁRIOS ‣ Melhoram a qualidade ‣ Diminuem tempo com testes Wednesday, November 10, 2010
  81. 81. TESTES UNITÁRIOS ‣ Melhoram a qualidade ‣ Diminuem tempo com testes ‣ Melhoram seu código Wednesday, November 10, 2010
  82. 82. TESTES UNITÁRIOS ‣ Melhoram a qualidade ‣ Diminuem tempo com testes ‣ Melhoram seu código ‣ Você pensa antes de fazer Wednesday, November 10, 2010
  83. 83. TESTES UNITÁRIOS ‣ Melhoram a qualidade ‣ Diminuem tempo com testes ‣ Melhoram seu código ‣ Você pensa antes de fazer ‣ Identificam erros mais cedo Wednesday, November 10, 2010
  84. 84. TESTES UNITÁRIOS ‣ Melhoram a qualidade ‣ Diminuem tempo com testes ‣ Melhoram seu código ‣ Você pensa antes de fazer ‣ Identificam erros mais cedo ‣ Erros pontuais Wednesday, November 10, 2010
  85. 85. Dói pra instalar? Wednesday, November 10, 2010
  86. 86. TESTES UNITÁRIOS Wednesday, November 10, 2010
  87. 87. Funciona em qualquer projeto? Wednesday, November 10, 2010
  88. 88. Orientado a Objetos, sim. Wednesday, November 10, 2010
  89. 89. E porquê ele me da mais trabalho? Wednesday, November 10, 2010
  90. 90. Com o tempo você descobre que seu código é uma porcaria. Wednesday, November 10, 2010
  91. 91. PERCA MENOS TEMPO! Métricas (Relatórios) Wednesday, November 10, 2010
  92. 92. MÉTRICAS Wednesday, November 10, 2010
  93. 93. MÉTRICAS ‣ PHP Depend (Geral) Wednesday, November 10, 2010
  94. 94. MÉTRICAS ‣ PHP Depend (Geral) ‣ PEAR Code Sniffer Wednesday, November 10, 2010
  95. 95. MÉTRICAS ‣ PHP Depend (Geral) ‣ PEAR Code Sniffer ‣ PHP CPD Wednesday, November 10, 2010
  96. 96. PHP DEPEND Wednesday, November 10, 2010
  97. 97. PHP DEPEND ‣ Gera relatório de métricas Wednesday, November 10, 2010
  98. 98. PHP DEPEND ‣ Gera relatório de métricas ‣ Quão complexo é seu código? Wednesday, November 10, 2010
  99. 99. PHP DEPEND ‣ Gera relatório de métricas ‣ Quão complexo é seu código? ‣ Linhas comentadas/código Wednesday, November 10, 2010
  100. 100. PHP DEPEND ‣ Gera relatório de métricas ‣ Quão complexo é seu código? ‣ Linhas comentadas/código ‣ Permite comparações futuras Wednesday, November 10, 2010
  101. 101. PHP CODE SNIFFER Wednesday, November 10, 2010
  102. 102. PHP CODE SNIFFER ‣ Checa padrão no código Wednesday, November 10, 2010
  103. 103. PHP CODE SNIFFER ‣ Checa padrão no código ‣ Relatório de infrações Wednesday, November 10, 2010
  104. 104. PHP CODE SNIFFER Wednesday, November 10, 2010
  105. 105. PHP CODE SNIFFER Wednesday, November 10, 2010
  106. 106. PHP CPD Wednesday, November 10, 2010
  107. 107. PHP CPD ‣ Copy & Paste Detector Wednesday, November 10, 2010
  108. 108. PHP CPD ‣ Copy & Paste Detector ‣ Busca “semelhanças” Wednesday, November 10, 2010
  109. 109. PHP CPD ‣ Copy & Paste Detector ‣ Busca “semelhanças” ‣ Porquê elas são ruins: Wednesday, November 10, 2010
  110. 110. PHP CPD ‣ Copy & Paste Detector ‣ Busca “semelhanças” ‣ Porquê elas são ruins: ‣ _ Repetiu? Encapsule. Wednesday, November 10, 2010
  111. 111. PHP CPD ‣ Copy & Paste Detector ‣ Busca “semelhanças” ‣ Porquê elas são ruins: ‣ _ Repetiu? Encapsule. ‣ _Vários pontos de falha iguais Wednesday, November 10, 2010
  112. 112. PHP UNIT Wednesday, November 10, 2010
  113. 113. PHP UNIT ‣ Cobertura de código Wednesday, November 10, 2010
  114. 114. PHP UNIT ‣ Cobertura de código ‣ Quantos % dele é testado? Wednesday, November 10, 2010
  115. 115. PHP UNIT ‣ Cobertura de código ‣ Quantos % dele é testado? ‣ Erros nos testes Wednesday, November 10, 2010
  116. 116. PHP UNIT ‣ Cobertura de código ‣ Quantos % dele é testado? ‣ Erros nos testes ‣ Falha nos testes Wednesday, November 10, 2010
  117. 117. PERCA MENOS TEMPO! Tarefas repetidas Wednesday, November 10, 2010
  118. 118. PERCA MENOS TEMPO! Wednesday, November 10, 2010
  119. 119. PERCA MENOS TEMPO! ‣ Geração de pacotes Wednesday, November 10, 2010
  120. 120. PERCA MENOS TEMPO! ‣ Geração de pacotes ‣ Cópia de códigos Wednesday, November 10, 2010
  121. 121. PERCA MENOS TEMPO! ‣ Geração de pacotes ‣ Cópia de códigos ‣ Limpeza de arquivos Wednesday, November 10, 2010
  122. 122. PERCA MENOS TEMPO! ‣ Geração de pacotes ‣ Cópia de códigos ‣ Limpeza de arquivos ‣ Transferêcia de arquivos Wednesday, November 10, 2010
  123. 123. PERCA MENOS TEMPO! ‣ Geração de pacotes ‣ Cópia de códigos ‣ Limpeza de arquivos ‣ Transferêcia de arquivos ‣ Distribuição de código Wednesday, November 10, 2010
  124. 124. PERCA MENOS TEMPO! ‣ Geração de pacotes ‣ Cópia de códigos ‣ Limpeza de arquivos ‣ Transferêcia de arquivos ‣ Distribuição de código ‣ Geração de relatórios Wednesday, November 10, 2010
  125. 125. PERCA MENOS TEMPO! Dev Dev APP Clientes Dev Wednesday, November 10, 2010
  126. 126. PERCA MENOS TEMPO! GP Coordenar equipe Garantir qualidade Relatórios Distruibuição Wednesday, November 10, 2010
  127. 127. ALGUMAS OPÇÕES Wednesday, November 10, 2010
  128. 128. PHING Wednesday, November 10, 2010
  129. 129. PHING Wednesday, November 10, 2010
  130. 130. PHING Wednesday, November 10, 2010
  131. 131. PHING Wednesday, November 10, 2010
  132. 132. RESUMINDO Wednesday, November 10, 2010
  133. 133. RESUMINDO Wednesday, November 10, 2010
  134. 134. RESUMINDO Código do Projeto Wednesday, November 10, 2010
  135. 135. RESUMINDO Código do Projeto Controle deVersões Wednesday, November 10, 2010
  136. 136. RESUMINDO Código do Projeto Controle deVersões Testes Unitários Wednesday, November 10, 2010
  137. 137. RESUMINDO Código do Projeto Controle deVersões Testes Unitários Geração de Pacotes Wednesday, November 10, 2010
  138. 138. RESUMINDO Código do Projeto Controle deVersões Testes Unitários Geração de Pacotes Relatórios Wednesday, November 10, 2010
  139. 139. RESUMINDO Wednesday, November 10, 2010
  140. 140. RESUMINDO ‣ Guarda seus testes Wednesday, November 10, 2010
  141. 141. RESUMINDO ‣ Guarda seus testes ‣ Automatiza eles Wednesday, November 10, 2010
  142. 142. RESUMINDO ‣ Guarda seus testes ‣ Automatiza eles ‣ Gera alguns relatórios Wednesday, November 10, 2010
  143. 143. RESUMINDO Wednesday, November 10, 2010
  144. 144. RESUMINDO ‣ Gera pacote Wednesday, November 10, 2010
  145. 145. RESUMINDO ‣ Gera pacote ‣ Distribui código para o cliente Wednesday, November 10, 2010
  146. 146. RESUMINDO ‣ Gera pacote ‣ Distribui código para o cliente ‣ Automatiza geração de relatórios Wednesday, November 10, 2010
  147. 147. VOLTANDO PRO COMEÇO ... Wednesday, November 10, 2010
  148. 148. E o bambu? Wednesday, November 10, 2010
  149. 149. E a integração contínua? Wednesday, November 10, 2010
  150. 150. INTEGRAR SEMPRE? Wednesday, November 10, 2010
  151. 151. EXECUTAR TUDO ISSO JUNTO? Wednesday, November 10, 2010
  152. 152. E A CADA MUDANÇA? Wednesday, November 10, 2010
  153. 153. EXEMPLO Wednesday, November 10, 2010
  154. 154. EXEMPLO SVN Hudson PHP Depend PHP Unit PHPCode Sniffer Phing Wednesday, November 10, 2010
  155. 155. HUDSON Wednesday, November 10, 2010
  156. 156. HUDSON ./java -jar hudson.war Wednesday, November 10, 2010
  157. 157. HUDSON Plugins: - Hudson Clover Plugin - Hudson JDepend Plugin - Hudson Phing Plugin - Hudson Subversion Plugin - Hudson xUnit Plugin Wednesday, November 10, 2010
  158. 158. HUDSON Wednesday, November 10, 2010
  159. 159. HUDSON Wednesday, November 10, 2010
  160. 160. HUDSON Wednesday, November 10, 2010
  161. 161. HUDSON Wednesday, November 10, 2010
  162. 162. DÚVIDAS? Wednesday, November 10, 2010
  163. 163. LINKS http://www.slideshare.net/augustopascutti (esses slides) https://github.com/augustohp/ManoWars http://hudson-ci.org/ http://phing.info/ http://www.phpunit.de/ http://pdepend.org/ http://github.com/sebastianbergmann/php-hudson-template http://pear.php.net/package/PHP_CodeSniffer http://github.com/sebastianbergmann/phpcpd Artigo: http://martinfowler.com/articles/continuousIntegration.html Wednesday, November 10, 2010

×