SlideShare uma empresa Scribd logo
1 de 30
Baixar para ler offline
Integração contínua
Sumário
O que é
Ferramentas
Por que usar integração contínua?
Testes
Build
Servidor de Integração Contínua
Deploy
Integração Contínua
Surgiu como parte das práticas da metodologia ágil XP (Extreme
Programming).
Tem como foco o desenvolvimento de software em ciclos menores,
proporcionando melhor resposta a alterações e inclusão de novos
requisitos.
Integração contínua trata-se de um conjunto de boas práticas que também
podem ser adotadas em metodologias de desenvolvimento convencionais.
Integração Contínua
Tem como ideia principal a diminuição dos riscos através do monitoramento
constante das alterações, mantendo a integração frequente do código.
Esta atividade passa a fazer parte do processo de desenvolvimento, sendo
considerada como um procedimento normal e corriqueiro.
Integração Contínua
A mesma deve ocorrer com a maior frequência possível, idealmente a cada
alteração efetuada(commit), pois em caso de problema, o conjunto de
modificações em que a falha está inserida é menor, facilitando a
identificação e correção do(s) erro(s).
Integração Contínua
Para que a integração seja efetiva, é necessário verificar o funcionamento do
código após as modificações.
Para atender esta necessidade, o desenvolvimento em conjunto com a
realização de testes é fundamental, de preferência com a adoção da
metodologia TDD (Test Driven Development).
Integração Contínua
Como resultado da execução de uma integração bem sucedida,
conseguimos atingir os seguintes benefícios:
Garantia que o código compila e que as funcionalidades testadas mantêm sua
integridade e funcionamento esperados;
Uma potencial versão do software, que pode ser utilizada, por exemplo, pela
equipe de QA para execução de testes.
Benefícios - Melhora a produtividade do
desenvolvedor
A integração contínua ajuda sua equipe a ser mais produtiva ao liberar os
desenvolvedores de tarefas manuais e encorajar comportamentos que
ajudam a reduzir o número de erros e bugs implantados para os clientes.
Benefícios - Encontrar e investigar bugs mais
rapidamente
Com testes mais frequentes, sua equipe pode descobrir e investigar bugs
mais cedo, antes que no futuro os problemas cresçam demais.
Benefícios - Distribuir atualizações mais
rapidamente
A integração contínua ajuda a sua equipe a distribuir atualizações para os
clientes mais rapidamente e com maior frequência.
Ferramentas
Jenkins
Travis CI
Bamboo
CircleCI
TeamCity
Ferramentas
Testes
Um bom modo para pegar erros mais rápida e eficientemente é incluir testes automáticos
no processo de build. Testes não são perfeitos, mas eles podem pegar muitos bugs – o
suficiente para ser útil.
Os testes necessitam estar aptos para rodarem com um simples comando e serem
checados automaticamente. O resultado da suíte dos testes em execução deve indicar se
estes falharam. Para uma build ser auto-testável a falha de um teste deve fazer com que a
build falhe.
Build
Com a utilização de teste e o controle de versão centralizado, é necessária para
uma boa integração, a automatização dos builds. O processo de build
(compilar, preparar o executável, rodar os testes automatizados, etc.)
Não automatizar os builds, é um erro, pois diversos problemas ocorrem quando
o processo é feito de forma manual, pois cada desenvolvedor acaba realizando
o build de forma diferente, podendo criar problemas na integração.
Build
Um outro ponto importante, é que os builds devem ser auto testáveis, ou seja,
durante os builds é necessário ter também os testes automatizados, como
mencionados, para melhorar no processo de detecção de erros.
Build
A automatização do processo de build é possível por meio da criação de
scripts, que executam cada uma dessas etapas da construção em sequência,
reportando o resultado ao final da execução de cada uma. A automatização de
build utilizando scripts traz benefícios para o processo de construção.
Build
● Facilidade na execução
O script de build geralmente é disparado por um ou poucos comandos,
simplificando a execução do build.
Build
Padronização do build
O script de build é compartilhado por toda a equipe de desenvolvimento, sendo
executado da mesma forma por cada integrante.
Build
Parametrização do build
O script de build pode ser elaborado para permitir a utilização de parâmetros
durante a construção. Um exemplo é o fornecimento de parâmetros para que a
versão construída esteja de acordo com os possíveis ambientes de execução
da aplicação (ambiente de testes, ambiente de homologação ou ambiente de
produção).
Build
Execução de todas as etapas
O script de build executa todas as etapas em sequência, garantindo que elas
não sejam esquecidas ou suprimidas. O script de build até pode permitir a
supressão da alguma etapa durante a construção, mas esse recurso deve ser
usado apenas em casos específicos.
A facilidade no disparo do build é aproveitada pelo Servidor de Integração
Contínua, para manter a integração e construção frequente do projeto.
Servidor de Integração Contínua
O Servidor de Integração Contínua é uma aplicação que tem como objetivo
principal recuperar as alterações ocorridas no repositório e integrá-las, com a
execução do script de build. Para que esta tarefa seja executada, o servidor
deve permitir a configuração de planos de build, que armazenam as
configurações necessárias para que a integração possa ser executada, como o
endereço do repositório para monitoramento das modificações, a frequência da
execução, o(s) comando(s) para o disparo do build e as configurações das
notificações dos resultados.
Servidor de Integração Contínua
Uma funcionalidade essencial do Servidor de Integração Contínua é a
configuração de mecanismos de notificação. Estes mecanismos divulgam os
resultados da integração, sendo importantes para uma ação rápida por parte da
equipe de desenvolvimento, em caso de falha na integração. Geralmente, o
principal mecanismo de notificação utilizado é o disparo de e-mail, mas alguns
mecanismos alternativos podem ser utilizados, como plugins para IDEs, plugins
Desktop e o envio de mensagens de texto (SMS).
Deploy
Em termos gerais, deploy significa colocar em posição. Na prática, geralmente
disponibilizar um sistema para uso, seja num ambiente de desenvolvimento,
para testes ou em produção.
O termo deploy pode significar muitas coisas, dependendo do ambiente e da
tecnologia. Um desenvolvedor pode fazer o deploy da aplicação web no seu
servidor web local. Pode também fazer o deploy para produção, usado pelos
usuários finais.
Deploy
Nível de automação
O deploy pode ser “manual”, parcialmente automatizado ou completamente
automatizado.
Deploy
Uma das principais dores de cabeça que um cliente enfrenta, mesmo em
empresas que adotam metodologias ágeis como XP e Scrum, está ligada ao
produto ser colocado em produção e não funcionar: a famosa frase “mas no
meu computador funcionou”.
Deploy
A solução está em criar um sistema de homologação.
Primeiro o projeto é compilado, depois os testes unitários são executados.
Na primeira fase, os testes executam as funcionalidades como o cliente faria e
cobrem a maior quantidade de funções plausíveis de automatização. Na
segunda fase, os desenvolvedores podem optar por deployar para um sistema
de homologação, onde o cliente aprovará com os dados copiados de produção
(alterações ligadas a sigilo de dados devem ser aplicadas).
Deploy
Por fim, quando o sistema está aprovado em homologação, com um clique o
desenvolvedor efetua o deploy para produção.
Conclusão
Toda essa automatização tem um custo inicial de desenvolvimento que é
compensado com a minimização de erros humanos no processo de deploy e na
lentidão do mesmo.
A chance de funcionar em produção é maximizada uma vez que a mesma foi
testada em homologação com uma cópia mais fidedigna do sistema de
produção possível: menos reclamações e tempo perdido pelo cliente.
Referências
http://www.devmedia.com.br/integracao-continua-da-teoria-a-pratica/28284
https://aws.amazon.com/pt/devops/continuous-integration/
http://www.devmedia.com.br/integracao-continua-da-teoria-a-pratica/28284
http://www.pedromendes.com.br/2009/03/04/traducao-do-artigo-sobre-integracao-continua/
http://blog.caelum.com.br/integracao-continua-deploys-e-aprovacoes-sem-dores-de-cabeca-para-o-cliente/

Mais conteúdo relacionado

Semelhante a Integração contínua: testes, build, ferramentas e benefícios

TDD (Test-Driven Development)
TDD (Test-Driven Development)TDD (Test-Driven Development)
TDD (Test-Driven Development)Renato Groff
 
Integracao Continua em projetos .NET
Integracao Continua em projetos .NETIntegracao Continua em projetos .NET
Integracao Continua em projetos .NETLuthiano Vasconcelos
 
Integração Contínua
Integração ContínuaIntegração Contínua
Integração ContínuaScrumHalf Tool
 
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
 
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
 
Entrega contínua com arquitetura distribuida
Entrega contínua com arquitetura distribuidaEntrega contínua com arquitetura distribuida
Entrega contínua com arquitetura distribuidaLeonardo Kobus
 
Implantação de Ambiente de Integração contínua para projeto que usa Java e C
Implantação de Ambiente de Integração contínua para  projeto que usa Java e CImplantação de Ambiente de Integração contínua para  projeto que usa Java e C
Implantação de Ambiente de Integração contínua para projeto que usa Java e CEliane Collins
 
Implementando Implementando eXtreme treme Programming rogramming em em Java Java
Implementando Implementando eXtreme treme Programming rogramming em em Java JavaImplementando Implementando eXtreme treme Programming rogramming em em Java Java
Implementando Implementando eXtreme treme Programming rogramming em em Java Javaelliando dias
 
[.NET Community Summit] CI & CD com ASP.NET Core, VSTS e Azure
[.NET Community Summit] CI & CD com ASP.NET Core, VSTS e Azure[.NET Community Summit] CI & CD com ASP.NET Core, VSTS e Azure
[.NET Community Summit] CI & CD com ASP.NET Core, VSTS e AzureJaqueline Ramos
 
.Net Community Summit 2018 - CI/CD com ASP.NET Core, VSTS e Azure - Jaqueline...
.Net Community Summit 2018 - CI/CD com ASP.NET Core, VSTS e Azure - Jaqueline....Net Community Summit 2018 - CI/CD com ASP.NET Core, VSTS e Azure - Jaqueline...
.Net Community Summit 2018 - CI/CD com ASP.NET Core, VSTS e Azure - Jaqueline...iMasters
 
Integracao Continua com CruiseControl
Integracao Continua com CruiseControlIntegracao Continua com CruiseControl
Integracao Continua com CruiseControlLuthiano Vasconcelos
 
Tdc continuous testing
Tdc   continuous testing Tdc   continuous testing
Tdc continuous testing Walter Farias
 
Como aumentar a produtividade da sua equipe
Como aumentar a produtividade da sua equipeComo aumentar a produtividade da sua equipe
Como aumentar a produtividade da sua equipeWende Mendes
 
Testes automatizados.pptx
Testes automatizados.pptxTestes automatizados.pptx
Testes automatizados.pptxCarlos Gonzaga
 
Integração Contínua
Integração ContínuaIntegração Contínua
Integração ContínuaLu
 
DEV-OPS para teste de software
DEV-OPS para teste de softwareDEV-OPS para teste de software
DEV-OPS para teste de softwareQualister
 
Teste em times ageis
Teste em times ageisTeste em times ageis
Teste em times ageisDover H
 

Semelhante a Integração contínua: testes, build, ferramentas e benefícios (20)

TDD (Test-Driven Development)
TDD (Test-Driven Development)TDD (Test-Driven Development)
TDD (Test-Driven Development)
 
Integracao Continua em projetos .NET
Integracao Continua em projetos .NETIntegracao Continua em projetos .NET
Integracao Continua em projetos .NET
 
Subm_SamuelPereira_FINAL
Subm_SamuelPereira_FINALSubm_SamuelPereira_FINAL
Subm_SamuelPereira_FINAL
 
Integração Contínua
Integração ContínuaIntegração Contínua
Integração Contínua
 
Continuous Deployment
Continuous DeploymentContinuous Deployment
Continuous Deployment
 
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
 
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
 
Entrega contínua com arquitetura distribuida
Entrega contínua com arquitetura distribuidaEntrega contínua com arquitetura distribuida
Entrega contínua com arquitetura distribuida
 
Implantação de Ambiente de Integração contínua para projeto que usa Java e C
Implantação de Ambiente de Integração contínua para  projeto que usa Java e CImplantação de Ambiente de Integração contínua para  projeto que usa Java e C
Implantação de Ambiente de Integração contínua para projeto que usa Java e C
 
Implementando Implementando eXtreme treme Programming rogramming em em Java Java
Implementando Implementando eXtreme treme Programming rogramming em em Java JavaImplementando Implementando eXtreme treme Programming rogramming em em Java Java
Implementando Implementando eXtreme treme Programming rogramming em em Java Java
 
[.NET Community Summit] CI & CD com ASP.NET Core, VSTS e Azure
[.NET Community Summit] CI & CD com ASP.NET Core, VSTS e Azure[.NET Community Summit] CI & CD com ASP.NET Core, VSTS e Azure
[.NET Community Summit] CI & CD com ASP.NET Core, VSTS e Azure
 
.Net Community Summit 2018 - CI/CD com ASP.NET Core, VSTS e Azure - Jaqueline...
.Net Community Summit 2018 - CI/CD com ASP.NET Core, VSTS e Azure - Jaqueline....Net Community Summit 2018 - CI/CD com ASP.NET Core, VSTS e Azure - Jaqueline...
.Net Community Summit 2018 - CI/CD com ASP.NET Core, VSTS e Azure - Jaqueline...
 
Integracao Continua com CruiseControl
Integracao Continua com CruiseControlIntegracao Continua com CruiseControl
Integracao Continua com CruiseControl
 
Tdc continuous testing
Tdc   continuous testing Tdc   continuous testing
Tdc continuous testing
 
Como aumentar a produtividade da sua equipe
Como aumentar a produtividade da sua equipeComo aumentar a produtividade da sua equipe
Como aumentar a produtividade da sua equipe
 
Testes automatizados.pptx
Testes automatizados.pptxTestes automatizados.pptx
Testes automatizados.pptx
 
Integração Contínua
Integração ContínuaIntegração Contínua
Integração Contínua
 
DEV-OPS para teste de software
DEV-OPS para teste de softwareDEV-OPS para teste de software
DEV-OPS para teste de software
 
Teste em times ageis
Teste em times ageisTeste em times ageis
Teste em times ageis
 
Lista de Práticas Ágeis
Lista de Práticas ÁgeisLista de Práticas Ágeis
Lista de Práticas Ágeis
 

Mais de Antonio Lobato

performance para qualidade de desenvolvimento de software
performance para qualidade de desenvolvimento de softwareperformance para qualidade de desenvolvimento de software
performance para qualidade de desenvolvimento de softwareAntonio Lobato
 
kubernetes-devops.pptx
kubernetes-devops.pptxkubernetes-devops.pptx
kubernetes-devops.pptxAntonio Lobato
 
aula03_uml_diagrama_classe.pdf
aula03_uml_diagrama_classe.pdfaula03_uml_diagrama_classe.pdf
aula03_uml_diagrama_classe.pdfAntonio Lobato
 
aula01_computador_Info_Cont.pdf
aula01_computador_Info_Cont.pdfaula01_computador_Info_Cont.pdf
aula01_computador_Info_Cont.pdfAntonio Lobato
 
aula1introducaoarquitetura.pdf
aula1introducaoarquitetura.pdfaula1introducaoarquitetura.pdf
aula1introducaoarquitetura.pdfAntonio Lobato
 
Aula02-RI-Modelo-Booleano.pdf
Aula02-RI-Modelo-Booleano.pdfAula02-RI-Modelo-Booleano.pdf
Aula02-RI-Modelo-Booleano.pdfAntonio Lobato
 

Mais de Antonio Lobato (9)

performance para qualidade de desenvolvimento de software
performance para qualidade de desenvolvimento de softwareperformance para qualidade de desenvolvimento de software
performance para qualidade de desenvolvimento de software
 
kubernetes-devops.pptx
kubernetes-devops.pptxkubernetes-devops.pptx
kubernetes-devops.pptx
 
aula03_uml_diagrama_classe.pdf
aula03_uml_diagrama_classe.pdfaula03_uml_diagrama_classe.pdf
aula03_uml_diagrama_classe.pdf
 
3-BasesNumericas.ppt
3-BasesNumericas.ppt3-BasesNumericas.ppt
3-BasesNumericas.ppt
 
aula02_uml.pdf
aula02_uml.pdfaula02_uml.pdf
aula02_uml.pdf
 
slide engenharia.pdf
slide engenharia.pdfslide engenharia.pdf
slide engenharia.pdf
 
aula01_computador_Info_Cont.pdf
aula01_computador_Info_Cont.pdfaula01_computador_Info_Cont.pdf
aula01_computador_Info_Cont.pdf
 
aula1introducaoarquitetura.pdf
aula1introducaoarquitetura.pdfaula1introducaoarquitetura.pdf
aula1introducaoarquitetura.pdf
 
Aula02-RI-Modelo-Booleano.pdf
Aula02-RI-Modelo-Booleano.pdfAula02-RI-Modelo-Booleano.pdf
Aula02-RI-Modelo-Booleano.pdf
 

Último

Conferência SC 2024 | De vilão a herói: como o frete vai salvar as suas vendas
Conferência SC 2024 |  De vilão a herói: como o frete vai salvar as suas vendasConferência SC 2024 |  De vilão a herói: como o frete vai salvar as suas vendas
Conferência SC 2024 | De vilão a herói: como o frete vai salvar as suas vendasE-Commerce Brasil
 
Ética NO AMBIENTE DE TRABALHO, fundamentosdas relações.pdf
Ética NO AMBIENTE DE TRABALHO,  fundamentosdas relações.pdfÉtica NO AMBIENTE DE TRABALHO,  fundamentosdas relações.pdf
Ética NO AMBIENTE DE TRABALHO, fundamentosdas relações.pdfInsttLcioEvangelista
 
Conferência SC 24 | Social commerce e recursos interativos: como aplicar no s...
Conferência SC 24 | Social commerce e recursos interativos: como aplicar no s...Conferência SC 24 | Social commerce e recursos interativos: como aplicar no s...
Conferência SC 24 | Social commerce e recursos interativos: como aplicar no s...E-Commerce Brasil
 
Conferência SC 24 | Otimize sua logística reversa com opções OOH (out of home)
Conferência SC 24 | Otimize sua logística reversa com opções OOH (out of home)Conferência SC 24 | Otimize sua logística reversa com opções OOH (out of home)
Conferência SC 24 | Otimize sua logística reversa com opções OOH (out of home)E-Commerce Brasil
 
Conferência SC 24 | Inteligência artificial no checkout: como a automatização...
Conferência SC 24 | Inteligência artificial no checkout: como a automatização...Conferência SC 24 | Inteligência artificial no checkout: como a automatização...
Conferência SC 24 | Inteligência artificial no checkout: como a automatização...E-Commerce Brasil
 
Products Catalogue-01-Electronics thin wall heat shrink tubing wire and cable...
Products Catalogue-01-Electronics thin wall heat shrink tubing wire and cable...Products Catalogue-01-Electronics thin wall heat shrink tubing wire and cable...
Products Catalogue-01-Electronics thin wall heat shrink tubing wire and cable...Welldonelily Skype
 
Conferência SC 24 | Estratégias omnicanal: transformando a logística em exper...
Conferência SC 24 | Estratégias omnicanal: transformando a logística em exper...Conferência SC 24 | Estratégias omnicanal: transformando a logística em exper...
Conferência SC 24 | Estratégias omnicanal: transformando a logística em exper...E-Commerce Brasil
 
Conferência SC 24 | Estratégias de precificação para múltiplos canais de venda
Conferência SC 24 | Estratégias de precificação para múltiplos canais de vendaConferência SC 24 | Estratégias de precificação para múltiplos canais de venda
Conferência SC 24 | Estratégias de precificação para múltiplos canais de vendaE-Commerce Brasil
 
Conferência SC 24 | Gestão logística para redução de custos e fidelização
Conferência SC 24 | Gestão logística para redução de custos e fidelizaçãoConferência SC 24 | Gestão logística para redução de custos e fidelização
Conferência SC 24 | Gestão logística para redução de custos e fidelizaçãoE-Commerce Brasil
 
Conferência SC 24 | A força da geolocalização impulsionada em ADS e Fullcomme...
Conferência SC 24 | A força da geolocalização impulsionada em ADS e Fullcomme...Conferência SC 24 | A força da geolocalização impulsionada em ADS e Fullcomme...
Conferência SC 24 | A força da geolocalização impulsionada em ADS e Fullcomme...E-Commerce Brasil
 
Conferência SC 2024 | Tendências e oportunidades de vender mais em 2024
Conferência SC 2024 | Tendências e oportunidades de vender mais em 2024Conferência SC 2024 | Tendências e oportunidades de vender mais em 2024
Conferência SC 2024 | Tendências e oportunidades de vender mais em 2024E-Commerce Brasil
 
Conferência SC 24 | Data Analytics e IA: o futuro do e-commerce?
Conferência SC 24 | Data Analytics e IA: o futuro do e-commerce?Conferência SC 24 | Data Analytics e IA: o futuro do e-commerce?
Conferência SC 24 | Data Analytics e IA: o futuro do e-commerce?E-Commerce Brasil
 
Conferência SC 24 | O custo real de uma operação
Conferência SC 24 | O custo real de uma operaçãoConferência SC 24 | O custo real de uma operação
Conferência SC 24 | O custo real de uma operaçãoE-Commerce Brasil
 
Conferência SC 24 | Estratégias de diversificação de investimento em mídias d...
Conferência SC 24 | Estratégias de diversificação de investimento em mídias d...Conferência SC 24 | Estratégias de diversificação de investimento em mídias d...
Conferência SC 24 | Estratégias de diversificação de investimento em mídias d...E-Commerce Brasil
 
66ssssssssssssssssssssssssssssss4434.pptx
66ssssssssssssssssssssssssssssss4434.pptx66ssssssssssssssssssssssssssssss4434.pptx
66ssssssssssssssssssssssssssssss4434.pptxLEANDROSPANHOL1
 
Conferência SC 24 | Estratégias de precificação: loja própria e marketplace
Conferência SC 24 | Estratégias de precificação: loja própria e marketplaceConferência SC 24 | Estratégias de precificação: loja própria e marketplace
Conferência SC 24 | Estratégias de precificação: loja própria e marketplaceE-Commerce Brasil
 
Questionárionnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnn
QuestionárionnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnQuestionárionnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnn
QuestionárionnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnGustavo144776
 
EP GRUPO - Mídia Kit 2024 - conexão de marcas e personagens
EP GRUPO - Mídia Kit 2024 - conexão de marcas e personagensEP GRUPO - Mídia Kit 2024 - conexão de marcas e personagens
EP GRUPO - Mídia Kit 2024 - conexão de marcas e personagensLuizPauloFerreira11
 
A LOGÍSTICA ESTÁ PREPARADA PARA O DECRESCIMENTO?
A LOGÍSTICA ESTÁ PREPARADA PARA O DECRESCIMENTO?A LOGÍSTICA ESTÁ PREPARADA PARA O DECRESCIMENTO?
A LOGÍSTICA ESTÁ PREPARADA PARA O DECRESCIMENTO?Michael Rada
 
representações cartograficas - 1 ano.pptx
representações cartograficas - 1 ano.pptxrepresentações cartograficas - 1 ano.pptx
representações cartograficas - 1 ano.pptxCarladeOliveira25
 

Último (20)

Conferência SC 2024 | De vilão a herói: como o frete vai salvar as suas vendas
Conferência SC 2024 |  De vilão a herói: como o frete vai salvar as suas vendasConferência SC 2024 |  De vilão a herói: como o frete vai salvar as suas vendas
Conferência SC 2024 | De vilão a herói: como o frete vai salvar as suas vendas
 
Ética NO AMBIENTE DE TRABALHO, fundamentosdas relações.pdf
Ética NO AMBIENTE DE TRABALHO,  fundamentosdas relações.pdfÉtica NO AMBIENTE DE TRABALHO,  fundamentosdas relações.pdf
Ética NO AMBIENTE DE TRABALHO, fundamentosdas relações.pdf
 
Conferência SC 24 | Social commerce e recursos interativos: como aplicar no s...
Conferência SC 24 | Social commerce e recursos interativos: como aplicar no s...Conferência SC 24 | Social commerce e recursos interativos: como aplicar no s...
Conferência SC 24 | Social commerce e recursos interativos: como aplicar no s...
 
Conferência SC 24 | Otimize sua logística reversa com opções OOH (out of home)
Conferência SC 24 | Otimize sua logística reversa com opções OOH (out of home)Conferência SC 24 | Otimize sua logística reversa com opções OOH (out of home)
Conferência SC 24 | Otimize sua logística reversa com opções OOH (out of home)
 
Conferência SC 24 | Inteligência artificial no checkout: como a automatização...
Conferência SC 24 | Inteligência artificial no checkout: como a automatização...Conferência SC 24 | Inteligência artificial no checkout: como a automatização...
Conferência SC 24 | Inteligência artificial no checkout: como a automatização...
 
Products Catalogue-01-Electronics thin wall heat shrink tubing wire and cable...
Products Catalogue-01-Electronics thin wall heat shrink tubing wire and cable...Products Catalogue-01-Electronics thin wall heat shrink tubing wire and cable...
Products Catalogue-01-Electronics thin wall heat shrink tubing wire and cable...
 
Conferência SC 24 | Estratégias omnicanal: transformando a logística em exper...
Conferência SC 24 | Estratégias omnicanal: transformando a logística em exper...Conferência SC 24 | Estratégias omnicanal: transformando a logística em exper...
Conferência SC 24 | Estratégias omnicanal: transformando a logística em exper...
 
Conferência SC 24 | Estratégias de precificação para múltiplos canais de venda
Conferência SC 24 | Estratégias de precificação para múltiplos canais de vendaConferência SC 24 | Estratégias de precificação para múltiplos canais de venda
Conferência SC 24 | Estratégias de precificação para múltiplos canais de venda
 
Conferência SC 24 | Gestão logística para redução de custos e fidelização
Conferência SC 24 | Gestão logística para redução de custos e fidelizaçãoConferência SC 24 | Gestão logística para redução de custos e fidelização
Conferência SC 24 | Gestão logística para redução de custos e fidelização
 
Conferência SC 24 | A força da geolocalização impulsionada em ADS e Fullcomme...
Conferência SC 24 | A força da geolocalização impulsionada em ADS e Fullcomme...Conferência SC 24 | A força da geolocalização impulsionada em ADS e Fullcomme...
Conferência SC 24 | A força da geolocalização impulsionada em ADS e Fullcomme...
 
Conferência SC 2024 | Tendências e oportunidades de vender mais em 2024
Conferência SC 2024 | Tendências e oportunidades de vender mais em 2024Conferência SC 2024 | Tendências e oportunidades de vender mais em 2024
Conferência SC 2024 | Tendências e oportunidades de vender mais em 2024
 
Conferência SC 24 | Data Analytics e IA: o futuro do e-commerce?
Conferência SC 24 | Data Analytics e IA: o futuro do e-commerce?Conferência SC 24 | Data Analytics e IA: o futuro do e-commerce?
Conferência SC 24 | Data Analytics e IA: o futuro do e-commerce?
 
Conferência SC 24 | O custo real de uma operação
Conferência SC 24 | O custo real de uma operaçãoConferência SC 24 | O custo real de uma operação
Conferência SC 24 | O custo real de uma operação
 
Conferência SC 24 | Estratégias de diversificação de investimento em mídias d...
Conferência SC 24 | Estratégias de diversificação de investimento em mídias d...Conferência SC 24 | Estratégias de diversificação de investimento em mídias d...
Conferência SC 24 | Estratégias de diversificação de investimento em mídias d...
 
66ssssssssssssssssssssssssssssss4434.pptx
66ssssssssssssssssssssssssssssss4434.pptx66ssssssssssssssssssssssssssssss4434.pptx
66ssssssssssssssssssssssssssssss4434.pptx
 
Conferência SC 24 | Estratégias de precificação: loja própria e marketplace
Conferência SC 24 | Estratégias de precificação: loja própria e marketplaceConferência SC 24 | Estratégias de precificação: loja própria e marketplace
Conferência SC 24 | Estratégias de precificação: loja própria e marketplace
 
Questionárionnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnn
QuestionárionnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnQuestionárionnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnn
Questionárionnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnn
 
EP GRUPO - Mídia Kit 2024 - conexão de marcas e personagens
EP GRUPO - Mídia Kit 2024 - conexão de marcas e personagensEP GRUPO - Mídia Kit 2024 - conexão de marcas e personagens
EP GRUPO - Mídia Kit 2024 - conexão de marcas e personagens
 
A LOGÍSTICA ESTÁ PREPARADA PARA O DECRESCIMENTO?
A LOGÍSTICA ESTÁ PREPARADA PARA O DECRESCIMENTO?A LOGÍSTICA ESTÁ PREPARADA PARA O DECRESCIMENTO?
A LOGÍSTICA ESTÁ PREPARADA PARA O DECRESCIMENTO?
 
representações cartograficas - 1 ano.pptx
representações cartograficas - 1 ano.pptxrepresentações cartograficas - 1 ano.pptx
representações cartograficas - 1 ano.pptx
 

Integração contínua: testes, build, ferramentas e benefícios

  • 2. Sumário O que é Ferramentas Por que usar integração contínua? Testes Build Servidor de Integração Contínua Deploy
  • 3. Integração Contínua Surgiu como parte das práticas da metodologia ágil XP (Extreme Programming). Tem como foco o desenvolvimento de software em ciclos menores, proporcionando melhor resposta a alterações e inclusão de novos requisitos. Integração contínua trata-se de um conjunto de boas práticas que também podem ser adotadas em metodologias de desenvolvimento convencionais.
  • 4. Integração Contínua Tem como ideia principal a diminuição dos riscos através do monitoramento constante das alterações, mantendo a integração frequente do código. Esta atividade passa a fazer parte do processo de desenvolvimento, sendo considerada como um procedimento normal e corriqueiro.
  • 5. Integração Contínua A mesma deve ocorrer com a maior frequência possível, idealmente a cada alteração efetuada(commit), pois em caso de problema, o conjunto de modificações em que a falha está inserida é menor, facilitando a identificação e correção do(s) erro(s).
  • 6. Integração Contínua Para que a integração seja efetiva, é necessário verificar o funcionamento do código após as modificações. Para atender esta necessidade, o desenvolvimento em conjunto com a realização de testes é fundamental, de preferência com a adoção da metodologia TDD (Test Driven Development).
  • 7. Integração Contínua Como resultado da execução de uma integração bem sucedida, conseguimos atingir os seguintes benefícios: Garantia que o código compila e que as funcionalidades testadas mantêm sua integridade e funcionamento esperados; Uma potencial versão do software, que pode ser utilizada, por exemplo, pela equipe de QA para execução de testes.
  • 8. Benefícios - Melhora a produtividade do desenvolvedor A integração contínua ajuda sua equipe a ser mais produtiva ao liberar os desenvolvedores de tarefas manuais e encorajar comportamentos que ajudam a reduzir o número de erros e bugs implantados para os clientes.
  • 9. Benefícios - Encontrar e investigar bugs mais rapidamente Com testes mais frequentes, sua equipe pode descobrir e investigar bugs mais cedo, antes que no futuro os problemas cresçam demais.
  • 10. Benefícios - Distribuir atualizações mais rapidamente A integração contínua ajuda a sua equipe a distribuir atualizações para os clientes mais rapidamente e com maior frequência.
  • 11.
  • 14. Testes Um bom modo para pegar erros mais rápida e eficientemente é incluir testes automáticos no processo de build. Testes não são perfeitos, mas eles podem pegar muitos bugs – o suficiente para ser útil. Os testes necessitam estar aptos para rodarem com um simples comando e serem checados automaticamente. O resultado da suíte dos testes em execução deve indicar se estes falharam. Para uma build ser auto-testável a falha de um teste deve fazer com que a build falhe.
  • 15. Build Com a utilização de teste e o controle de versão centralizado, é necessária para uma boa integração, a automatização dos builds. O processo de build (compilar, preparar o executável, rodar os testes automatizados, etc.) Não automatizar os builds, é um erro, pois diversos problemas ocorrem quando o processo é feito de forma manual, pois cada desenvolvedor acaba realizando o build de forma diferente, podendo criar problemas na integração.
  • 16. Build Um outro ponto importante, é que os builds devem ser auto testáveis, ou seja, durante os builds é necessário ter também os testes automatizados, como mencionados, para melhorar no processo de detecção de erros.
  • 17. Build A automatização do processo de build é possível por meio da criação de scripts, que executam cada uma dessas etapas da construção em sequência, reportando o resultado ao final da execução de cada uma. A automatização de build utilizando scripts traz benefícios para o processo de construção.
  • 18. Build ● Facilidade na execução O script de build geralmente é disparado por um ou poucos comandos, simplificando a execução do build.
  • 19. Build Padronização do build O script de build é compartilhado por toda a equipe de desenvolvimento, sendo executado da mesma forma por cada integrante.
  • 20. Build Parametrização do build O script de build pode ser elaborado para permitir a utilização de parâmetros durante a construção. Um exemplo é o fornecimento de parâmetros para que a versão construída esteja de acordo com os possíveis ambientes de execução da aplicação (ambiente de testes, ambiente de homologação ou ambiente de produção).
  • 21. Build Execução de todas as etapas O script de build executa todas as etapas em sequência, garantindo que elas não sejam esquecidas ou suprimidas. O script de build até pode permitir a supressão da alguma etapa durante a construção, mas esse recurso deve ser usado apenas em casos específicos. A facilidade no disparo do build é aproveitada pelo Servidor de Integração Contínua, para manter a integração e construção frequente do projeto.
  • 22. Servidor de Integração Contínua O Servidor de Integração Contínua é uma aplicação que tem como objetivo principal recuperar as alterações ocorridas no repositório e integrá-las, com a execução do script de build. Para que esta tarefa seja executada, o servidor deve permitir a configuração de planos de build, que armazenam as configurações necessárias para que a integração possa ser executada, como o endereço do repositório para monitoramento das modificações, a frequência da execução, o(s) comando(s) para o disparo do build e as configurações das notificações dos resultados.
  • 23. Servidor de Integração Contínua Uma funcionalidade essencial do Servidor de Integração Contínua é a configuração de mecanismos de notificação. Estes mecanismos divulgam os resultados da integração, sendo importantes para uma ação rápida por parte da equipe de desenvolvimento, em caso de falha na integração. Geralmente, o principal mecanismo de notificação utilizado é o disparo de e-mail, mas alguns mecanismos alternativos podem ser utilizados, como plugins para IDEs, plugins Desktop e o envio de mensagens de texto (SMS).
  • 24. Deploy Em termos gerais, deploy significa colocar em posição. Na prática, geralmente disponibilizar um sistema para uso, seja num ambiente de desenvolvimento, para testes ou em produção. O termo deploy pode significar muitas coisas, dependendo do ambiente e da tecnologia. Um desenvolvedor pode fazer o deploy da aplicação web no seu servidor web local. Pode também fazer o deploy para produção, usado pelos usuários finais.
  • 25. Deploy Nível de automação O deploy pode ser “manual”, parcialmente automatizado ou completamente automatizado.
  • 26. Deploy Uma das principais dores de cabeça que um cliente enfrenta, mesmo em empresas que adotam metodologias ágeis como XP e Scrum, está ligada ao produto ser colocado em produção e não funcionar: a famosa frase “mas no meu computador funcionou”.
  • 27. Deploy A solução está em criar um sistema de homologação. Primeiro o projeto é compilado, depois os testes unitários são executados. Na primeira fase, os testes executam as funcionalidades como o cliente faria e cobrem a maior quantidade de funções plausíveis de automatização. Na segunda fase, os desenvolvedores podem optar por deployar para um sistema de homologação, onde o cliente aprovará com os dados copiados de produção (alterações ligadas a sigilo de dados devem ser aplicadas).
  • 28. Deploy Por fim, quando o sistema está aprovado em homologação, com um clique o desenvolvedor efetua o deploy para produção.
  • 29. Conclusão Toda essa automatização tem um custo inicial de desenvolvimento que é compensado com a minimização de erros humanos no processo de deploy e na lentidão do mesmo. A chance de funcionar em produção é maximizada uma vez que a mesma foi testada em homologação com uma cópia mais fidedigna do sistema de produção possível: menos reclamações e tempo perdido pelo cliente.