Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
Globalcode – Open4education
Trilha – Testes
Samanta Cicília
samycici@gmail.com/@samantacicilia
Globalcode – Open4education
Alcançando Qualidade de Software
com
Entrega Contínua
Globalcode – Open4education
Globalcode – Open4education
Sobre a Infoglobo
• Focada no Impresso em processo de migração para o digital;
• Empresa sem C...
Globalcode – Open4education
Cenário Anterior:
• Execução de Testes Unitários dependia de “boa vontade”
• Validação (manuai...
Globalcode – Open4education
Entrega Contínua
Manifesto Ágil
Globalcode – Open4education
Benefícios
● Autonomia aos times
● Reduzir erros
● Reduzir estresse
● Flexibilidade de Implant...
Globalcode – Open4education
Princípios
● Criar um processo de confiabilidade e repetitividade de entrega de versão
● Autom...
Globalcode – Open4education
Exemplos
● Google: 8 minutos entre DEV e PRD
● Facebook: 2 vezes por dia
● Linkedin: 30 minuto...
Globalcode – Open4education
Pipeline de Implantação
● Manifestação automatizada do processo de levar o software do control...
Globalcode – Open4education
Pipeline de Implantação
Globalcode – Open4education
Práticas
● Compile seus binários somente uma vez
● Faça a implementação da mesma maneira em ca...
Globalcode – Open4education
Nosso Pipeline
Commit
Stage
Deploy
DSV
Smoke
Tests
Deploy
QLT
Testes
Funcionais
Testes de
Perf...
Globalcode – Open4education
Estágio de Commit
● Entrada para o Pipeline de Implantação
● Feedback para os devs
● Entrada: ...
Globalcode – Open4education
Testes Funcionais
Automatizados
Globalcode – Open4education
Deploys
● Feitos da mesma maneira em qualquer ambiente
● Dependem da aprovação do estágio ante...
Globalcode – Open4education
Testes de Performance
Automatizados
● Scritps do JMeter
● Cenários pré-definidos
● Limite máxi...
Globalcode – Open4education
Testes de Performance
Automatizados
Globalcode – Open4education
Análise de Log
● Logs da Aplicação
● Sumarização do TOP 15 erros que mais ocorreram
● Verifica...
Globalcode – Open4education
Análise de Log
Globalcode – Open4education
Análise de Log
Globalcode – Open4education
Já implementados
• 60 pipelines
• TIBCO
• Aplicações Tomcat (Java & Grails)
• Apache
• Varnish...
Globalcode – Open4education
SUCCESS
Globalcode – Open4education
FAIL
Globalcode – Open4education
Resultados
• Deploy em PRD NÃO é mais um evento temido =D
• Facilidade na identificação da cau...
Globalcode – Open4education
Desafios
• Acabar com os mitos:
o Testes “atrasam” o processo
o Custo da Qualidade é alto dema...
Globalcode – Open4education
Próxima fase
• Abertura de Solicitações de Deploy automatizada pelo Jenkins
• Desenvolvedores ...
Globalcode – Open4education
Referências
● http://manifestoagil.com.br/
● The Facebook Release Process
● Continuous Deliver...
Globalcode – Open4education
Treinamento em Automação de Testes:
• Selenium Webdriver
• Cucumber
• TDD
• BDD
• Jenkins
• Pa...
Globalcode – Open4education
Alcançando Qualidade de Software
com
Entrega Contínua
Upcoming SlideShare
Loading in …5
×

Alcançando qualidade de software através de entrega contínua

1,455 views

Published on

Entregar software que atenda as objetivos do negócio, em pouco tempo e com um alto padrão de qualidade ainda é um desafio para muitas empresas. Processos de desenvolvimento são muitas vezes burocráticos. O desenvolvimento ágil veio para nos mostrar que a forma que pensávamos em software podia ser melhorada. A Entrega Contínua veio para potencializar a entrega desde a primeira linha de código até produção. Nessa palestra vamos mostrar como estamos implementando Entrega Contínua na Infoglobo. Serão abordados os seguintes temas: Introdução à Entrega Contínua de software - Pipeline de Entrega - Estágio de Commit - Deploys nos ambientes de teste - Smoke Tests -Testes de Performance Automatizados - Análise de Log - Promoção dos pacotes para cada ambiente - Testes Regressivos (Automatizados/Manuais) - Deploy em Produção - Desafios Culturais -Próximos Passos

Published in: Technology

Alcançando qualidade de software através de entrega contínua

  1. 1. Globalcode – Open4education Trilha – Testes Samanta Cicília samycici@gmail.com/@samantacicilia
  2. 2. Globalcode – Open4education Alcançando Qualidade de Software com Entrega Contínua
  3. 3. Globalcode – Open4education
  4. 4. Globalcode – Open4education Sobre a Infoglobo • Focada no Impresso em processo de migração para o digital; • Empresa sem Cultura Ágil (apenas em TI) • Alguns produtos: • Tecnologias e Plataformas:
  5. 5. Globalcode – Open4education Cenário Anterior: • Execução de Testes Unitários dependia de “boa vontade” • Validação (manuais e automatizadas) das funcionalidades levando mais de 2 dias • Correria para corrigir testes quebrando (ou nem corrigir) • Deploys feitos em PRD de forma manual pela equipe de INFRA • Demora de até 1 mês para colocar uma mudança em PRD • Necessidade de uma Auditoria antes de uma versão estar disponível para PRD • Erros em log eram ignorados
  6. 6. Globalcode – Open4education Entrega Contínua Manifesto Ágil
  7. 7. Globalcode – Open4education Benefícios ● Autonomia aos times ● Reduzir erros ● Reduzir estresse ● Flexibilidade de Implantação ● Prática leva a perfeição ● Todo check-in é uma versão em potencial
  8. 8. Globalcode – Open4education Princípios ● Criar um processo de confiabilidade e repetitividade de entrega de versão ● Automatize quase tudo ● Mantenha tudo sob controle de versão ● Se é difícil, faça com mais frequência e amenize o sofrimento ● A qualidade DEVE estar presente desde o início ● Pronto quer dizer versão entregue ● Todos são responsáveis pelo processo de entrega ● Melhoria Contínua
  9. 9. Globalcode – Open4education Exemplos ● Google: 8 minutos entre DEV e PRD ● Facebook: 2 vezes por dia ● Linkedin: 30 minutos entre DEV e PRD ● Etsy: 30 deploys por dia feitos por 200+ pessoas;
  10. 10. Globalcode – Open4education Pipeline de Implantação ● Manifestação automatizada do processo de levar o software do controle de versão até os usuários. ● Implementação automatizada do processo de compilar todas as partes de uma aplicação, implantá-las em um ambiente qualquer – homologação ou produção – testá-la e efetuar sua entrega final.
  11. 11. Globalcode – Open4education Pipeline de Implantação
  12. 12. Globalcode – Open4education Práticas ● Compile seus binários somente uma vez ● Faça a implementação da mesma maneira em cada ambiente ● Use Smoke Tests ● Implante em uma cópia de Produção ● Cada mudança deve ser propagada pelo pipeline instantaneamente ● Se qualquer parte do pipeline falhar, pare o processo
  13. 13. Globalcode – Open4education Nosso Pipeline Commit Stage Deploy DSV Smoke Tests Deploy QLT Testes Funcionais Testes de Performance Análise de Log Deploy PRD
  14. 14. Globalcode – Open4education Estágio de Commit ● Entrada para o Pipeline de Implantação ● Feedback para os devs ● Entrada: Código - Saída: Binários e Relatórios ● CUIDADO: poucos testes e qualidade de código ruim
  15. 15. Globalcode – Open4education Testes Funcionais Automatizados
  16. 16. Globalcode – Open4education Deploys ● Feitos da mesma maneira em qualquer ambiente ● Dependem da aprovação do estágio anterior
  17. 17. Globalcode – Open4education Testes de Performance Automatizados ● Scritps do JMeter ● Cenários pré-definidos ● Limite máximo aceitável de tempo
  18. 18. Globalcode – Open4education Testes de Performance Automatizados
  19. 19. Globalcode – Open4education Análise de Log ● Logs da Aplicação ● Sumarização do TOP 15 erros que mais ocorreram ● Verificação de erros 404 e 50X ● Envio de e-mail para todos os responsáveis ● Tomada de decisão se o processo vai até o final (Deploy em PRD) ● Muito importante para os produtos mais antigos ● Preocupação de INFRA
  20. 20. Globalcode – Open4education Análise de Log
  21. 21. Globalcode – Open4education Análise de Log
  22. 22. Globalcode – Open4education Já implementados • 60 pipelines • TIBCO • Aplicações Tomcat (Java & Grails) • Apache • Varnish • Solr
  23. 23. Globalcode – Open4education SUCCESS
  24. 24. Globalcode – Open4education FAIL
  25. 25. Globalcode – Open4education Resultados • Deploy em PRD NÃO é mais um evento temido =D • Facilidade na identificação da causa de erros em PRD • Replicabilidade do Processo • Feedback • Validação diluída no processo, não precisamos mais de vários dias para os testes • Análise de Log parte do processo de todos os produtos • Deploys automatizados em PRD feitos por Atendimento Especializado (utilizando Jenkins) • Não é mais necessária auditoria antes dos Deploys em PRD • Deploy em PRD pode ser feito a qualquer momento • Menor ocorrência de erros gerados por intervenção manual
  26. 26. Globalcode – Open4education Desafios • Acabar com os mitos: o Testes “atrasam” o processo o Custo da Qualidade é alto demais o “Só está quebrando um teste, não precisa investigar” • TDD (Desenvolvimento Orientado a Testes) • DevOps • Agilidade na Organização
  27. 27. Globalcode – Open4education Próxima fase • Abertura de Solicitações de Deploy automatizada pelo Jenkins • Desenvolvedores fazendo Deploys em PRD • Projetos desenvolvidos por Terceiros no Pipeline • Levar o conhecimento de Entrega Contínua para todos os times • Implementar Pipeline para Mobile
  28. 28. Globalcode – Open4education Referências ● http://manifestoagil.com.br/ ● The Facebook Release Process ● Continuous Delivery at Google ● The Evolution of Continuous Delivery at Scale @ Linkedin ● Deploying the Netflix API
  29. 29. Globalcode – Open4education Treinamento em Automação de Testes: • Selenium Webdriver • Cucumber • TDD • BDD • Jenkins • Page Objects • Performance Turmas no Rio de Janeiro ou in Company http://rtstreinamentos.com.br/
  30. 30. Globalcode – Open4education Alcançando Qualidade de Software com Entrega Contínua

×