TDC2008 Integração Contínua

Post on 24-Dec-2014

1.191 views 0 download

description

Apresentação Realizada no TDC 2008 Floripa, por Victor Hugo Germano

Transcript of TDC2008 Integração Contínua

Globalcode – Open4Education

Integração ContínuaIntegração Contínua

Victor Hugo GermanoVictor Hugo Germano

Globalcode – Open4Education

Eu? Quem?Eu? Quem?

> Ciência da Computação – UFSCCiência da Computação – UFSC

> Gestão Estratégica de TI – UNIVALIGestão Estratégica de TI – UNIVALI

> Audaces Automação IndustrialAudaces Automação Industrial

> Editor: Revista Visão ÁgilEditor: Revista Visão Ágil

> Editor: InfoQ BrasilEditor: InfoQ Brasil

> Autor: A Maldita ComédiaAutor: A Maldita Comédia

> Victor Hugo GermanoVictor Hugo Germano

Globalcode – Open4Education

Agenda

• MitosMitos• PrincípiosPrincípios• O Processo de ICO Processo de IC– Construção e Construção e

ControleControle– TestesTestes– InspeçãoInspeção– FeedbackFeedback

Globalcode – Open4Education

Def

iniç

ão d

e re

quis

itos

Anál

ise

e D

esig

n

Des

envo

lvim

ento

Test

e/C

orre

ção

Tempo

Integração

Nos tempos da brilhantinaNos tempos da brilhantina

Globalcode – Open4Educationhttp://flickr.com/photos/fairytalecinema/1813597118/

Globalcode – Open4Educationhttp://flickr.com/photos/fairytalecinema/1813597126/

Globalcode – Open4Education

• Último estágio do desenvolvimentoÚltimo estágio do desenvolvimento

• Testar apenas com o software prontoTestar apenas com o software pronto

• Funcionou na minha máquina!Funcionou na minha máquina!

• Qualidade é um Qualidade é um assetasset dispensável dispensável

• Qualidade é responsabilidade do Qualidade é responsabilidade do QA TeamQA Team

• O Mercado pode esperarO Mercado pode esperar

http://flickr.com/photos/fairytalecinema/1813597126/

•Integração de SoftwareIntegração de Software

Globalcode – Open4Education

Integração de SoftwareIntegração de Software

http://flickr.com/photos/movimente/2431646967

Globalcode – Open4Education

• Riscos são subestimadosRiscos são subestimados

• Dependências de subsistemas ?Dependências de subsistemas ?

• Interpretação errada de requisitos Interpretação errada de requisitos

• Incompatibilidade entre interfacesIncompatibilidade entre interfaces

• Muitos bugs na fase de integraçãoMuitos bugs na fase de integração

• Testes demoram demaisTestes demoram demais

• Correções demoram mais aindaCorreções demoram mais ainda

• Atrasos tornam-se comunsAtrasos tornam-se comuns

Integração de Software – A RealidadeIntegração de Software – A Realidade

http://flickr.com/photos/movimente/2431646967

Globalcode – Open4Education

Novos DesafiosNovos Desafios

Competir em um mercado que Competir em um mercado que nãonão quer esperar quer esperar

Mas como??!!Mas como??!!

Reduzir Riscos do desenvolvimento

Responder rápido às mudanças

Reduzir custos de produção

Globalcode – Open4Education

E se nós pudéssemos...E se nós pudéssemos...

ReunirReunir

• VelocidadeVelocidade

• QualidadeQualidade

• Informações para tomada de decisãoInformações para tomada de decisão

Globalcode – Open4Education

Valor de NegócioValor de Negócio

• Resultados rápidosResultados rápidos

• Aderência aos requisitosAderência aos requisitos

• O Software corretoO Software correto

• Satisfação do clienteSatisfação do cliente

Globalcode – Open4Education

Globalcode – Open4Education

Integração Contínua?Integração Contínua? Desenvolvedores sincronizam códigos produzidos ao menos Desenvolvedores sincronizam códigos produzidos ao menos

uma vez ao diauma vez ao dia

Testes garantem a consistência da base de código unificadaTestes garantem a consistência da base de código unificada

Relatórios de qualidade gerados automaticamenteRelatórios de qualidade gerados automaticamente

Uma versão compilada, testada e pronta para uso é criadaUma versão compilada, testada e pronta para uso é criada

Problemas na construção do software têm Problemas na construção do software têm prioridade prioridade

máximamáxima

Facilmente é possível saber a saúde do projetoFacilmente é possível saber a saúde do projeto

Paul Duval – Continuous Integration, 2007

Globalcode – Open4Education

O ProcessoO Processo

http://malditacomedia.blogspot.com/2007/10/integrao-contnua.html

Globalcode – Open4Education

Elementos do ProcessoElementos do Processo

• Construção Construção • TestesTestes• InspeçãoInspeção• FeedbackFeedback

Globalcode – Open4Education

ConstruçãoConstrução

“E então Ele disse: Faça-se a Luz”

Globalcode – Open4Education

ConstruçãoConstrução

Controle de Versão?!Controle de Versão?!

Globalcode – Open4Education

TestesTestes

Globalcode – Open4Education

Teste! Teste! Teste!Teste! Teste! Teste!

• JunitJunit

• HttpUnitHttpUnit

• SQLUnitSQLUnit

• Ejb3UnitEjb3Unit

• DBUnitDBUnit

• dbMonsterdbMonster

• JmeterJmeter• Fit/FitnesseFit/Fitnesse

Globalcode – Open4Education

InspeçãoInspeção

Globalcode – Open4Education

Duplicação de CódigoDuplicação de Código– CPDCPD– SimianSimian

Análise EstáticaAnálise Estática– PMDPMD– FindbugsFindbugs

Complexidade / DependênciasComplexidade / Dependências– SourcemonitorSourcemonitor– JdependJdepend– JavancssJavancss

InspeçãoInspeção

Globalcode – Open4Education

IntelligenceIntelligenceSoftwareSoftware

Globalcode – Open4Education

FeedbackFeedback

Globalcode – Open4Education

ReferênciasReferênciasContinuous Integration – Improving Software Quality and Reducing RiskPaul M. Duval, Steve Matyas, Andrew Glover

http://malditacomedia.blogspot.com/search/label/IntegraçãoContínua

Martin Fowler – Continuous Integrationhttp://martinfowler.com/articles/continuousIntegration.html

Revista Visão Ágil – Edição 04http://visaoagil.com/downloads/edicoes/VA_04.pdf

Open Java Testing Projectshttp://java-source.net/open-source/testing-toolshttp://java-source.net/open-source/testing-tools

Globalcode – Open4Education

Obrigado!Obrigado!

http://malditacomedia.blogspot.com

victorhg@gmail.com

Globalcode – Open4Education

Dúvidas?Dúvidas?

http://flickr.com/photos/oberazzi/318947873/