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

30
Globalcode – Open4education Trilha – Testes Samanta Cicília [email protected]/@samantacicilia

Upload: samanta-cicilia

Post on 25-Jul-2015

625 views

Category:

Technology


0 download

TRANSCRIPT

Globalcode – Open4education

Trilha – TestesSamanta Cicília

[email protected]/@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 Cultura Ágil (apenas em TI)

• Alguns produtos:

• Tecnologias e Plataformas:

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

Globalcode – Open4education

Entrega Contínua

Manifesto Ágil

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

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

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;

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.

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 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

Globalcode – Open4education

Nosso Pipeline

Commit Stage

Deploy DSV

Smoke Tests

Deploy QLT

Testes Funcionais

Testes de Performance

Análise de Log

Deploy PRD

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

Globalcode – Open4education

Testes Funcionais Automatizados

Globalcode – Open4education

Deploys

● Feitos da mesma maneira em qualquer ambiente● Dependem da aprovação do estágio anterior

Globalcode – Open4education

Testes de Performance Automatizados

● Scritps do JMeter● Cenários pré-definidos● Limite máximo aceitável de tempo

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çã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

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• Solr

Globalcode – Open4education

SUCCESS

Globalcode – Open4education

FAIL

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

Globalcode – Open4education

Desafios

• Acabar com os mitos:o Testes “atrasam” o processoo Custo da Qualidade é alto demaiso “Só está quebrando um teste, não precisa investigar”

• TDD (Desenvolvimento Orientado a Testes)• DevOps• Agilidade na Organização

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

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

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/

Globalcode – Open4education

Alcançando Qualidade de Software com

Entrega Contínua