WhatsApp Image 2021-11-18 at 10.18.11

Integração contínua

Escrito por Carlos Alexandre Figueiredo
 em 18 de novembro de 2021

Hoje entramos no nosso sexto episódio de série de artigos mensais sobre teste de software e hoje vamos falar sobre a integração contínua.

A integração contínua no desenvolvimento de software nasceu a partir da necessidade do desenvolvimento paralelo, vários desenvolvedores trabalhando ao mesmo tempo na solução de várias regras de negócio em um mesmo projeto e ao final deste desenvolvimento, a confiança de que a alteração realizada não afetou alguma parte já produzida anteriormente. Em outras palavras, na busca por entregas mais frequentes e com mais qualidade.

Esta situação nos remete a uma preocupação constante de qualquer time quando está no processo de desenvolvimento. A parte mais difícil durante o desenvolvimento é a Manutenção. Isto porque quem está desenvolvendo o software são pessoas, passíveis de erros. E é necessária uma forma de garantir que estes erros sejam encontrados o quanto antes.

Mas como funciona a integração contínua?

Até um tempo atrás, uma equipe com vários desenvolvedores podiam trabalhar isoladamente e a medida que cada desenvolvedor finalizava seu código, era enviado a um repositório central que continha os códigos de todos os desenvolvedores. Só que quando este desenvolvedor atualizava este repositório, alguns erros eram gerados. E a cada atualização realizada pelos outros desenvolvedores, resultava no acúmulo de erros sem correção, afinal o desenvolvedor 2 não saberia que o desenvolvedor 1 atualizou este repositório com um código que criava um erro.

Diante deste cenário, a integração continua tem como sua principal característica, efetuar validações a fim de encontrar estes erros no momento em que o desenvolvedor está atualizando o repositório. Funciona mais ou menos assim:

Figura 1- Integração contínua

Na Figura 1, podemos identificar um gerente e dois desenvolvedores. Este time está produzindo uma solução, mas cada um com um código diferente. A medida que cada desenvolvedor finaliza, este efetua o check in de suas alterações no repositório. No momento em que o repositório recebe o código, o servidor (Source control server) verifica as alterações recebidas comparando com o código que ele já possui, realizando um fetch changes. Neste momento é que a “mágica” acontece. Este servidor vai executar vários testes neste código a fim de buscar erros no código e ao final desta validação será enviado ao gerente e aos desenvolvedores o resultado do teste. Se falhou ou se obteve sucesso. Este processo de validação ocorre de forma muito mais rápida que uma pessoa tentar realizar esta validação manualmente e consequentemente teremos uma diminuição dos custos, afinal a próxima etapa deste desenvolvimento será o teste e as pessoas que farão o teste não precisam se preocupar com o que já foi testado, podendo então focar apenas nas alterações.

Os principais benefícios da integração contínua são:

  • Melhora na produtividade do desenvolvedor
  • Testes realizados mais cedo
  • Bugs encontrados mais rapidamente
  • Entregas sendo realizadas mais rapidamente

Hoje no mercado algumas ferramentas são utilizadas para permitir a integração contínua. As principais são:

  1. Jenkins
  2. Travis CI
  3. GitLab CI/CD
  4. Hudson
  5. Cruise Control
  6. Bamboo
  7. Team City
  8. CloudBees
  9. AWS CodePipeline
  10. Bitbucket Pipelines
  11. CircleCI
  12. Azure Pipelines
  13. CodeShip
  14. Sauce Labs

Todas estas ferramentas tem uma grande capacidade de aplicar a integração contínua, basta verificar qual melhor se aplica ao cenário de cada empresa.

E então, gostou do artigo? Então vemos no nosso próximo artigo desta série sobre teste de software. Até lá!

 

Quer fazer parte do nosso time? #VemPraDBC

Confira nossas vagas em: https://dbc.compleo.com.br/

 

por Carlos Alexandre Figueiredo Analista de Testes
Menu - DBC Company

Compartilhe

Compartilhar no facebook
Compartilhar no whatsapp
Compartilhar no twitter

Deixe um comentário!

E participe da conversa.

Veja Também

Tendências de qualidade de software para 2022
Hoje entramos no nosso sétimo episódio de série de artigos mensais sobre teste de software, e vamos falar sobre as tendências que...
Essa não é uma carta de despedida
Essa não é uma carta de despedida.   É comum quando finalizamos uma etapa de nossas vidas, realizarmos ritos de passagem para...