IntegraçãoContínua com Hudson, Selenium e Sonar<br />Arthur Cesar Oreana<br />aoreana@gmail.com<br />@arthur_oreana<br />
A Equipe…<br />
Trabalhaunida…<br />
Na construção de um software…<br />
VaiparaProdução? Pendrivenele!<br />
Super computador de Produção<br />
Experiência dos usuários<br />
Erro no sistema<br />
Algoestáerrado…<br />
<ul><li>Integraçãoficapara o últimoestágio do desenvolvimento
 Testes feitosapenas com o software pronto
Síndrome “masfuncionou na minhamáquina!”
 “Ah, qualidade do software é responsabilidade do time de QA!”
Riscossão sub-estimados</li></li></ul><li><ul><li>Interpretaçãoerrada de requisitos
Incompatibilidade entre interfaces
Muitos bugs na fase de integração
 Testes demoramdemais
Atraso na entrega</li></li></ul><li>HA!<br />
“Integração Contínua é uma prática de desenvolvimento de software onde os membros de um time integram seu trabalho freqüen...
<ul><li> Controle de versão
 Construção
 Teste
 Inspeção
 Feedback</li></li></ul><li>Controle de versão<br /><ul><li> Local centralizadoparaarmazenamento dos arquivos de um projet...
Guardarversões é comoter um botão “desfazer” à nossadisposição!
Quandodiversaspessoastrabalham juntas em um projeto, o repositóriotorna-se o destino final de tudo o que é produzido.</li>...
Ferramentasdisponíveisparaessaetapa:
 ANT
Próximos SlideShares
Carregando em…5
×

Integração Contínua com Hudson, Selenium e Sonar

4.479 visualizações

Publicada em

Integração Contínua com Hudson, Selenium e Sonar

Publicada em: Tecnologia

Integração Contínua com Hudson, Selenium e Sonar

  1. 1. IntegraçãoContínua com Hudson, Selenium e Sonar<br />Arthur Cesar Oreana<br />aoreana@gmail.com<br />@arthur_oreana<br />
  2. 2. A Equipe…<br />
  3. 3. Trabalhaunida…<br />
  4. 4. Na construção de um software…<br />
  5. 5. VaiparaProdução? Pendrivenele!<br />
  6. 6. Super computador de Produção<br />
  7. 7. Experiência dos usuários<br />
  8. 8. Erro no sistema<br />
  9. 9. Algoestáerrado…<br />
  10. 10.
  11. 11. <ul><li>Integraçãoficapara o últimoestágio do desenvolvimento
  12. 12. Testes feitosapenas com o software pronto
  13. 13. Síndrome “masfuncionou na minhamáquina!”
  14. 14. “Ah, qualidade do software é responsabilidade do time de QA!”
  15. 15. Riscossão sub-estimados</li></li></ul><li><ul><li>Interpretaçãoerrada de requisitos
  16. 16. Incompatibilidade entre interfaces
  17. 17. Muitos bugs na fase de integração
  18. 18. Testes demoramdemais
  19. 19. Atraso na entrega</li></li></ul><li>HA!<br />
  20. 20.
  21. 21.
  22. 22. “Integração Contínua é uma prática de desenvolvimento de software onde os membros de um time integram seu trabalho freqüentemente, geralmente cada pessoa integra pelo menos diariamente – podendo haver múltiplas integrações por dia. Cada integração é verificada por um build automatizado (incluindo testes) para detectar erros de integração o mais rápido possível.<br />Muitos times acham que essa abordagem leva a uma significante redução nos problemas de integração e permite que um time desenvolva software coeso mais rapidamente.<br /> – Martin Fowler<br />
  23. 23. <ul><li> Controle de versão
  24. 24. Construção
  25. 25. Teste
  26. 26. Inspeção
  27. 27. Feedback</li></li></ul><li>Controle de versão<br /><ul><li> Local centralizadoparaarmazenamento dos arquivos de um projeto, e tambémcontrolam as versõesdessesarquivos.
  28. 28. Guardarversões é comoter um botão “desfazer” à nossadisposição!
  29. 29. Quandodiversaspessoastrabalham juntas em um projeto, o repositóriotorna-se o destino final de tudo o que é produzido.</li></li></ul><li>Construção (Build)<br /><ul><li>Processoautomatizado de construçãodaaplicação.
  30. 30. Ferramentasdisponíveisparaessaetapa:
  31. 31. ANT
  32. 32. MAVEN
  33. 33. MAKE</li></li></ul><li>Teste<br /><ul><li>Unitários: jUnit
  34. 34. Funcionais: Selenium
  35. 35. Fitnesse</li></li></ul><li>Inspeção<br /><ul><li> Análise estática
  36. 36. PMD
  37. 37. FindBugs
  38. 38. Duplicação de código
  39. 39. CPD
  40. 40. Simian
  41. 41. Complexidade/Dependências
  42. 42. Jdepend
  43. 43. JavaNCSS
  44. 44. SourceMonitor</li></li></ul><li>Feedback<br /><ul><li>ExtremmeFeedback é uma maneira de disponibilizarmos as informações sobre o teste em dispositivos que chamem a atenção da equipe de desenvolvimento:
  45. 45. Letreiros digitais
  46. 46. Luzes no estilo de um semáforo
  47. 47. Etc</li></li></ul><li>Servidores de Integração<br /><ul><li>CruiseControl
  48. 48. Continuum
  49. 49. Hudson</li></li></ul><li>Sincronização do código produzido ao menos uma vez ao dia<br />Testes garantem a consistência da base de código unificada<br />Relatórios de qualidade gerados automaticamente<br />Problemas na construção do software tem prioridade máxima<br />Facilmente é possível saber a saúde do projeto<br />
  50. 50.
  51. 51. <ul><li> PMD
  52. 52. jUnit
  53. 53. Apache jMeter</li></li></ul><li><ul><li> Hudson
  54. 54. Selenium
  55. 55. Tomcat
  56. 56. Sonar</li></li></ul><li>sales.jar v3.0 (Customer.java v2, Product.java v1, ...)<br />. sales.jar v3.01<br />. sales.jar v3.02<br />. sales.jar v.4<br />salesutils.war v1.0<br />. salesutils.war v1.1<br />hibernate.jar v3.2<br />Component<br />Repository<br />(Maven)<br />Customer.java v1<br />. Customer.java v2<br />. Customer.java v3<br />Product.java v1<br />. Product.java v2<br />Invoice.java v1<br />Source-Code<br />Repository<br />Application<br />Repository<br />Archiva<br />Complete QA TeamWorkEnvironmentwithConfiguration Management<br />Subversion<br />(SVN)<br />Advanced<br />Hudson<br />Maven<br />...<br />Maven<br />Maven<br />Maven<br />Maven<br />Developer 1<br />Developer 2<br />Developer N<br />Tester<br />
  57. 57. QA<br />Database<br />salesapp.ear v5.0 salesapp.ear v5.1a<br />salesapp.ear v6.0<br />QA<br />App Server<br />Application<br />Repository<br />Portal<br />Content<br />Management<br />Project web-site<br />“One-Click Publishing”<br />Deploy<br />Advanced<br />Hudson<br />Delivery<br />Automation<br />Maven<br />AdvancedContinuousIntegration. daily build withscheduleoptions<br />. ear, war version controlrepository<br />. batch tests(unit, coverage, functional, static, load, xref, ncss, etc.)<br />. project web-site generation<br />. email alerts (build ortestproblems)<br />One-Click Deploy<br />Production<br />Database<br />Production<br />App Server<br />One-Click App “Production”<br />Versioning<br />(Example: v 5.1)<br />
  58. 58. Referências<br /><ul><li> www.powerlogic.com.br
  59. 59. www.google.com</li></li></ul><li>Obrigado!<br />Arthur Cesar Oreana<br />aoreana@gmail.com<br />arthur_oreana<br />

×