Your SlideShare is downloading. ×
Integração Contínua
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

Integração Contínua

1,983

Published on

Os beneficios da automatização. …

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
0 Comments
8 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
1,983
On Slideshare
0
From Embeds
0
Number of Embeds
2
Actions
Shares
0
Downloads
88
Comments
0
Likes
8
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 1. Integração Contínua As possibilidades da automatização     Victor Hugo Germano
  • 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. Agenda ● Mitos ● Princípios ● O Processo de IC ● Controle de Versão ● Testes ● Inspeção ● Servidores ● Feedback ● Desafio     http://malditacomedia.blogspot.com
  • 4.   Definição de requisitos Análise e Design   Tempo Desenvolvimento Teste/Correção
  • 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. 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. Comunicação     http://malditacomedia.blogspot.com
  • 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. 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. 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. O Processo     http://malditacomedia.blogspot.com
  • 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. Elementos do Processo    
  • 14. Controle de Versão Ainda existem empresas sem controle de versão!!! ● CVS ● Subversion ● SVK ● Mercurial ● Bazaar ● Monotone     http://malditacomedia.blogspot.com
  • 15. Testes Automatizados “Desenvolver software sem testes automatizados é irresponsabilidade profissional”   Bob Martin, 2008   http://malditacomedia.blogspot.com
  • 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. Selenium ● Grava Navegação ● Simples de Usar ● Integração com Firefox    
  • 18. Fitnesse Wiki para Testes de Aceitação    
  • 19. Teste!! Teste!! Teste!! ●  JMeter ● Ejb3Unit ●  HttpUnit ● DBUnit ●  SQLUnit ● dbMonster http://java­source.net/open­source/testing­tools    
  • 20. Auditoria de código    
  • 21. Findbugs    
  • 22. Checkstyle Padronização: ●  Convenções de nomenclatura ●  Tamanho de métodos ●  Notação Javadoc  ●  Duplicação de Código ●  Complexidade de branches    
  • 23. Quantas linhas de código são exercitadas por testes automatizados?    
  • 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. E como juntar tudo isso??    
  • 26. Servidores de Build    
  • 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. Obrigado! http://malditacomedia.blogspot.com victorhg@gmail.com    
  • 29. Dúvidas?    

×