SlideShare uma empresa Scribd logo
1 de 29
Baixar para ler offline
Café + Código 
Rocket-engine 
Danilo De Luca 
Francisco Portillo
Histórico da 
situação do projeto
Nossos testes 
Selenium+Integração 
1090 10h 
80% core business coberto
Nossos testes 
Selenium+Integração Unitários 
1090 10h 410 9min 
80% core business coberto 3% core business coberto
Nossos testes 
Selenium+Integração Unitários 
1090 10h 410 9min 
1 ou mais versões toda semana 
80% core business coberto 3% core business coberto
Execução manual…
Demorava…. 
- 1 a 2 dias boa parte da equipe executando os testes 
durante na semana 
- Causava mau humor na equipe 
- Em 1 semana boa, conseguíamos ter 3 dias de 
desenvolvimento 
- Testes eram executados 1x por semana
Iniciativas 
MyContainer Grid 
Rodar vários containers numa mesma máquina - Escalabilidade vertical 
Testes rodaram em 15min, porém com falsos negativos/positivos e resultados 
intermitentes
Iniciativas 
MyContainer Grid 
Rodar vários containers numa mesma máquina - Escalabilidade vertical 
Testes rodaram em 15min, porém com falsos negativos/positivos e resultados 
intermitentes 
Problemas encontrados 
Código do MyContainer Grid ficou muito desatualizado muito rápido, não 
conseguimos fazer o merge da branch atualizada. 
Na máquina mais rápida da época no EC2: 
- 32 processadores físicos 
- 64Gb+ RAM 
Custo alto por hora($$) 
Mostrou mais de 100% de utilização de CPU para algumas instâncias
Rocket-engine 
Como surgiu?
Por que não 
automatizar o 
processo manual tal 
como já era feito?
Tests distribuídos
Tests distribuídos 
Distribuição do código entre as máquinas da Dextra
Tests distribuídos 
Distribuição do código entre as máquinas da Dextra 
Estilo Map-Reduce
Tests distribuídos 
Distribuição do código entre as máquinas da Dextra 
Estilo Map-Reduce 
Display over ssh
Tests distribuídos 
Distribuição do código entre as máquinas da Dextra 
Estilo Map-Reduce 
Display over ssh 
Agregação de resultados ao final de cada parte
Tests distribuídos 
Map Map 
Results 
Map Map 
Results Results 
Results
Primeiras versões 
Divisão simples de suítes por máquinas, verificamos 
que algumas máquinas ficavam ociosas 
Identificamos que existiam vários testes 
intermitentes 75-80% de sucesso
Resultados 
Recuperação de 20 a 30% da produtividade do time 
Recuperação do humor do time às segundas e terças 
feiras o/ 
Escalabilidade horizontal 
Build todo dia, mais de 1x ao dia o/
Resultados 
Build time 2h em 4 máquinas 
10h boa parte do time alocado 
(ninguém alocado)
Resultados 
Build time 2h em 4 máquinas 
10h boa parte do time alocado 
(ninguém alocado) 
False negatives 
75% success 99% success
Resultados 
Build time 2h em 4 máquinas 
10h boa parte do time alocado 
(ninguém alocado) 
False negatives 
75% success 99% success 
Build 10x ao dia 
Segurança para mudar ou criar novas features
Resultados 
Selenium+Integração Unitários 
1090 1350 410 
1920 
80% core business coberto 19% core business coberto
Melhorias 
Adaptações para ser utilizável para 
outros projetos 
Inclusão de novas máquinas em tempo 
de build (testing)
Melhorias no SOCC 
Aumento da granularidade nas suítes 
de testes 
100% success, atualmente estamos 
em 99%
Confidence   rocket engine
Confidence   rocket engine
Confidence   rocket engine

Mais conteúdo relacionado

Semelhante a Confidence rocket engine

Semelhante a Confidence rocket engine (20)

Automação de Testes: Ferramentas e Aplicação com Integração Contínua
Automação de Testes: Ferramentas e Aplicação com Integração ContínuaAutomação de Testes: Ferramentas e Aplicação com Integração Contínua
Automação de Testes: Ferramentas e Aplicação com Integração Contínua
 
Tdc continuous testing
Tdc   continuous testing Tdc   continuous testing
Tdc continuous testing
 
Times de Alta Performance
Times de Alta PerformanceTimes de Alta Performance
Times de Alta Performance
 
Times de Alta Performance
Times de Alta PerformanceTimes de Alta Performance
Times de Alta Performance
 
CNQS - Testes Automatizados & Continuous Delivery
CNQS - Testes Automatizados & Continuous DeliveryCNQS - Testes Automatizados & Continuous Delivery
CNQS - Testes Automatizados & Continuous Delivery
 
[Lady talks]Continuous Delivery
[Lady talks]Continuous Delivery[Lady talks]Continuous Delivery
[Lady talks]Continuous Delivery
 
Flaky tests: O flakiness que há em você!
Flaky tests: O flakiness que há em você!Flaky tests: O flakiness que há em você!
Flaky tests: O flakiness que há em você!
 
Paralelize seus testes web e mobile para ter feedbacks mais rápidos
Paralelize seus testes web e mobile para ter feedbacks mais rápidosParalelize seus testes web e mobile para ter feedbacks mais rápidos
Paralelize seus testes web e mobile para ter feedbacks mais rápidos
 
SAFe - Como escalar algo artesanal?
SAFe - Como escalar algo artesanal?SAFe - Como escalar algo artesanal?
SAFe - Como escalar algo artesanal?
 
TDC2018FLN | Trilha Ruby - Como turbinamos nossa sua suite de testes Rails em...
TDC2018FLN | Trilha Ruby - Como turbinamos nossa sua suite de testes Rails em...TDC2018FLN | Trilha Ruby - Como turbinamos nossa sua suite de testes Rails em...
TDC2018FLN | Trilha Ruby - Como turbinamos nossa sua suite de testes Rails em...
 
TDC - Testes e Sistemas legados #quemNunca - SC/2016
TDC - Testes e Sistemas legados #quemNunca - SC/2016TDC - Testes e Sistemas legados #quemNunca - SC/2016
TDC - Testes e Sistemas legados #quemNunca - SC/2016
 
Testes - Para que?
Testes - Para que?Testes - Para que?
Testes - Para que?
 
TDD em django sem desculpas versao fisl
TDD em django sem desculpas versao fislTDD em django sem desculpas versao fisl
TDD em django sem desculpas versao fisl
 
Como automatizar Sistemas Legados utilizando ferramentas de DevOps
Como automatizar Sistemas Legados utilizando ferramentas de DevOpsComo automatizar Sistemas Legados utilizando ferramentas de DevOps
Como automatizar Sistemas Legados utilizando ferramentas de DevOps
 
[Uff] Continuous Delivery: Entrega Contínua de Software de Valor
[Uff] Continuous Delivery: Entrega Contínua de Software de Valor[Uff] Continuous Delivery: Entrega Contínua de Software de Valor
[Uff] Continuous Delivery: Entrega Contínua de Software de Valor
 
Performance Tuning de Clusters Plone - PyConBrasil 2 (2006)
Performance Tuning de Clusters Plone - PyConBrasil 2 (2006)Performance Tuning de Clusters Plone - PyConBrasil 2 (2006)
Performance Tuning de Clusters Plone - PyConBrasil 2 (2006)
 
Palestra ganeti puppet
Palestra ganeti puppetPalestra ganeti puppet
Palestra ganeti puppet
 
[DevOps Carioca] Continuous Delivery
[DevOps Carioca]  Continuous Delivery[DevOps Carioca]  Continuous Delivery
[DevOps Carioca] Continuous Delivery
 
Matando web forms e modernizando um grande varejista
Matando web forms e modernizando um grande varejistaMatando web forms e modernizando um grande varejista
Matando web forms e modernizando um grande varejista
 
Construindo um micro-serviço Java 100% funcional em 15 minutos
Construindo um micro-serviço Java 100% funcional em 15 minutosConstruindo um micro-serviço Java 100% funcional em 15 minutos
Construindo um micro-serviço Java 100% funcional em 15 minutos
 

Confidence rocket engine