Simpósio Brasileiro de Qualidade de Software - SBQSQUALIDADE                             Instituto Nokia de Tecnologia    ...
Agenda                            1. Introdução                            2. Contexto do Ambiente                        ...
IntroduçãoCompany Confidential                       3
INTRODUÇÃO      Crescente adoção de metodologias ágeis para o    desenvolvimento de software.     Técnicas e estratégias e...
INTRODUÇÃO      O Processo de Integração Contínua é a prática no onde toda    equipe deve integrar seu trabalho sempre a c...
INTRODUÇÃO        Vantagens conhecidas da Integração Contínua:           A redução de riscos obtida através da detecção e ...
INTRODUÇÃOCompany Confidential                       7
Contexto do AmbienteCompany Confidential                       8
CONTEXTO DO AMBIENTE        Instituto Nokia de Tecnologia – INdT            É uma instituição independente e sem fins lucr...
CONTEXTO DO AMBIENTE        SCRUM              Metodologia ágil e flexível, centrada no trabalho em equipe;            Uti...
CONTEXTO DO AMBIENTE        Projeto Piloto             Realizar a manutenção preventiva de equipamentos que são          u...
CONTEXTO DO AMBIENTE        Projeto Piloto            3 módulos de desenvolvimento: um cliente web na plataforma Java     ...
Processo Multiplataforma deIntegração ContínuaCompany Confidential                          13
PROCESSO Multiplataforma de Integração Contínua        O processo deveria fazer parte da metodologia ágil Scrum.      Prim...
PROCESSO Multiplataforma de Integração Contínua        Hudson Vantagens:              Ferramenta livre,.              Inte...
PROCESSO Multiplataforma de Integração Contínua        HUDSONCompany Confidential                                     16
PROCESSO Multiplataforma de Integração Contínua        Para o módulo do sistema em Java, foi utilizado Apache Ant.        ...
PROCESSO Multiplataforma de Integração Contínua      As duas plataformas trabalhavam paralelamente e    integradas por cau...
PROCESSO Multiplataforma de Integração Contínua     Arquitetura do Processo de Integração Contínua    Multiplataforma:Comp...
Execução do Processo eResultadosCompany Confidential                         20
Execução do Processo e Resultados     Sprint Planning          A estimativa das estórias levavam em consideração a codific...
Execução do Processo e Resultados         Quando a ferramenta Hudson detectava falhas em qualquer passo        desse proce...
Execução do Processo e Resultados     Resultados          No fim do Sprint obtinha-se uma entrega de software estável para...
Execução do Processo e Resultados      Resultados           Conforme o processo era executado, a cobertura de testes aumen...
Execução do Processo e Resultados      Resultados Atuais            Integração com a ferramenta de cobertura de código.Com...
Execução do Processo e Resultados      Resultados Atuais          Integração com a Ferramenta Selenium para testes de acei...
ConclusãoCompany Confidential                       27
CONCLUSÃO      Este processo de integração contínua possibilitou testes automatizados,    uma distribuição rápida e versõe...
OBRIGADA!                       Perguntas??Company Confidential                                     29
Upcoming SlideShare
Loading in …5
×

Implantação de Ambiente de Integração contínua para projeto que usa Java e C

1,943 views

Published on

Experiência de implantar um ambiente de integração contínua em um projeto multiplataforma

Published in: Technology
  • Be the first to comment

Implantação de Ambiente de Integração contínua para projeto que usa Java e C

  1. 1. Simpósio Brasileiro de Qualidade de Software - SBQSQUALIDADE Instituto Nokia de Tecnologia Unit Test Bug Sucess INdT Melhoria no Desenvolvimento Ágil com Implantação de Processo de Integração Contínua Multiplataforma para Java e .NET AGILIDADE SELENIUM Verificação Hudson Eliane Collins, Thiago Falcão, Rafael Cunha e Vicente Lucena SCRUM Curitiba, Jun 2011
  2. 2. Agenda 1. Introdução 2. Contexto do Ambiente 3. Processo Multiplataforma de Integração Contínua 4. Execução e Resultados 5. ConclusãoCompany Confidential
  3. 3. IntroduçãoCompany Confidential 3
  4. 4. INTRODUÇÃO Crescente adoção de metodologias ágeis para o desenvolvimento de software. Técnicas e estratégias estão sendo pesquisadas para garantir a qualidade e confiabilidade dos sistemas desenvolvidos. A integração contínua se destaca ganhando importância por proporcionar informações que dizem respeito à qualidade durante o desenvolvimento de maneira automática e contínua.Company Confidential 4
  5. 5. INTRODUÇÃO O Processo de Integração Contínua é a prática no onde toda equipe deve integrar seu trabalho sempre a cada alteração. Cada integração é verificada, testes unitários e de aceitação são executados para detectar defeitos o mais rápido possível. É possível reduzir problemas de integração, controlar versões estáveis do sistema e permitir que o time desenvolva rapidamente um software coesoCompany Confidential 5
  6. 6. INTRODUÇÃO Vantagens conhecidas da Integração Contínua: A redução de riscos obtida através da detecção e correção de defeitos mais cedo. Automação de processos manuais e repetitivos (compilação, integração de base de dados, teste, inspeção, distribuição e feedback). Permitir uma melhor visibilidade de projeto (estatísticas reais e recentes fornecidas nos relatórios gerados ). Verificações automáticas de cobertura, validação de padrões de design de código e padronização.Company Confidential 6
  7. 7. INTRODUÇÃOCompany Confidential 7
  8. 8. Contexto do AmbienteCompany Confidential 8
  9. 9. CONTEXTO DO AMBIENTE Instituto Nokia de Tecnologia – INdT É uma instituição independente e sem fins lucrativos comprometida com a realização de pesquisa e desenvolvimento de soluções tecnológicas através do desenvolvimento de aplicações, novas tecnologias e conceitos. A área onde a experiência foi desenvolvida foi Tecnologias de Produto e Manufatura (PMT).Company Confidential 9
  10. 10. CONTEXTO DO AMBIENTE SCRUM Metodologia ágil e flexível, centrada no trabalho em equipe; Utilizada para o desenvolvimento incremental e iterativo de qualquer produtoCompany Confidential 10
  11. 11. CONTEXTO DO AMBIENTE Projeto Piloto Realizar a manutenção preventiva de equipamentos que são utilizados ininterruptamente na produção de uma fábrica de produtos eletrônicos. O sistema deveria se comunicar com equipamentos da linha de produção. Evitar a substituição prematura de uma peça ou a parada de linha de produção devido ao desgaste intensivo do equipamento. Diminuir os custos com a manutenção dos equipamentos de produção. Comunicar-se com outros sistemas de produção, com isso utilização de diferentes tecnologias em seu desenvolvimento.Company Confidential 11
  12. 12. CONTEXTO DO AMBIENTE Projeto Piloto 3 módulos de desenvolvimento: um cliente web na plataforma Java usando um servidor JBoss; O segundo e o terceiro: um webservice e um serviço na plataforma .NET executando em um servidor Internet Infomation Services (IIS). Os módulos necessitavam comunicar-se entre si. Necessária a realização da integração entre os módulos. Não era interessante que cada integrante da equipe executasse os testes unitários em todo o sistema. Se perderia muito tempo com erros de integrações e testes manuais.Company Confidential 12
  13. 13. Processo Multiplataforma deIntegração ContínuaCompany Confidential 13
  14. 14. PROCESSO Multiplataforma de Integração Contínua O processo deveria fazer parte da metodologia ágil Scrum. Primeira Etapa: Avaliar frameworks de integração contínua disponíveis no mercado. CruiseControl.Net: Ferramenta proprietária e difícil configuração em xml. Não possui muitos pluggins. HudsonCompany Confidential 14
  15. 15. PROCESSO Multiplataforma de Integração Contínua Hudson Vantagens: Ferramenta livre,. Interface amigável e simples de configurar Configuração do ambiente de teste – segundo sprint Possui plug-ins, os quais facilitaram a integração com outros softwares e plataformas que seriam usados no projeto. Junit Nunit Subversion (SVN) MSBuild. Selenium …Company Confidential 15
  16. 16. PROCESSO Multiplataforma de Integração Contínua HUDSONCompany Confidential 16
  17. 17. PROCESSO Multiplataforma de Integração Contínua Para o módulo do sistema em Java, foi utilizado Apache Ant. Criado um XML responsável por compilar todo o código escrito em Java, executar os testes unitários usando JUnit, empacotar o arquivo, e finalmente enviá-lo para o servidor JBoss através da ferramenta Hudson. Para o módulo do sistema na plataforma .NET foi utilizado o Microsoft MSBuild. Criado um arquivo MSBuild responsável por compilar o código escrito em .NET, executar os testes unitários usando NUnit, e finalmente, executar a distribuição. Distribuição: Republicar e reiniciar a nova versão do webservice no servidor IIS, como também republicar e reiniciar a nova versão do serviço Windows.Company Confidential 17
  18. 18. PROCESSO Multiplataforma de Integração Contínua As duas plataformas trabalhavam paralelamente e integradas por causa das várias compilações, testes e distribuições diárias. Quando ocorriam erros de compilação no servidor de integração contínua a correção ou retorno era prioritário Impedimentos não poderiam ser gerados para não atrapalhar o desenvolvimento do restante da equipe.Company Confidential 18
  19. 19. PROCESSO Multiplataforma de Integração Contínua Arquitetura do Processo de Integração Contínua Multiplataforma:Company Confidential 19
  20. 20. Execução do Processo eResultadosCompany Confidential 20
  21. 21. Execução do Processo e Resultados Sprint Planning A estimativa das estórias levavam em consideração a codificação dos testes unitários e a integração do código tanto para o módulo .NET como para o módulo Java. Sprint Os desenvolvedores codificavam os testes unitários usando JUnit e Mockito para a plataforma Java e NUnit e MOQ para a plataforma .NET. Ao final de cada dia, o time tinha que enviar o código trabalhado para o repositório (SVN) Hudson detectava e executava os scripts do Ant, no caso do módulo Java e MSBuild no caso do módulo .NET Compilavam, executavam os testes, empacotavam o código e enviavam a versão do software estável para o servidor de destinoCompany Confidential 21
  22. 22. Execução do Processo e Resultados Quando a ferramenta Hudson detectava falhas em qualquer passo desse processo, o script (Ant ou MSBuild) era interrompido. A versão não era enviada para o servidor de destino e todo time recebia um e-mail com o relatório sobre as falhas encontradas. É possível visualizar e das ações executadas por cada membro do time, identificando o autor de cada mudança.Company Confidential 22
  23. 23. Execução do Processo e Resultados Resultados No fim do Sprint obtinha-se uma entrega de software estável para ser validada pela equipe de teste para validar o critério de aceitação. Em 10 Sprints de projeto foram geradas 140 builds para o módulo Java e 283 builds para o módulo .NET.Company Confidential 23
  24. 24. Execução do Processo e Resultados Resultados Conforme o processo era executado, a cobertura de testes aumentava e a incidência de falhas no software diminuía. Isso ocorreu porque o ambiente automatizado propiciou mais facilidade na confecção e execução de testes unitários e com isso aumentar a qualidade do código gerado.Company Confidential 24
  25. 25. Execução do Processo e Resultados Resultados Atuais Integração com a ferramenta de cobertura de código.Company Confidential 25
  26. 26. Execução do Processo e Resultados Resultados Atuais Integração com a Ferramenta Selenium para testes de aceitação automáticos.Company Confidential 26
  27. 27. ConclusãoCompany Confidential 27
  28. 28. CONCLUSÃO Este processo de integração contínua possibilitou testes automatizados, uma distribuição rápida e versões do software atualizadas e estáveis. Os desenvolvedores das plataformas Java e .NET ficaram focados somente no desenvolvimento em sua respectiva tecnologia. A equipe de testes foi beneficiada, pois as versões de software para teste se tornaram mais estáveis e sem defeitos de integração e implementação. Melhorias: Evoluir o ambiente para inspeção e padronização do código. E melhorar a automação dos testes de aceitação.Company Confidential 28
  29. 29. OBRIGADA! Perguntas??Company Confidential 29

×