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

Weitere ähnliche Inhalte

Andere mochten auch (10)

Respuestas 6 y 7 capitulo 1
Respuestas 6 y 7 capitulo 1Respuestas 6 y 7 capitulo 1
Respuestas 6 y 7 capitulo 1
 
4 novber
4 novber4 novber
4 novber
 
Lpse
LpseLpse
Lpse
 
Peru | Buzzle.com
Peru | Buzzle.comPeru | Buzzle.com
Peru | Buzzle.com
 
Sponsor An African Child
Sponsor An African ChildSponsor An African Child
Sponsor An African Child
 
10
1010
10
 
Babbler 15 2011
Babbler 15 2011Babbler 15 2011
Babbler 15 2011
 
pengantar untuk menentukan income
pengantar untuk menentukan incomepengantar untuk menentukan income
pengantar untuk menentukan income
 
Recetas saludables
Recetas saludablesRecetas saludables
Recetas saludables
 
Partus Normal
Partus Normal Partus Normal
Partus Normal
 

Conheça o Hudson em 15 min

Hinweis der Redaktion

  1. 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
  2. Sequencia do video:Controle de versão.Cobertura de código.Falha no build.Build ok
  3. - 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.
  4. - 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.