SlideShare uma empresa Scribd logo
1 de 70
Baixar para ler offline
Entrega Contínua
Do zero ao sucesso
“Depois de 6 meses desenvolvendo,
meu cliente disse que não era bem
o que ele queria…”
“Não aguento mais essas plannings
de 2 dias!”
“Ah vai se f#d&, mudança de
escopo de novo?!”
“Alguém sabe onde tá o documento
de como se publica essa aplicação?”
“Ué, o Dioguinho
não veio hoje?”
“Ele passou o fim de
semana
implantando
sistema...”
Quem somos noses
O que é entrega
contínua?
O que é entrega contínua?
O que é entrega contínua?
Feature
Framework
O que é entrega contínua?
Metodologias ágeis ajudam muito
neste modelo.
Caso de Estudo
Sistema X
Ambiente X
Fase de Concepção
Fase de Concepção
Definição de
Produto
Requisitos /
User Stories
MVP / Roadmap
Estratégia de
Projeto
Fase de Concepção - Definição do Produto
Fase de Concepção - Requisitos / US
Fase de Concepção - MVP / Roadmap
Fase de Concepção - Estratégia de Projeto
Fase de Concepção - Estratégia de Projeto
Fase de Concepção - Estratégia de Projeto
Desenvolvimento
Nosso cenário
● Sistema Financeiro.
● Falhas podem ocasionar multas e
processos judiciais.
● Crítico em níveis de integrações
com sistemas terceiros.
● Inovação dentro do parceiro.
Nosso cenário
● App nativo Android (5+)
● App nativo iOS (9+)
● Site responsivo
○ Smartphone
■ Chrome
■ Safari
○ Tablet
■ Chrome
■ Safari
○ Desktop
■ Chrome
■ Safari
■ Firefox
■ Edge
● API Backend em Micro Serviços
Planning
Feature
Tasks de
Dev
Tasks de
Integração
Telas
Regras de
Negócio
Serviços
Contratos
Mocks
Automatização
Exemplo: Contract First
Exemplo: Contract First
POST /api/payment/
Fluxo: Contract First
Virtualização de Serviços
http://wiremock.org/
Cenários criados rapidamente
Gravação
Extensão
Automação!
O que automatizar?
Quanto automatizar?
Por que testar em vários níveis?
Testes Unitários (40%) - Desenvolvimento
Serviços (30%) - SOAP/REST
User Interface (20%) - Desktop
User Interface (20%) - Web
User Interface (20%) - Web
User Interface (20%) - Mobile
User Interface (20%) - DDT
"Data-driven testing (DDT) é um
termo usado na área de Teste de
Software para descrever testes
feitos usando uma tabela de
condições diretamente como
dados de entrada e respostas,
bem como, os processos onde
configurações e controles não
possuem informação escrita
diretamente no código
(Hard-Coded)." - Wikipedia
Cenário: Login
Dado que estou na tela de Inicio do App
E eu clicar no menu "Minha Conta"
E preencher o cpf "01203254950"
E preencher a senha "minhasenha"
Quando eu clicar no botão acessar
Entao deve exibir o resumo da minha conta
Cenário: Erro no login
Dado que estou na tela de Inicio do App
E eu clicar no menu "Minha Conta"
E preencher o cpf "01203254950"
E preencher a senha "minhasenhaerrada"
Quando eu clicar no botão acessar
Entao deve exibir um toast com a mensagem de erro
User Interface (20%) - DDT
Cenário: Login
Dado que estou na tela de Inicio do App
E eu clicar no menu "Minha Conta"
E preencher o cpf <cpf>
E preencher a senha <senha>
Quando eu clicar no botão acessar
Entao <resultado>
Exemplos:
| cpf | senha | resultado |
| 12930485960 | 123456 | deve exibir o resumo da minha conta |
| 37483937282 | erroab | deve exibir um toast com a mensagem de erro |
E se eu quiser rodar em Dev/Tst/Hml?
E se eu quiser rodar em Dev/Tst/Hml?
export let ParamsDev = {
clienteSucesso: "12930485960",
senhaSucesso: "123456",
clienteErro: "37483937282",
senhaErro: "errodev"
}
export let ParamsTst = {
clienteSucesso: "03840392839",
senhaSucesso: "654321",
clienteErro: "01928374650",
senhaErro: "errotst"
}
export let ParamsHml = {
clienteSucesso: "37483629087",
senhaSucesso: "123654",
clienteErro: "29839840987",
senhaErro: "errohml"
}
Cenário: Login
Dado que estou na tela de Inicio do App
E eu clicar no menu "Minha Conta"
E preencher o cpf <cpf>
E preencher a senha <senha>
Quando eu clicar no botão acessar
Entao <resultado>
Exemplos:
| cpf | senha | resultado |
| clienteSucesso| senhaSucesso| deve exibir o resumo da minha conta|
| clienteErro | senhaErro | deve exibir um toast com o erro |
Como gerenciar a criação dos dados?
Como gerenciar a criação dos dados?
gulp.task('rename-params', function () {
var params = 'data/params.' + util.env.params + ".ts";
if (fs.existsSync(params)) {
return gulp.src(params)
.pipe(rename('params.ts'))
.pipe(gulp.dest('build/data/'))
}else{
files = [];
fs.readdirSync('data').forEach(file => {
files.push(" " + file);
})
throw new Error("ARQUIVO DE CONFIGURAÇÃO INEXISTENTE. Tente estes Arquivos existentes:" + files);
}
});
Exploratórios / Manuais (10%)
Depois de tantos testes...
Desenvolvimento até aqui
Resultado Disso:
Feature /
User Story
API
Site
App
TODO DOING DONE
Continuous Integration
Continuous Delivery
Git Flow
Git Flow
Master
Develop
Feature
Branch
Push to
Server
- Code Lint
- Unit Test
Merge
Request
- Code Lint
- Unit Test
- Automated Test
Develop
- Need two dev
approvals
Release
- Automated Test
- Publish to Beta
- Publish to QAMaster +
Tag
Tools
JENKINS DOCKER FASTLANE HOCKEYAPP
TESTFLIGHT
GOOGLE
PLAY BETA
AWS DEVICE
FARM
APPIUM CALABA.SH
KUBERNETES
SLACK
Produção
Firebase Crash Reporting
Firebase Crash Reporting
Firebase Crash Reporting
Firebase Crash Reporting
Graylog - Log Management
Graylog - Log Management
Analytics
Analytics
Analytics
Hoje:
+ 1 000 000
de usuários ativos
Hoje:
+ 85 000 000
ações de usuários
Obrigado!
ben-hur@outlook.com
benhurott
diracijunior@gmail.com
diracijunior
ernestosbarbosa@outlook.com
ernestosbarbosa

Mais conteúdo relacionado

Semelhante a Entrega Contínua do zero ao sucesso

Desenvolvendo aplicações orientadas a testes de aceitação: um caso prático
Desenvolvendo aplicações orientadas a testes de aceitação: um caso práticoDesenvolvendo aplicações orientadas a testes de aceitação: um caso prático
Desenvolvendo aplicações orientadas a testes de aceitação: um caso práticoelliando dias
 
[GUTS-RS] MBehavior, um framework de automação de testes multiplataforma para...
[GUTS-RS] MBehavior, um framework de automação de testes multiplataforma para...[GUTS-RS] MBehavior, um framework de automação de testes multiplataforma para...
[GUTS-RS] MBehavior, um framework de automação de testes multiplataforma para...GUTS-RS
 
Integração Contínua
Integração ContínuaIntegração Contínua
Integração Contínuaguesta433a8
 
A Arte dos Testes de Performance Aplicacional
A Arte dos Testes de Performance AplicacionalA Arte dos Testes de Performance Aplicacional
A Arte dos Testes de Performance AplicacionalNuno Baptista Rodrigues
 
QArentena 21: BDD - com Fábio Araújo
QArentena 21: BDD - com Fábio AraújoQArentena 21: BDD - com Fábio Araújo
QArentena 21: BDD - com Fábio AraújoJosé Correia
 
[Front in Sampa 2018] Desenvolvendo como QAs
[Front in Sampa 2018] Desenvolvendo como QAs[Front in Sampa 2018] Desenvolvendo como QAs
[Front in Sampa 2018] Desenvolvendo como QAsJúlio de Lima
 
SICJUR - Sistema de Controle Jurídico
SICJUR - Sistema de Controle JurídicoSICJUR - Sistema de Controle Jurídico
SICJUR - Sistema de Controle JurídicoRenzo Petri
 
01- Introdução a programação e modelo RAD v1.0
01- Introdução a programação e modelo RAD v1.001- Introdução a programação e modelo RAD v1.0
01- Introdução a programação e modelo RAD v1.0César Augusto Pessôa
 
Visualg primeira interação
Visualg   primeira interaçãoVisualg   primeira interação
Visualg primeira interaçãoHumberto Cepep
 
Qualidade de software e sua influência no sucesso do projeto
Qualidade de software e sua influência no sucesso do projetoQualidade de software e sua influência no sucesso do projeto
Qualidade de software e sua influência no sucesso do projetoValquíria Duarte D'Amato
 
O processo de criação de um web site | By Alessandra Soares
O processo de criação de um web site | By Alessandra SoaresO processo de criação de um web site | By Alessandra Soares
O processo de criação de um web site | By Alessandra SoaresProdv Comunicação
 
Fundamentos de testes de Software
Fundamentos de testes de SoftwareFundamentos de testes de Software
Fundamentos de testes de SoftwareThayse Severiano
 
Programação Orientada a Testes
Programação Orientada a TestesProgramação Orientada a Testes
Programação Orientada a TestesGregorio Melo
 
EDTED Aprenda, ensine e melhores os resultados com seus clientes. Requisito d...
EDTED Aprenda, ensine e melhores os resultados com seus clientes. Requisito d...EDTED Aprenda, ensine e melhores os resultados com seus clientes. Requisito d...
EDTED Aprenda, ensine e melhores os resultados com seus clientes. Requisito d...Fabiano Milani
 
Cobrancas online na sua aplicacao com MoIP
Cobrancas online na sua aplicacao com MoIPCobrancas online na sua aplicacao com MoIP
Cobrancas online na sua aplicacao com MoIPHerberth Amaral
 
Logística, transporte, infra-estrutura e aspectos gerais do setor de base flo...
Logística, transporte, infra-estrutura e aspectos gerais do setor de base flo...Logística, transporte, infra-estrutura e aspectos gerais do setor de base flo...
Logística, transporte, infra-estrutura e aspectos gerais do setor de base flo...Instituto Besc
 
Programando extensões para Internet Explorer (Webslices e Aceleradores)
Programando extensões para Internet Explorer (Webslices e Aceleradores)Programando extensões para Internet Explorer (Webslices e Aceleradores)
Programando extensões para Internet Explorer (Webslices e Aceleradores)Rogerio Cordeiro
 

Semelhante a Entrega Contínua do zero ao sucesso (20)

Ns tutorial so
Ns tutorial soNs tutorial so
Ns tutorial so
 
Desenvolvendo aplicações orientadas a testes de aceitação: um caso prático
Desenvolvendo aplicações orientadas a testes de aceitação: um caso práticoDesenvolvendo aplicações orientadas a testes de aceitação: um caso prático
Desenvolvendo aplicações orientadas a testes de aceitação: um caso prático
 
[GUTS-RS] MBehavior, um framework de automação de testes multiplataforma para...
[GUTS-RS] MBehavior, um framework de automação de testes multiplataforma para...[GUTS-RS] MBehavior, um framework de automação de testes multiplataforma para...
[GUTS-RS] MBehavior, um framework de automação de testes multiplataforma para...
 
Integração Contínua
Integração ContínuaIntegração Contínua
Integração Contínua
 
A Arte dos Testes de Performance Aplicacional
A Arte dos Testes de Performance AplicacionalA Arte dos Testes de Performance Aplicacional
A Arte dos Testes de Performance Aplicacional
 
QArentena 21: BDD - com Fábio Araújo
QArentena 21: BDD - com Fábio AraújoQArentena 21: BDD - com Fábio Araújo
QArentena 21: BDD - com Fábio Araújo
 
[Front in Sampa 2018] Desenvolvendo como QAs
[Front in Sampa 2018] Desenvolvendo como QAs[Front in Sampa 2018] Desenvolvendo como QAs
[Front in Sampa 2018] Desenvolvendo como QAs
 
SICJUR - Sistema de Controle Jurídico
SICJUR - Sistema de Controle JurídicoSICJUR - Sistema de Controle Jurídico
SICJUR - Sistema de Controle Jurídico
 
01- Introdução a programação e modelo RAD v1.0
01- Introdução a programação e modelo RAD v1.001- Introdução a programação e modelo RAD v1.0
01- Introdução a programação e modelo RAD v1.0
 
Visualg primeira interação
Visualg   primeira interaçãoVisualg   primeira interação
Visualg primeira interação
 
Qualidade de software e sua influência no sucesso do projeto
Qualidade de software e sua influência no sucesso do projetoQualidade de software e sua influência no sucesso do projeto
Qualidade de software e sua influência no sucesso do projeto
 
O processo de criação de um web site | By Alessandra Soares
O processo de criação de um web site | By Alessandra SoaresO processo de criação de um web site | By Alessandra Soares
O processo de criação de um web site | By Alessandra Soares
 
Asp.Net Mvc Dev Days09 V3 Pt
Asp.Net Mvc Dev Days09 V3 PtAsp.Net Mvc Dev Days09 V3 Pt
Asp.Net Mvc Dev Days09 V3 Pt
 
Fundamentos de testes de Software
Fundamentos de testes de SoftwareFundamentos de testes de Software
Fundamentos de testes de Software
 
Programação Orientada a Testes
Programação Orientada a TestesProgramação Orientada a Testes
Programação Orientada a Testes
 
EDTED Aprenda, ensine e melhores os resultados com seus clientes. Requisito d...
EDTED Aprenda, ensine e melhores os resultados com seus clientes. Requisito d...EDTED Aprenda, ensine e melhores os resultados com seus clientes. Requisito d...
EDTED Aprenda, ensine e melhores os resultados com seus clientes. Requisito d...
 
Cobrancas online na sua aplicacao com MoIP
Cobrancas online na sua aplicacao com MoIPCobrancas online na sua aplicacao com MoIP
Cobrancas online na sua aplicacao com MoIP
 
04_Introducao_JavaScript.pdf
04_Introducao_JavaScript.pdf04_Introducao_JavaScript.pdf
04_Introducao_JavaScript.pdf
 
Logística, transporte, infra-estrutura e aspectos gerais do setor de base flo...
Logística, transporte, infra-estrutura e aspectos gerais do setor de base flo...Logística, transporte, infra-estrutura e aspectos gerais do setor de base flo...
Logística, transporte, infra-estrutura e aspectos gerais do setor de base flo...
 
Programando extensões para Internet Explorer (Webslices e Aceleradores)
Programando extensões para Internet Explorer (Webslices e Aceleradores)Programando extensões para Internet Explorer (Webslices e Aceleradores)
Programando extensões para Internet Explorer (Webslices e Aceleradores)
 

Entrega Contínua do zero ao sucesso