testar é bom, integrar é ainda melhor

Post on 14-Jan-2015

1.883 Views

Category:

Technology

0 Downloads

Preview:

Click to see full reader

DESCRIPTION

Apresentação feita no Latinoware dando uma breve introdução sobre os conceitos de Integração contínuo e seus resultados de implementação no dia a dia num projeto fictício que está disponível para qualquer pessoa ver, executar e modificar. Todas as ferramentas utilizadas são livres e as metodologias ou conceitos independente de linguagens e já estabelecidos no mercado.

TRANSCRIPT

TESTAR É BOM. INTEGRAR É

MELHOR AINDA!Augusto Pascutti

Wednesday, November 10, 2010

@AUGUSTOHP

Wednesday, November 10, 2010

O QUE É INTEGRAÇÃO CONTÍNUA (IC)?

Wednesday, November 10, 2010

O QUE É INTEGRAÇÃO CONTÍNUA (IC)?

Wednesday, November 10, 2010

O QUE É INTEGRAÇÃO CONTÍNUA (IC)?

‣ Prática ágil

Wednesday, November 10, 2010

O QUE É INTEGRAÇÃO CONTÍNUA (IC)?

‣ Prática ágil‣ Processo contínuo

Wednesday, November 10, 2010

O QUE É INTEGRAÇÃO CONTÍNUA (IC)?

‣ Prática ágil‣ Processo contínuo‣ Controle de qualidade

Wednesday, November 10, 2010

O QUE É INTEGRAÇÃO CONTÍNUA (IC)?

‣ Prática ágil‣ Processo contínuo‣ Controle de qualidade‣ Automático ou não

Wednesday, November 10, 2010

O QUE É INTEGRAÇÃO CONTÍNUA (IC)?

‣ Prática ágil‣ Processo contínuo‣ Controle de qualidade‣ Automático ou não‣ Reduz

Wednesday, November 10, 2010

O QUE É INTEGRAÇÃO CONTÍNUA (IC)?

‣ Prática ágil‣ Processo contínuo‣ Controle de qualidade‣ Automático ou não‣ Reduz

‣ Custo, Tempo, TrabalhoWednesday, November 10, 2010

OK, O QUE É INTEGRAR?

Wednesday, November 10, 2010

OK, O QUE É INTEGRAR?

É testar! Ver como tudo funciona JUNTO!

Wednesday, November 10, 2010

PORQUE INTEGRAR?

Wednesday, November 10, 2010

PORQUE INTEGRAR?

Existem 10 tipos de pessoas

Wednesday, November 10, 2010

AS QUE ENTENDEM BINÁRIO

Wednesday, November 10, 2010

E AS QUE NÃO ENTENDEM

10

Wednesday, November 10, 2010

E AS QUE NÃO ENTENDEM

Espero que tenham entendido ...

10

Wednesday, November 10, 2010

A atualização não funciona ...

Wednesday, November 10, 2010

Funciona. Algo deve estar errado.

Wednesday, November 10, 2010

Hmn ...

Wednesday, November 10, 2010

Rosquinha!

Wednesday, November 10, 2010

NÃO IMPORTA O TIPO DE PROBLEMA

Wednesday, November 10, 2010

PARA O CLIENTE É A MESMA COISA

Wednesday, November 10, 2010

Não funciona!

Wednesday, November 10, 2010

PORQUE INTEGRAR?

Wednesday, November 10, 2010

‣ Cliente mais satisfeito

PORQUE INTEGRAR?

Wednesday, November 10, 2010

‣ Cliente mais satisfeito‣ Métricas!

PORQUE INTEGRAR?

Wednesday, November 10, 2010

‣ Cliente mais satisfeito‣ Métricas!‣ Aumento da qualidade

PORQUE INTEGRAR?

Wednesday, November 10, 2010

‣ Cliente mais satisfeito‣ Métricas!‣ Aumento da qualidade‣ Bugs detectados mais cedo

PORQUE INTEGRAR?

Wednesday, November 10, 2010

‣ Cliente mais satisfeito‣ Métricas!‣ Aumento da qualidade‣ Bugs detectados mais cedo‣ Sem “release-caos”

PORQUE INTEGRAR?

Wednesday, November 10, 2010

PORQUE INTEGRAR?

Wednesday, November 10, 2010

‣ Seu software tem quantos bugs?

PORQUE INTEGRAR?

Wednesday, November 10, 2010

‣ Seu software tem quantos bugs?‣ Quantos % dele é testado?

PORQUE INTEGRAR?

Wednesday, November 10, 2010

‣ Seu software tem quantos bugs?‣ Quantos % dele é testado?‣ Ele é complicado de manter?

PORQUE INTEGRAR?

Wednesday, November 10, 2010

Parece bom! Isso me custa quanto?

Wednesday, November 10, 2010

Parece bom! Isso me custa quanto?

Nada!

Wednesday, November 10, 2010

Vai me dar mais trabalho né?

Wednesday, November 10, 2010

Vai me dar mais trabalho né?

Você já faz isso

Wednesday, November 10, 2010

VOCÊ JÁ FAZ ISSO!

Wednesday, November 10, 2010

Como assim?

Wednesday, November 10, 2010

Você vai testar o que faz, certo?

VOCÊ JÁ FAZ ISSO

Wednesday, November 10, 2010

Você vai testar o que faz, certo?

VOCÊ JÁ FAZ ISSO

Wednesday, November 10, 2010

E o que você faz depois que vê que

funcionou?

Wednesday, November 10, 2010

Ué, removo os “lixos” ...

Wednesday, November 10, 2010

E se um dia você tiver problemas justo com esse

pedaço de código?

Wednesday, November 10, 2010

Hmn.... Testo de novo?

Wednesday, November 10, 2010

PORQUÊ FAZER 2X A MESMA COISA?

Wednesday, November 10, 2010

E SE VOCÊ GUARDASSE SEUS TESTES?

Wednesday, November 10, 2010

Wednesday, November 10, 2010

Wednesday, November 10, 2010

LEMBRE DISSO:

Wednesday, November 10, 2010

TODA ENTREGA GERA MAIS TRABALHO

Wednesday, November 10, 2010

TODA ENTREGA GERA MAIS TRABALHO

Wednesday, November 10, 2010

TODA ENTREGA GERA MAIS TRABALHO

‣ Seu app já tinha bugs antes

Wednesday, November 10, 2010

TODA ENTREGA GERA MAIS TRABALHO

‣ Seu app já tinha bugs antes‣ O código dele aumenta

Wednesday, November 10, 2010

TODA ENTREGA GERA MAIS TRABALHO

‣ Seu app já tinha bugs antes‣ O código dele aumenta‣ Mais Bugs!

Wednesday, November 10, 2010

TODA ENTREGA GERA MAIS TRABALHO

‣ Seu app já tinha bugs antes‣ O código dele aumenta‣ Mais Bugs!‣ Mais complexo!

Wednesday, November 10, 2010

TODA ENTREGA GERA MAIS TRABALHO

‣ Seu app já tinha bugs antes‣ O código dele aumenta‣ Mais Bugs!‣ Mais complexo!‣ Dica: contratar mais gente não é

solução, é suicídio. (nesse caso)

Wednesday, November 10, 2010

QUEREMOS SAIR DISSO

Wednesday, November 10, 2010

QUEREMOS SAIR DISSO

0

11

23

34

45

56

68

79

90

v 1.0 v 1.1 v 1.2 v 1.3 v 1.5 v 2.0 v 2.1 v 2.2 v 2.3 v 2.5 v 3.0

Bugs

Wednesday, November 10, 2010

PRA ISSO

Wednesday, November 10, 2010

PRA ISSO

0

2

4

6

8

9

11

13

15

v 1.0 v 1.1 v 1.2 v 1.3 v 1.5 v 2.0 v 2.1 v 2.2 v 2.3 v 2.5 v 3.0

Bugs

Wednesday, November 10, 2010

EM RESUMO:

Wednesday, November 10, 2010

QUEREMOS QUE AS NOVAS ENTREGAS GEREM SOMENTE

BUGS NOVOS

Wednesday, November 10, 2010

QUEREMOS CÓDIGOS SIMPLES DE SE LER E POR

CONSEQUÊNCIA, MANTER.

Wednesday, November 10, 2010

QUEREMOS COISAS QUE FUNCIONEM (TESTADAS)

Wednesday, November 10, 2010

Acho que você ta no lugar errado ....

Wednesday, November 10, 2010

Wednesday, November 10, 2010

QUAL A MÁGICA?

Wednesday, November 10, 2010

QUAL A MÁGICA?

IntegreTeste mais. Sofra isso sem o cliente saber.

Wednesday, November 10, 2010

PERCA MENOS TEMPO!

Wednesday, November 10, 2010

PERCA MENOS TEMPO!

Com testes !

Wednesday, November 10, 2010

TESTES

Testar e jogar fora seu trabalho não é uma boa idéia, como

vimos.

Wednesday, November 10, 2010

TESTES UNITÁRIOS

Wednesday, November 10, 2010

TESTES UNITÁRIOS

Dão mais trabalho do que vc pensa

Wednesday, November 10, 2010

TESTES UNITÁRIOS

Dão mais resultado do que você imagina!

Wednesday, November 10, 2010

TESTES UNITÁRIOS

https://github.com/augustohp/ManoWarsWednesday, November 10, 2010

TESTES UNITÁRIOS

Wednesday, November 10, 2010

TESTES UNITÁRIOS

‣ Melhoram a qualidade

Wednesday, November 10, 2010

TESTES UNITÁRIOS

‣ Melhoram a qualidade‣ Diminuem tempo com testes

Wednesday, November 10, 2010

TESTES UNITÁRIOS

‣ Melhoram a qualidade‣ Diminuem tempo com testes‣ Melhoram seu código

Wednesday, November 10, 2010

TESTES UNITÁRIOS

‣ Melhoram a qualidade‣ Diminuem tempo com testes‣ Melhoram seu código‣ Você pensa antes de fazer

Wednesday, November 10, 2010

TESTES UNITÁRIOS

‣ Melhoram a qualidade‣ Diminuem tempo com testes‣ Melhoram seu código‣ Você pensa antes de fazer‣ Identificam erros mais cedo

Wednesday, November 10, 2010

TESTES UNITÁRIOS

‣ Melhoram a qualidade‣ Diminuem tempo com testes‣ Melhoram seu código‣ Você pensa antes de fazer‣ Identificam erros mais cedo‣ Erros pontuais

Wednesday, November 10, 2010

Dói pra instalar?

Wednesday, November 10, 2010

TESTES UNITÁRIOS

Wednesday, November 10, 2010

Funciona em qualquer projeto?

Wednesday, November 10, 2010

Orientado a Objetos, sim.

Wednesday, November 10, 2010

E porquê ele me da mais trabalho?

Wednesday, November 10, 2010

Com o tempo você descobre que seu

código é uma porcaria.

Wednesday, November 10, 2010

PERCA MENOS TEMPO!

Métricas (Relatórios)

Wednesday, November 10, 2010

MÉTRICAS

Wednesday, November 10, 2010

MÉTRICAS

‣ PHP Depend (Geral)

Wednesday, November 10, 2010

MÉTRICAS

‣ PHP Depend (Geral)‣ PEAR Code Sniffer

Wednesday, November 10, 2010

MÉTRICAS

‣ PHP Depend (Geral)‣ PEAR Code Sniffer ‣ PHP CPD

Wednesday, November 10, 2010

PHP DEPEND

Wednesday, November 10, 2010

PHP DEPEND

‣ Gera relatório de métricas

Wednesday, November 10, 2010

PHP DEPEND

‣ Gera relatório de métricas‣ Quão complexo é seu código?

Wednesday, November 10, 2010

PHP DEPEND

‣ Gera relatório de métricas‣ Quão complexo é seu código?‣ Linhas comentadas/código

Wednesday, November 10, 2010

PHP DEPEND

‣ Gera relatório de métricas‣ Quão complexo é seu código?‣ Linhas comentadas/código‣ Permite comparações futuras

Wednesday, November 10, 2010

PHP CODE SNIFFER

Wednesday, November 10, 2010

PHP CODE SNIFFER

‣ Checa padrão no código

Wednesday, November 10, 2010

PHP CODE SNIFFER

‣ Checa padrão no código‣ Relatório de infrações

Wednesday, November 10, 2010

PHP CODE SNIFFER

Wednesday, November 10, 2010

PHP CODE SNIFFER

Wednesday, November 10, 2010

PHP CPD

Wednesday, November 10, 2010

PHP CPD

‣ Copy & Paste Detector

Wednesday, November 10, 2010

PHP CPD

‣ Copy & Paste Detector‣ Busca “semelhanças”

Wednesday, November 10, 2010

PHP CPD

‣ Copy & Paste Detector‣ Busca “semelhanças”‣ Porquê elas são ruins:

Wednesday, November 10, 2010

PHP CPD

‣ Copy & Paste Detector‣ Busca “semelhanças”‣ Porquê elas são ruins:‣ _ Repetiu? Encapsule.

Wednesday, November 10, 2010

PHP CPD

‣ Copy & Paste Detector‣ Busca “semelhanças”‣ Porquê elas são ruins:‣ _ Repetiu? Encapsule.‣ _ Vários pontos de falha iguais

Wednesday, November 10, 2010

PHP UNIT

Wednesday, November 10, 2010

PHP UNIT

‣ Cobertura de código

Wednesday, November 10, 2010

PHP UNIT

‣ Cobertura de código‣ Quantos % dele é testado?

Wednesday, November 10, 2010

PHP UNIT

‣ Cobertura de código‣ Quantos % dele é testado?‣ Erros nos testes

Wednesday, November 10, 2010

PHP UNIT

‣ Cobertura de código‣ Quantos % dele é testado?‣ Erros nos testes‣ Falha nos testes

Wednesday, November 10, 2010

PERCA MENOS TEMPO!

Tarefas repetidas

Wednesday, November 10, 2010

PERCA MENOS TEMPO!

Wednesday, November 10, 2010

PERCA MENOS TEMPO!

‣ Geração de pacotes

Wednesday, November 10, 2010

PERCA MENOS TEMPO!

‣ Geração de pacotes‣ Cópia de códigos

Wednesday, November 10, 2010

PERCA MENOS TEMPO!

‣ Geração de pacotes‣ Cópia de códigos‣ Limpeza de arquivos

Wednesday, November 10, 2010

PERCA MENOS TEMPO!

‣ Geração de pacotes‣ Cópia de códigos‣ Limpeza de arquivos‣ Transferêcia de arquivos

Wednesday, November 10, 2010

PERCA MENOS TEMPO!

‣ Geração de pacotes‣ Cópia de códigos‣ Limpeza de arquivos‣ Transferêcia de arquivos‣ Distribuição de código

Wednesday, November 10, 2010

PERCA MENOS TEMPO!

‣ Geração de pacotes‣ Cópia de códigos‣ Limpeza de arquivos‣ Transferêcia de arquivos‣ Distribuição de código‣ Geração de relatórios

Wednesday, November 10, 2010

PERCA MENOS TEMPO!

Dev

Dev

APP

Clientes

Dev

Wednesday, November 10, 2010

PERCA MENOS TEMPO!

GP

Coordenar equipe

Garantir qualidade

Relatórios

Distruibuição

Wednesday, November 10, 2010

ALGUMAS OPÇÕES

Wednesday, November 10, 2010

PHING

Wednesday, November 10, 2010

PHING

Wednesday, November 10, 2010

PHING

Wednesday, November 10, 2010

PHING

Wednesday, November 10, 2010

RESUMINDO

Wednesday, November 10, 2010

RESUMINDO

Wednesday, November 10, 2010

RESUMINDO

Código do Projeto

Wednesday, November 10, 2010

RESUMINDO

Código do Projeto

Controle de Versões

Wednesday, November 10, 2010

RESUMINDO

Código do Projeto

Controle de Versões

Testes Unitários

Wednesday, November 10, 2010

RESUMINDO

Código do Projeto

Controle de Versões

Testes Unitários

Geração de Pacotes

Wednesday, November 10, 2010

RESUMINDO

Código do Projeto

Controle de Versões

Testes Unitários

Geração de Pacotes

Relatórios

Wednesday, November 10, 2010

RESUMINDO

Wednesday, November 10, 2010

RESUMINDO

‣ Guarda seus testes

Wednesday, November 10, 2010

RESUMINDO

‣ Guarda seus testes‣ Automatiza eles

Wednesday, November 10, 2010

RESUMINDO

‣ Guarda seus testes‣ Automatiza eles‣ Gera alguns relatórios

Wednesday, November 10, 2010

RESUMINDO

Wednesday, November 10, 2010

RESUMINDO

‣ Gera pacote

Wednesday, November 10, 2010

RESUMINDO

‣ Gera pacote‣ Distribui código para o cliente

Wednesday, November 10, 2010

RESUMINDO

‣ Gera pacote‣ Distribui código para o cliente‣ Automatiza geração de relatórios

Wednesday, November 10, 2010

VOLTANDO PRO COMEÇO ...

Wednesday, November 10, 2010

E o bambu?

Wednesday, November 10, 2010

E a integração contínua?

Wednesday, November 10, 2010

INTEGRAR SEMPRE?

Wednesday, November 10, 2010

EXECUTAR TUDO ISSO JUNTO?

Wednesday, November 10, 2010

E A CADA MUDANÇA?

Wednesday, November 10, 2010

EXEMPLO

Wednesday, November 10, 2010

EXEMPLO

SVN Hudson

PHP Depend

PHP Unit

PHPCode Sniffer

Phing

Wednesday, November 10, 2010

HUDSON

Wednesday, November 10, 2010

HUDSON

./java -jar hudson.war

Wednesday, November 10, 2010

HUDSON

Plugins:- Hudson Clover Plugin- Hudson JDepend Plugin- Hudson Phing Plugin- Hudson Subversion Plugin- Hudson xUnit Plugin

Wednesday, November 10, 2010

HUDSON

Wednesday, November 10, 2010

HUDSON

Wednesday, November 10, 2010

HUDSON

Wednesday, November 10, 2010

HUDSON

Wednesday, November 10, 2010

DÚVIDAS?

Wednesday, November 10, 2010

LINKShttp://www.slideshare.net/augustopascutti (esses slides)https://github.com/augustohp/ManoWarshttp://hudson-ci.org/http://phing.info/http://www.phpunit.de/http://pdepend.org/http://github.com/sebastianbergmann/php-hudson-templatehttp://pear.php.net/package/PHP_CodeSnifferhttp://github.com/sebastianbergmann/phpcpd

Artigo:http://martinfowler.com/articles/continuousIntegration.html

Wednesday, November 10, 2010

top related