IC@Atlas

41
Conheça o Hudson! Em 15 min Engenharia de E-mail Ago/2010

Transcript of IC@Atlas

Conheça o Hudson!Em 15 min

Engenharia de E-mailAgo/2010

INTRODUÇÃO

Testes:50% do tempo

2002

US$ 59 500 000 0000.6% do PIB

2008

US$ 85 980 000 000

TESTE DE UNIDADE

Propósito

• Garantia – Individual– Isolada

NÚMEROS ROMANOSExemplo:

Funções

• toRoman()• fromRoman()

Testando

resultado ← toRoman(2)se resultado = “II” entãoretorna VERDADEIRO

senãoretorna FALSO

Testando

resultado ← fromRoman(“III”)se resultado = 3 entãoretorna VERDADEIRO

senãoretorna FALSO

Executar testes

toRoman()... OKfromRoman()... OKResultado... 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 em valores_conhecidos:resultado ← toRoman(inteiro)se resultado = romano então

retorna VERDADEIROsenão

retorna FALSO

Testar regras conhecidas

resultado ← toRoman(4000)se resultado = exceção entãoretorna VERDADEIRO

senãoretorna FALSO

Testar regras conhecidas

resultado ← fromRoman(“IVILII”)se resultado = exceção entãoretorna VERDADEIRO

senãoretorna FALSO

Executar testes

Representação única... FALHAIntervalo 1-3999... FALHAAusência de 0... FALHAAusência de negativos... FALHAAusência de fracionários...FALHAResultado... FALHA!

Codifica até que...

Representação única... OKIntervalo 1-3999... OKAusência de 0... OKAusência de negativos... OKAusência de fracionários... OKResultado... 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ício do 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&AAinda com dúvidas? Sugestões?

Não tema! [email protected]