SlideShare ist ein Scribd-Unternehmen logo
1 von 29
Downloaden Sie, um offline zu lesen
Simpósio Brasileiro de Qualidade de Software - SBQS
QUALIDADE
                             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
Agenda
                            1. Introdução


                            2. Contexto do Ambiente

                            3. Processo
                               Multiplataforma de
                               Integração Contínua
                            4. Execução e Resultados


                            5. Conclusão

Company Confidential
Introdução




Company Confidential
                       3
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
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 coeso



Company Confidential
                                                    5
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
INTRODUÇÃO




Company Confidential
                       7
Contexto do Ambiente




Company Confidential
                       8
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
CONTEXTO DO AMBIENTE
        SCRUM

              Metodologia ágil e flexível, centrada no trabalho em equipe;
            Utilizada para o desenvolvimento incremental e iterativo de
          qualquer produto




Company Confidential
                                                                10
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
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
Processo Multiplataforma de
Integração Contínua




Company Confidential
                          13
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.
             Hudson




Company Confidential
                                                                 14
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
PROCESSO Multiplataforma de Integração Contínua
        HUDSON




Company Confidential
                                     16
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
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
PROCESSO Multiplataforma de Integração Contínua
     Arquitetura do Processo de Integração Contínua
    Multiplataforma:




Company Confidential
                                                19
Execução do Processo e
Resultados




Company Confidential
                         20
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 destino


Company Confidential
                                                              21
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
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
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
Execução do Processo e Resultados
      Resultados Atuais
            Integração com a ferramenta de cobertura de código.




Company Confidential
                                                             25
Execução do Processo e Resultados
      Resultados Atuais
          Integração com a Ferramenta Selenium para testes de aceitação
         automáticos.




Company Confidential
                                                           26
Conclusão




Company Confidential
                       27
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
OBRIGADA!
                       Perguntas??




Company Confidential
                                     29

Weitere ähnliche Inhalte

Was ist angesagt?

Qualidade de Software: Ferramentas de apoio
Qualidade de Software: Ferramentas de apoioQualidade de Software: Ferramentas de apoio
Qualidade de Software: Ferramentas de apoioAlex Camargo
 
Sistemas de controle de versão
Sistemas de controle de versãoSistemas de controle de versão
Sistemas de controle de versãoMarcos Pessoa
 
Filosofia De Desenvolvimento De Software
Filosofia De Desenvolvimento De SoftwareFilosofia De Desenvolvimento De Software
Filosofia De Desenvolvimento De SoftwareSérgio Luiz Jordão
 
Sistemas de controle de versão
Sistemas de controle de versãoSistemas de controle de versão
Sistemas de controle de versãoocfelipe
 
Continuous delivery
Continuous deliveryContinuous delivery
Continuous deliveryMarco Valtas
 
Tendências e Dicas para o Desenvolvimento de Software
Tendências e Dicas para o Desenvolvimento de SoftwareTendências e Dicas para o Desenvolvimento de Software
Tendências e Dicas para o Desenvolvimento de SoftwareNorberto Santos
 
Fundamentos Engenharia de Software.pptx
Fundamentos Engenharia de Software.pptxFundamentos Engenharia de Software.pptx
Fundamentos Engenharia de Software.pptxRoberto Nunes
 
ALM Open Source Ponta a Ponta - Minicurso Globalcode MC-122
ALM Open Source Ponta a Ponta - Minicurso Globalcode MC-122ALM Open Source Ponta a Ponta - Minicurso Globalcode MC-122
ALM Open Source Ponta a Ponta - Minicurso Globalcode MC-122Bruno Souza
 
Desconstruindo monolitos - Construindo microservicos em Delphi
Desconstruindo monolitos - Construindo microservicos em DelphiDesconstruindo monolitos - Construindo microservicos em Delphi
Desconstruindo monolitos - Construindo microservicos em DelphiFelipe Caputo
 
Open4Education | MC122 - Introdução a ALM OpenSource
Open4Education | MC122 - Introdução a ALM OpenSourceOpen4Education | MC122 - Introdução a ALM OpenSource
Open4Education | MC122 - Introdução a ALM OpenSourcetdc-globalcode
 
Simtecce 2011 Integracao Continua
Simtecce 2011 Integracao ContinuaSimtecce 2011 Integracao Continua
Simtecce 2011 Integracao ContinuaPwC
 
Gerenciamento da Qualidade de Software 2.pptx
Gerenciamento da Qualidade de Software 2.pptxGerenciamento da Qualidade de Software 2.pptx
Gerenciamento da Qualidade de Software 2.pptxRoberto Nunes
 
Modelos de Processo e Desenvolvimento de Software 3 - Prof.ª Cristiane Fidelix
Modelos de Processo e Desenvolvimento de Software 3 - Prof.ª Cristiane FidelixModelos de Processo e Desenvolvimento de Software 3 - Prof.ª Cristiane Fidelix
Modelos de Processo e Desenvolvimento de Software 3 - Prof.ª Cristiane FidelixCris Fidelix
 
Introdução a Engenharia de Software - Prof.ª Cristiane Fidelix
Introdução a Engenharia de Software - Prof.ª Cristiane FidelixIntrodução a Engenharia de Software - Prof.ª Cristiane Fidelix
Introdução a Engenharia de Software - Prof.ª Cristiane FidelixCris Fidelix
 
Modelos de Processo e Desenvolvimento de Software 1 - Prof.ª Cristiane Fidelix
Modelos de Processo e Desenvolvimento de Software 1 - Prof.ª Cristiane FidelixModelos de Processo e Desenvolvimento de Software 1 - Prof.ª Cristiane Fidelix
Modelos de Processo e Desenvolvimento de Software 1 - Prof.ª Cristiane FidelixCris Fidelix
 

Was ist angesagt? (20)

Qualidade de Software: Ferramentas de apoio
Qualidade de Software: Ferramentas de apoioQualidade de Software: Ferramentas de apoio
Qualidade de Software: Ferramentas de apoio
 
Sistemas de controle de versão
Sistemas de controle de versãoSistemas de controle de versão
Sistemas de controle de versão
 
Filosofia De Desenvolvimento De Software
Filosofia De Desenvolvimento De SoftwareFilosofia De Desenvolvimento De Software
Filosofia De Desenvolvimento De Software
 
Sistemas de controle de versão
Sistemas de controle de versãoSistemas de controle de versão
Sistemas de controle de versão
 
Continuous delivery
Continuous deliveryContinuous delivery
Continuous delivery
 
Tendências e Dicas para o Desenvolvimento de Software
Tendências e Dicas para o Desenvolvimento de SoftwareTendências e Dicas para o Desenvolvimento de Software
Tendências e Dicas para o Desenvolvimento de Software
 
Fundamentos Engenharia de Software.pptx
Fundamentos Engenharia de Software.pptxFundamentos Engenharia de Software.pptx
Fundamentos Engenharia de Software.pptx
 
ALM Open Source Ponta a Ponta - Minicurso Globalcode MC-122
ALM Open Source Ponta a Ponta - Minicurso Globalcode MC-122ALM Open Source Ponta a Ponta - Minicurso Globalcode MC-122
ALM Open Source Ponta a Ponta - Minicurso Globalcode MC-122
 
Aula2 processos sw
Aula2 processos swAula2 processos sw
Aula2 processos sw
 
Desconstruindo monolitos - Construindo microservicos em Delphi
Desconstruindo monolitos - Construindo microservicos em DelphiDesconstruindo monolitos - Construindo microservicos em Delphi
Desconstruindo monolitos - Construindo microservicos em Delphi
 
Alm open source
Alm open sourceAlm open source
Alm open source
 
04 Unified process
04 Unified process04 Unified process
04 Unified process
 
Open4Education | MC122 - Introdução a ALM OpenSource
Open4Education | MC122 - Introdução a ALM OpenSourceOpen4Education | MC122 - Introdução a ALM OpenSource
Open4Education | MC122 - Introdução a ALM OpenSource
 
Simtecce 2011 Integracao Continua
Simtecce 2011 Integracao ContinuaSimtecce 2011 Integracao Continua
Simtecce 2011 Integracao Continua
 
Gerenciamento da Qualidade de Software 2.pptx
Gerenciamento da Qualidade de Software 2.pptxGerenciamento da Qualidade de Software 2.pptx
Gerenciamento da Qualidade de Software 2.pptx
 
Tees Final
Tees FinalTees Final
Tees Final
 
Analise aula2
Analise aula2Analise aula2
Analise aula2
 
Modelos de Processo e Desenvolvimento de Software 3 - Prof.ª Cristiane Fidelix
Modelos de Processo e Desenvolvimento de Software 3 - Prof.ª Cristiane FidelixModelos de Processo e Desenvolvimento de Software 3 - Prof.ª Cristiane Fidelix
Modelos de Processo e Desenvolvimento de Software 3 - Prof.ª Cristiane Fidelix
 
Introdução a Engenharia de Software - Prof.ª Cristiane Fidelix
Introdução a Engenharia de Software - Prof.ª Cristiane FidelixIntrodução a Engenharia de Software - Prof.ª Cristiane Fidelix
Introdução a Engenharia de Software - Prof.ª Cristiane Fidelix
 
Modelos de Processo e Desenvolvimento de Software 1 - Prof.ª Cristiane Fidelix
Modelos de Processo e Desenvolvimento de Software 1 - Prof.ª Cristiane FidelixModelos de Processo e Desenvolvimento de Software 1 - Prof.ª Cristiane Fidelix
Modelos de Processo e Desenvolvimento de Software 1 - Prof.ª Cristiane Fidelix
 

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

Keynote Visual Studio Summit 2016
Keynote Visual Studio Summit 2016Keynote Visual Studio Summit 2016
Keynote Visual Studio Summit 2016Ramon Durães
 
Automação de Testes: Ferramentas e Aplicação com Integração Contínua
Automação de Testes: Ferramentas e Aplicação com Integração ContínuaAutomação de Testes: Ferramentas e Aplicação com Integração Contínua
Automação de Testes: Ferramentas e Aplicação com Integração ContínuaGabriela Patuci
 
Cloud Computing e Integração Contínua com o Windows Azure
Cloud Computing e Integração Contínua com o Windows AzureCloud Computing e Integração Contínua com o Windows Azure
Cloud Computing e Integração Contínua com o Windows AzureGrupo de Testes Carioca
 
Sbqs 2010 Processo de Teste de Software para Scrum
Sbqs 2010 Processo de Teste de Software para ScrumSbqs 2010 Processo de Teste de Software para Scrum
Sbqs 2010 Processo de Teste de Software para ScrumEliane Collins
 
ld0mg1hrlhzbyvgfiyyq-signature-d9919623d100cd87ad7553e4c50163aa9329a439464540...
ld0mg1hrlhzbyvgfiyyq-signature-d9919623d100cd87ad7553e4c50163aa9329a439464540...ld0mg1hrlhzbyvgfiyyq-signature-d9919623d100cd87ad7553e4c50163aa9329a439464540...
ld0mg1hrlhzbyvgfiyyq-signature-d9919623d100cd87ad7553e4c50163aa9329a439464540...Antonio Lobato
 
DEV-OPS para teste de software
DEV-OPS para teste de softwareDEV-OPS para teste de software
DEV-OPS para teste de softwareQualister
 
Phprs meetup - deploys automatizados com gitlab
Phprs   meetup - deploys automatizados com gitlabPhprs   meetup - deploys automatizados com gitlab
Phprs meetup - deploys automatizados com gitlabJackson F. de A. Mafra
 
Palestra DevOps para Teste de Software
Palestra DevOps para Teste de SoftwarePalestra DevOps para Teste de Software
Palestra DevOps para Teste de SoftwareJúlio de Lima
 
Integração Contínua
Integração ContínuaIntegração Contínua
Integração ContínuaLu
 
Arquitetura de Software para a Entrega Continua
Arquitetura de Software para a Entrega ContinuaArquitetura de Software para a Entrega Continua
Arquitetura de Software para a Entrega ContinuaOtávio Calaça Xavier
 
TDCPOA2018 - Trilha Delphi - Desconstruindo Monolitos Delphi
TDCPOA2018 - Trilha Delphi - Desconstruindo Monolitos DelphiTDCPOA2018 - Trilha Delphi - Desconstruindo Monolitos Delphi
TDCPOA2018 - Trilha Delphi - Desconstruindo Monolitos DelphiMayara Fernandes
 
Brateste 2013: Testes Agile em Processos Agile
Brateste 2013:  Testes Agile em Processos AgileBrateste 2013:  Testes Agile em Processos Agile
Brateste 2013: Testes Agile em Processos Agileananegrello
 
TDC 2013 7 Dicas para acelerar os testes
TDC 2013  7 Dicas para acelerar os testesTDC 2013  7 Dicas para acelerar os testes
TDC 2013 7 Dicas para acelerar os testesFelipe Freire
 
Teste Contínuo de Integração e Virtualização de Serviços
Teste Contínuo de Integração e Virtualização de ServiçosTeste Contínuo de Integração e Virtualização de Serviços
Teste Contínuo de Integração e Virtualização de ServiçosRationalBrasil
 
Experiência em Processo de Teste Iterativo e Automatizado para Data Warehouse
Experiência em Processo de Teste Iterativo e Automatizado para Data WarehouseExperiência em Processo de Teste Iterativo e Automatizado para Data Warehouse
Experiência em Processo de Teste Iterativo e Automatizado para Data WarehouseLuana Lobão
 
DevOps - Entrega Contínua de Software
DevOps - Entrega Contínua de SoftwareDevOps - Entrega Contínua de Software
DevOps - Entrega Contínua de SoftwarePaulo Lacerda
 
Integracao Continua em projetos .NET
Integracao Continua em projetos .NETIntegracao Continua em projetos .NET
Integracao Continua em projetos .NETLuthiano Vasconcelos
 
Descomplicando CI/CD com Jenkins, Docker Swarm e Github
Descomplicando CI/CD com Jenkins, Docker Swarm e GithubDescomplicando CI/CD com Jenkins, Docker Swarm e Github
Descomplicando CI/CD com Jenkins, Docker Swarm e GithubMarcelo Souza Vieira
 

Ähnlich wie Implantação de Ambiente de Integração contínua para projeto que usa Java e C (20)

Keynote Visual Studio Summit 2016
Keynote Visual Studio Summit 2016Keynote Visual Studio Summit 2016
Keynote Visual Studio Summit 2016
 
Automação de Testes: Ferramentas e Aplicação com Integração Contínua
Automação de Testes: Ferramentas e Aplicação com Integração ContínuaAutomação de Testes: Ferramentas e Aplicação com Integração Contínua
Automação de Testes: Ferramentas e Aplicação com Integração Contínua
 
Cloud Computing e Integração Contínua com o Windows Azure
Cloud Computing e Integração Contínua com o Windows AzureCloud Computing e Integração Contínua com o Windows Azure
Cloud Computing e Integração Contínua com o Windows Azure
 
Sbqs 2010 Processo de Teste de Software para Scrum
Sbqs 2010 Processo de Teste de Software para ScrumSbqs 2010 Processo de Teste de Software para Scrum
Sbqs 2010 Processo de Teste de Software para Scrum
 
ld0mg1hrlhzbyvgfiyyq-signature-d9919623d100cd87ad7553e4c50163aa9329a439464540...
ld0mg1hrlhzbyvgfiyyq-signature-d9919623d100cd87ad7553e4c50163aa9329a439464540...ld0mg1hrlhzbyvgfiyyq-signature-d9919623d100cd87ad7553e4c50163aa9329a439464540...
ld0mg1hrlhzbyvgfiyyq-signature-d9919623d100cd87ad7553e4c50163aa9329a439464540...
 
DEV-OPS para teste de software
DEV-OPS para teste de softwareDEV-OPS para teste de software
DEV-OPS para teste de software
 
Phprs meetup - deploys automatizados com gitlab
Phprs   meetup - deploys automatizados com gitlabPhprs   meetup - deploys automatizados com gitlab
Phprs meetup - deploys automatizados com gitlab
 
Palestra DevOps para Teste de Software
Palestra DevOps para Teste de SoftwarePalestra DevOps para Teste de Software
Palestra DevOps para Teste de Software
 
DevOps
DevOpsDevOps
DevOps
 
Integração Contínua
Integração ContínuaIntegração Contínua
Integração Contínua
 
Arquitetura de Software para a Entrega Continua
Arquitetura de Software para a Entrega ContinuaArquitetura de Software para a Entrega Continua
Arquitetura de Software para a Entrega Continua
 
TDCPOA2018 - Trilha Delphi - Desconstruindo Monolitos Delphi
TDCPOA2018 - Trilha Delphi - Desconstruindo Monolitos DelphiTDCPOA2018 - Trilha Delphi - Desconstruindo Monolitos Delphi
TDCPOA2018 - Trilha Delphi - Desconstruindo Monolitos Delphi
 
Brateste 2013: Testes Agile em Processos Agile
Brateste 2013:  Testes Agile em Processos AgileBrateste 2013:  Testes Agile em Processos Agile
Brateste 2013: Testes Agile em Processos Agile
 
TDC 2013 7 Dicas para acelerar os testes
TDC 2013  7 Dicas para acelerar os testesTDC 2013  7 Dicas para acelerar os testes
TDC 2013 7 Dicas para acelerar os testes
 
Teste Contínuo de Integração e Virtualização de Serviços
Teste Contínuo de Integração e Virtualização de ServiçosTeste Contínuo de Integração e Virtualização de Serviços
Teste Contínuo de Integração e Virtualização de Serviços
 
Experiência em Processo de Teste Iterativo e Automatizado para Data Warehouse
Experiência em Processo de Teste Iterativo e Automatizado para Data WarehouseExperiência em Processo de Teste Iterativo e Automatizado para Data Warehouse
Experiência em Processo de Teste Iterativo e Automatizado para Data Warehouse
 
Jenkins workshop
Jenkins workshopJenkins workshop
Jenkins workshop
 
DevOps - Entrega Contínua de Software
DevOps - Entrega Contínua de SoftwareDevOps - Entrega Contínua de Software
DevOps - Entrega Contínua de Software
 
Integracao Continua em projetos .NET
Integracao Continua em projetos .NETIntegracao Continua em projetos .NET
Integracao Continua em projetos .NET
 
Descomplicando CI/CD com Jenkins, Docker Swarm e Github
Descomplicando CI/CD com Jenkins, Docker Swarm e GithubDescomplicando CI/CD com Jenkins, Docker Swarm e Github
Descomplicando CI/CD com Jenkins, Docker Swarm e Github
 

Mehr von Eliane Collins

Teste para dispositivos móveis apresentação pra ufam -eliane
Teste para dispositivos móveis   apresentação pra ufam -elianeTeste para dispositivos móveis   apresentação pra ufam -eliane
Teste para dispositivos móveis apresentação pra ufam -elianeEliane Collins
 
Scrum gathering Paris 2013 - test automation strategy for Scrum Projects
Scrum gathering Paris 2013 -  test automation strategy for Scrum ProjectsScrum gathering Paris 2013 -  test automation strategy for Scrum Projects
Scrum gathering Paris 2013 - test automation strategy for Scrum ProjectsEliane Collins
 
Apresentação sobre teste ágil no Encontro de Qualidade de Manaus 2012
Apresentação sobre teste ágil no Encontro de Qualidade de Manaus 2012Apresentação sobre teste ágil no Encontro de Qualidade de Manaus 2012
Apresentação sobre teste ágil no Encontro de Qualidade de Manaus 2012Eliane Collins
 
ICTSS 2010 - Iterative Software Testing Process for Scrum and Waterfall Projects
ICTSS 2010 - Iterative Software Testing Process for Scrum and Waterfall ProjectsICTSS 2010 - Iterative Software Testing Process for Scrum and Waterfall Projects
ICTSS 2010 - Iterative Software Testing Process for Scrum and Waterfall ProjectsEliane Collins
 
Ast 2012 - Practices for Test Automation in Scrum Projects
Ast 2012 - Practices for Test Automation in Scrum ProjectsAst 2012 - Practices for Test Automation in Scrum Projects
Ast 2012 - Practices for Test Automation in Scrum ProjectsEliane Collins
 
Strategies for agile software test automation
Strategies for agile software test automationStrategies for agile software test automation
Strategies for agile software test automationEliane Collins
 

Mehr von Eliane Collins (7)

Agile mobile testing
Agile mobile testingAgile mobile testing
Agile mobile testing
 
Teste para dispositivos móveis apresentação pra ufam -eliane
Teste para dispositivos móveis   apresentação pra ufam -elianeTeste para dispositivos móveis   apresentação pra ufam -eliane
Teste para dispositivos móveis apresentação pra ufam -eliane
 
Scrum gathering Paris 2013 - test automation strategy for Scrum Projects
Scrum gathering Paris 2013 -  test automation strategy for Scrum ProjectsScrum gathering Paris 2013 -  test automation strategy for Scrum Projects
Scrum gathering Paris 2013 - test automation strategy for Scrum Projects
 
Apresentação sobre teste ágil no Encontro de Qualidade de Manaus 2012
Apresentação sobre teste ágil no Encontro de Qualidade de Manaus 2012Apresentação sobre teste ágil no Encontro de Qualidade de Manaus 2012
Apresentação sobre teste ágil no Encontro de Qualidade de Manaus 2012
 
ICTSS 2010 - Iterative Software Testing Process for Scrum and Waterfall Projects
ICTSS 2010 - Iterative Software Testing Process for Scrum and Waterfall ProjectsICTSS 2010 - Iterative Software Testing Process for Scrum and Waterfall Projects
ICTSS 2010 - Iterative Software Testing Process for Scrum and Waterfall Projects
 
Ast 2012 - Practices for Test Automation in Scrum Projects
Ast 2012 - Practices for Test Automation in Scrum ProjectsAst 2012 - Practices for Test Automation in Scrum Projects
Ast 2012 - Practices for Test Automation in Scrum Projects
 
Strategies for agile software test automation
Strategies for agile software test automationStrategies for agile software test automation
Strategies for agile software test automation
 

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

  • 1. Simpósio Brasileiro de Qualidade de Software - SBQS QUALIDADE 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. Agenda 1. Introdução 2. Contexto do Ambiente 3. Processo Multiplataforma de Integração Contínua 4. Execução e Resultados 5. Conclusão Company Confidential
  • 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. 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 coeso Company Confidential 5
  • 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
  • 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. CONTEXTO DO AMBIENTE SCRUM Metodologia ágil e flexível, centrada no trabalho em equipe; Utilizada para o desenvolvimento incremental e iterativo de qualquer produto Company Confidential 10
  • 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. 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. Processo Multiplataforma de Integração Contínua Company Confidential 13
  • 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. Hudson Company Confidential 14
  • 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. PROCESSO Multiplataforma de Integração Contínua HUDSON Company Confidential 16
  • 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. 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. PROCESSO Multiplataforma de Integração Contínua Arquitetura do Processo de Integração Contínua Multiplataforma: Company Confidential 19
  • 20. Execução do Processo e Resultados Company Confidential 20
  • 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 destino Company Confidential 21
  • 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. 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. 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. Execução do Processo e Resultados Resultados Atuais Integração com a ferramenta de cobertura de código. Company Confidential 25
  • 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
  • 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. OBRIGADA! Perguntas?? Company Confidential 29