Conceito de Integração Contínua

Dezembro 2016



Introdução


O processo de integração contínua tem como principal objetivo garantir que cada atualização do código-fonte não gere regressões e/ou anomalias em um aplicativo em desenvolvimento.
Historicamente, a integração contínua tem sido utilizada pela IBM para desenvolver o OS/360 desde os anos 60.
A integração contínua não é uma ferramenta, mas sim uma prática resultante do "eXtreme Programming (XP)".
Os desenvolvedores de um mesmo aplicativo reintegram o programa em que eles trabalham o mais frequentemente possível. Trata-se de desencadear, à cada integração, um processo que se baseia em uma plataforma que verifica, automaticamente, o funcionamento do aplicativo para que as anomalias sejam detectadas quando entradas.
O mais difícil para um desenvolvedor é refletir sobre o real impacto de uma atualização fundamental em todas as funcionalidades da aplicação. A integração contínua pode dar ao desenvolvedor a visão mais geral sobre a aplicação, uma vez que os testes da aplicação são feitos em um ambiente clone de produção.

Palavras-chave

  • Build: É o conjunto de passos necessários para compilar, criar entregas na execução dos testes (funcional, unitários, IHM, etc.)
  • Commit: É a operação que permitirá a validação das atualizações do código-fonte no diretório local de trabalho da máquina do desenvolvedor, através da ferramenta de gerenciamento de configuração (como SVN). O commit é feito do diretório local de trabalho para o repositório da ferramenta de gerenciamento de configuração.
  • Update: Esta operação permite a atualização a partir do repositório da ferramenta de gerenciamento de configuração do diretório local.
  • Checkout: É a operação de extração de uma versão de um projeto em desenvolvimento do repositório do gerenciador de configuração em um diretório local de trabalho.

Cenário geral

  • O desenvolvedor faz o seu commit no repositório do gerenciador de configuração.
  • O servidor de integração contínua detecta o commit, faz um Checkout lança as operações de compilação e de testes
  • Em caso de falha uma notificação é gerada para o gerente de projeto e/ou para a equipe de desenvolvimento.
  • O desenvolvedor envolvido pelo erro é faz uma atualização do repositório de gerenciamento de configuração e corrige a anomalia.

Características gerais de um servidor de integração contínua


Um servidor de integração contínua deve permitir, principalmente:
  • De realizar operações de Checkout do gerenciador de configuração.
  • A compilação do código-fonte
  • A criação do arquivo de aplicação (Ear, Jar, War, ...)
  • A implantação do arquivo na máquina de teste.
  • A execução de um conjunto de testes: Junit, Cactus, Auditoria do código-fonte, teste de IHC, testes funcionais
  • A notificação do resultado: e-mail, RSS.
  • A criação do relatório de estatísticas.
  • A integração com outras ferramentas

Os servidores da integração mais conhecidos

  • Cruise Control : open source e gratuito, muito conhecido, bem documentado, testa as aplicações J2EE e as aplicações em .Net. É a referência da integração contínua.
  • Hudson : open source e gratuito, tornou-se bastante popular, mais recente que o Cruise Control, testa aplicações J2EE. Utilizado pela SUN
  • Continuum : open source e gratuito, suportado pela fundação Apache
  • Bamboo : open source e pago



Tradução feita por Lucia Maurity y Nouira

Veja também :
Este documento, intitulado « Conceito de Integração Contínua »a partir de CCM (br.ccm.net) está disponibilizado sob a licença Creative Commons. Você pode copiar, modificar cópias desta página, nas condições estipuladas pela licença, como esta nota aparece claramente.