IC@Atlas

532 views

Published on

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

0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
532
On SlideShare
0
From Embeds
0
Number of Embeds
3
Actions
Shares
0
Downloads
1
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide
  • O que o Hudson faz?O Hudson faz builds do software do projeto e testa estes builds.Podem haver vários tipos de builds, como build a cada commit e o build noturno. Geralmente, o build noturno é o mais importante pois é o mais completo, enquanto que builds feitos a cada commit devem ser rápidos para evitar stress no servidor de IC.O resultado do build do software (rpm, deb, tar.gz, etc) é um dos artefatos gerados pelo Hudson. Outros artefatos podem ser documentação gerada automaticamente a partir dos fontes, relatórios da execução dos testes
  • Sequencia do video:Controle de versão.Cobertura de código.Falha no build.Build ok
  • - IC tem um custo, e o servidor deve ser configurado e mantido para atender devidamente as necessidades de cada projeto. Nenhum servidor de integração continua vem pronto, todos que se prezam são apenas “robôs” que devem ser devidamente programados e integrados no ambiente de desenvolvimento já existente. - Com IC nem todos seus problemas se acabaram. - Para amortizar esse custo, IC pode ser adotada gradualmente, não é preciso ter todos os relatorios e todas as ferramentas de geraçaõ automatica em uma tacada só. O servidor de IC deve evoluir conforme as necessidades do projeto. - Erro que fizemos no projeto, demoramos demais para ter o instalador, torna o ambiente de testes mais proximo de um ambiente real e diminui a “poluição” nele.
  • - Melhorias no ambiente de testes.- “Ruídos” no ambiente de testes diminuem perigosamente a eficiencia e confiabilidade da execução dos testes, e por consequencia, a confiabilidade dos builds gerados enquanto durar o “Ruído”.- Hudson instala software em preview para executar testes funcionais em ambiente similar ao de produção.
  • 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 />

    ×