O slideshow foi denunciado.

IC@Atlas

540 visualizações

Publicada em

Apresentação sobre uso de Integração Contínua na equipe de Engenharia de E-Mail do Terra.

  • Seja o primeiro a comentar

IC@Atlas

  1. 1. Conheça o Hudson!Em 15 min <br />Engenharia de E-mail<br />Ago/2010<br />
  2. 2. Introdução<br />
  3. 3. Testes:50% do tempo<br />
  4. 4. 2002US$ 59 500 000 0000.6% do PIB<br />
  5. 5.
  6. 6. 2008US$ 85 980 000 000<br />
  7. 7.
  8. 8.
  9. 9. Teste de unidade<br />
  10. 10. Propósito<br />Garantia <br />Individual<br />Isolada<br />
  11. 11. Números Romanos<br />Exemplo:<br />
  12. 12. Funções<br />toRoman()<br />fromRoman()<br />
  13. 13. Testando<br />resultado ←toRoman(2)<br />se resultado = “II” então<br />retornaVERDADEIRO<br />senão<br />retornaFALSO<br />
  14. 14. Testando<br />resultado ←fromRoman(“III”)<br />se resultado = 3 então<br />retornaVERDADEIRO<br />senão<br />retornaFALSO<br />
  15. 15. Executar testes<br />toRoman()... OK<br />fromRoman()... OK<br />Resultado... Sucesso!<br />
  16. 16. Desenvolvimento dirigido por testes (TDD)<br />
  17. 17. Mudança de paradigma<br />
  18. 18. Fluxo “natural”<br />Desenvolve<br />Testa<br />Arruma<br />Testa<br />Entrega<br />
  19. 19. Regra de formação<br />Apenas uma forma de representar<br />Apenas 1-3999<br />Sem 0<br />Sem negativos<br />Somente inteiros<br />Copyright © Mark Pilgrim<br />
  20. 20. Testar regras conhecidas<br />valores_conhecidos(inteiro, romano) ← (1, “I”), (2, “II”), (...),(3999, “MMMCMXCIX”)<br />para inteiro emvalores_conhecidos:<br /> resultado ←toRoman(inteiro)<br />se resultado = romano então<br />retornaVERDADEIRO<br />senão<br />retornaFALSO<br />
  21. 21. Testar regras conhecidas<br />resultado ←toRoman(4000)<br />se resultado = exceçãoentão<br />retornaVERDADEIRO<br />senão<br />retornaFALSO<br />
  22. 22. Testar regras conhecidas<br />resultado ←fromRoman(“IVILII”)<br />se resultado = exceçãoentão<br />retornaVERDADEIRO<br />senão<br />retornaFALSO<br />
  23. 23. Executar testes<br />Representação única... FALHA<br />Intervalo 1-3999... FALHA<br />Ausência de 0... FALHA<br />Ausência de negativos... FALHA<br />Ausência de fracionários...FALHA<br />Resultado... FALHA!<br />
  24. 24. Codifica até que...<br />Representação única... OK<br />Intervalo 1-3999... OK<br />Ausência de 0... OK<br />Ausência de negativos... OK<br />Ausência de fracionários... OK<br />Resultado... Sucesso!<br />
  25. 25. Refatorar<br />
  26. 26. Nunca mais mexa neste código!<br />
  27. 27. Testes de Integração<br />
  28. 28. A hora da verdade<br />Mesmo princípio do teste de unidade<br />Sistema como um todo<br />Ambiente “real”<br />
  29. 29. Integração Contínua<br />
  30. 30.
  31. 31. Integração Contínua é integrar continuamente<br />
  32. 32.
  33. 33. XP: Boas práticas<br />Build automático<br />Testes automatizados<br />Commits (no mínimo) diários<br />Build curto<br />Teste em uma cópia do ambiente real<br />Acesso fácil à última versão<br />Visibilidade<br />Deploy automático<br />
  34. 34. XP: Boas práticas<br />Build automático<br />Testes automatizados<br />Commits (no mínimo) diários<br />Build curto<br />Teste em uma cópia do ambiente real<br />Acesso fácil à última versão<br />Visibilidade<br />Deploy automático<br />
  35. 35. Radiadores de Informação<br />
  36. 36.
  37. 37. Hudson<br />Overview<br />Build “On-Commit”<br />Build Noturno<br />Testes<br />Artefatos<br />
  38. 38. Hudson<br />Hudson e o “Gremlin”<br />Uma parceria de SUCESSO! (Acredite ...)<br />
  39. 39. Hudson<br />Onde Estamos<br />There’s no Free Lunch ...<br />... and no Silver Bullet!<br />Baby Steps!<br />Instalador no iníciodo projeto<br />
  40. 40. Hudson<br />E agora, pra onde, seu Hudson?<br />Separação do servidor IC e ambiente de testes<br />Manter ambiente de testes impecavelmente Limpo<br />Continuous Deployment (Nightly Build em Preview)<br />
  41. 41. Hudson<br />Q&A<br />Ainda com dúvidas? Sugestões? <br />Não tema! trratlas@corp.terra.com.br<br />

×