Integração Contínua
           As possibilidades da automatização
        
                          Victor Hugo Germano
Eu? Quem?


    Victor Hugo Germano

    ●   Ciência da Computação – UFSC
    ●   Gestão Estratégica de TI – UNIVALI
    ●...
Agenda
       ● Mitos
       ● Princípios

       ● O Processo de IC

       ● Controle de Versão

       ● Testes

      ...
 
            Definição de requisitos




            Análise e Design




 
    Tempo
            Desenvolvimento


     ...
Integração de Software


    “No final é só juntar tudo e liberar 
    uma versão”


    Subestimado por:
     Gerentes
  ...
Integração de Software

      Riscos são subestimados
    ●




    ●    Dependências de subsistemas
    ●    Interpretaçã...
Comunicação




           
                  http://malditacomedia.blogspot.com
Velocidade + Qualidade + Feedback = Valor de Negócio


    Para o Cliente:


     Resultados rápidos
    ●



     Aderênc...
Princípios Ágeis
●    Satisfação do Cliente como prioridade máxima, através da 
entrega contínua de valor agregado
●    A ...
Integração Contínua?

    ●    Desenvolvedores sincronizam códigos produzidos ao menos 
        uma vez ao dia
    ●    Te...
O Processo




          
                 http://malditacomedia.blogspot.com
Objetivos

    ●    Redução de Riscos
    ●    Automatização de processos repetitivos
    ●    Gerar Software funcionando
...
Elementos do Processo




              
Controle de Versão

    Ainda existem empresas sem controle de versão!!!

     ● CVS
     ● Subversion

     ● SVK

     ●...
Testes Automatizados




“Desenvolver software sem testes automatizados é irresponsabilidade profissional”
    Bob Martin,...
Junit




 <junit fork=quot;yesquot; printsummary=quot;noquot; haltonfailure=quot;noquot;>
   <batchtest fork=quot;yesquot...
Selenium

        ●   Grava Navegação
        ●   Simples de Usar
        ●   Integração com Firefox



     
Fitnesse       Wiki para Testes de Aceitação

                
Teste!! Teste!! Teste!!

     ●    JMeter                     ● Ejb3Unit
     ●    HttpUnit                   ● DBUnit
   ...
Auditoria de código




                           
Findbugs




                
Checkstyle


    Padronização:


    ●    Convenções de nomenclatura
    ●    Tamanho de métodos
    ●    Notação Javadoc ...
Quantas linhas de código são exercitadas por testes automatizados?




                                 
PMD


●    Possíveis Bugs – blocos try/catch/finally/switch vazios
●    Dead code – variáveis, parametros e métodos não ut...
E como juntar tudo isso??




                       
Servidores de Build




                       
Topa um desafio?


    Reduza o tempo de criação de uma versão!




     ●    Testes unitários realizados 
     ●    Docum...
Obrigado!




    http://malditacomedia.blogspot.com
            victorhg@gmail.com

                      
Dúvidas?




         
Upcoming SlideShare
Loading in …5
×

Integração Contínua

2,123
-1

Published on

Os beneficios da automatização.

Victor Hugo Germano apresenta sua visão do processo IC para projetos em java.
Na apresentação são listados inúmeras ferramentas que se integram, garantindo uma melhor qualidade de software.

Published in: Technology

Integração Contínua

  1. 1. Integração Contínua As possibilidades da automatização     Victor Hugo Germano
  2. 2. Eu? Quem? Victor Hugo Germano ● Ciência da Computação – UFSC ● Gestão Estratégica de TI – UNIVALI ● Audaces Automação Industrial ● Colunista da Revista Visão Ágil ● Autor: A Maldita Comédia ● Coding Dojo Floripa     http://malditacomedia.blogspot.com
  3. 3. Agenda ● Mitos ● Princípios ● O Processo de IC ● Controle de Versão ● Testes ● Inspeção ● Servidores ● Feedback ● Desafio     http://malditacomedia.blogspot.com
  4. 4.   Definição de requisitos Análise e Design   Tempo Desenvolvimento Teste/Correção
  5. 5. Integração de Software “No final é só juntar tudo e liberar  uma versão” Subestimado por:  Gerentes ●  Desenvolvedores  ●  Clientes ● E a realidade?     http://malditacomedia.blogspot.com
  6. 6. Integração de Software   Riscos são subestimados ● ●  Dependências de subsistemas ●  Interpretação errada de requisitos  ●  Incompatibilidade entre interfaces ●  Testes demoram demais ●  Correções demoram mais ainda ●  Atrasos tornam­se comuns ●  O caos está instalado     http://malditacomedia.blogspot.com
  7. 7. Comunicação     http://malditacomedia.blogspot.com
  8. 8. Velocidade + Qualidade + Feedback = Valor de Negócio Para o Cliente:  Resultados rápidos ●  Aderência a regras de negócio ●  Funcionamento correto da aplicação ●  Satisfação  ●     http://malditacomedia.blogspot.com
  9. 9. Princípios Ágeis ●  Satisfação do Cliente como prioridade máxima, através da  entrega contínua de valor agregado ●  A principal medida de progresso é software funcionando ●  Grupos interdisciplinares trabalham em conjunto com o cliente  para o sucesso do projeto ●  Equipes autogerenciáveis, indivíduos motivados, comunicação  e simplicidade são valores importantes ●  Melhoria Contínua para maximizar a produtividade e  excelência da equipe   Agile Manifesto Principles   http://malditacomedia.blogspot.com
  10. 10. Integração Contínua? ●  Desenvolvedores sincronizam códigos produzidos ao menos  uma vez ao dia ●  Testes garantem a consistência da base de código unificada ●  Métricas são aferidas ●  Relatórios gerados ●  Uma versão compilada, testada e pronta para uso é criada ●  Qualquer problema na construção da versão possuí  prioridade máxima ●  O código é constantemente revisado em busca de melhorias     Paul Duval – Continuous Integration, 2007
  11. 11. O Processo     http://malditacomedia.blogspot.com
  12. 12. Objetivos ●  Redução de Riscos ●  Automatização de processos repetitivos ●  Gerar Software funcionando ●  Ampliar a confiança no produto ●  Ampliar a visibilidade do projeto     http://malditacomedia.blogspot.com
  13. 13. Elementos do Processo    
  14. 14. Controle de Versão Ainda existem empresas sem controle de versão!!! ● CVS ● Subversion ● SVK ● Mercurial ● Bazaar ● Monotone     http://malditacomedia.blogspot.com
  15. 15. Testes Automatizados “Desenvolver software sem testes automatizados é irresponsabilidade profissional”   Bob Martin, 2008   http://malditacomedia.blogspot.com
  16. 16. Junit  <junit fork=quot;yesquot; printsummary=quot;noquot; haltonfailure=quot;noquot;>    <batchtest fork=quot;yesquot; todir=quot;${reports.test}quot;>         <fileset dir=quot;${classesDir}quot;>         <include name=quot;**/*Test.classquot; />         </fileset>    </batchtest>    <formatter type=quot;xmlquot; />       <classpath refid=quot;classpath.testquot; />  </junit>  <junitreport todir=quot;${reports.test}quot;>       <fileset dir=quot;${reports.test}quot;>  <include name=quot;TEST­*.xmlquot; />       </fileset>         <report todir=quot;${reports.test}quot; />    </junitreport>
  17. 17. Selenium ● Grava Navegação ● Simples de Usar ● Integração com Firefox    
  18. 18. Fitnesse Wiki para Testes de Aceitação    
  19. 19. Teste!! Teste!! Teste!! ●  JMeter ● Ejb3Unit ●  HttpUnit ● DBUnit ●  SQLUnit ● dbMonster http://java­source.net/open­source/testing­tools    
  20. 20. Auditoria de código    
  21. 21. Findbugs    
  22. 22. Checkstyle Padronização: ●  Convenções de nomenclatura ●  Tamanho de métodos ●  Notação Javadoc  ●  Duplicação de Código ●  Complexidade de branches    
  23. 23. Quantas linhas de código são exercitadas por testes automatizados?    
  24. 24. PMD ●  Possíveis Bugs – blocos try/catch/finally/switch vazios ●  Dead code – variáveis, parametros e métodos não utilizados ● Expressões muito complexas – blocos if desnecessários para  laços for que poderiam ser laços while ●  Customização de regras: Um grande número de métodos públicos e atributos declarados em uma  classe pode significar que a classe precisa ser quebrada já que um esforço  mais será necessário para testá­la.    
  25. 25. E como juntar tudo isso??    
  26. 26. Servidores de Build    
  27. 27. Topa um desafio? Reduza o tempo de criação de uma versão! ●  Testes unitários realizados  ●  Documentações geradas ●  Métricas de qualidade aferidas ●  Script de banco de dados adequado  ●  Testes de integração realizados    
  28. 28. Obrigado! http://malditacomedia.blogspot.com victorhg@gmail.com    
  29. 29. Dúvidas?    

×