SlideShare uma empresa Scribd logo
Android Apps Continuous Integration
Eduardo Carrara
@DuCarrara
Android Developer @ TradeForce
Desafios e Soluções
“Once you stop learning you start dying”
- Albert Einstein
Continuous Integration (CI)
"Sempre que um membro do time fizer um
commit, toda a aplicação deve ser
construída e testada por um conjunto de
testes automatizados; se a build ou testes
falharem o time deve parar e resolver o
problema imediatamente."
Continuous Delivery: Reliable Software Releases through Build, Test, and Deployment Automation
Benefícios
Redução de riscos pré-release
Aumento na velocidade e qualidade das entregas
Detecção e correção prematura de bugs
Feedback rápidos aos desenvolvedores time
Antes de Começar...
Tenha um sistema para controle do versionamento
Automatize seu processo de build
Práticas de CI: Desenvolvimento
Faça check in regularmente (diariamente no mínimo)
Sempre esteja pronto para reverter suas alterações
Faça uma gestão adequada do seu ambiente de desenvolvimento
Tente corrigir por um tempo determinado antes de reverter
Práticas de CI: Testes
Crie testes automatizados
Espere o resultado dos testes antes de iniciar uma nova atividade
Sempre rode os testes antes de integrar as alterações
Não comente/desative testes que estão falhando
Práticas de CI: Build
Mantenha o processo de testes e build curtos e rápidos
Nunca vá para casa com uma build quebrada
Não faça check in de uma build quebrada
Assuma a responsabilidade por quebras causadas por suas mudanças
Dicas e Cuidados para Android
Android
Ambiente, API Level e Build Tools
Dependências e Velocidade das Builds
Lint
Automatize o Release e Utilize Ferramentas de Beta
Rode seus Testes
Rode seus testes localmente e no CI
check, connectedAndroidTest, testReleaseUnitTest
As tasks do Gradle são suas amigas
Ferramentas
Android apps ci
Um caso
Situação
Legado de ~4 anos com um time novo <1 ano de projeto
Medo de refactoring, baixa cobertura de testes
Github + TeamCity (self hosted)
Falta de visibilidade e rastreabilidade
Ações
Adoção do Git Flow
Uso do Crashlytics Beta
Troca do TeamCity pelo Bitrise.io
Melhoria na cobertura de testes
Desafios & Futuro
Melhorar a cobertura de Testes
Incluir mais ferramentas de análise estática (FindBugs, CheckStyle)
Criar suites de testes de integração e adicioná-los ao Bitrise.io
Pensamentos Finais
Prática simples mas a implementação pode ser complexa
Disciplina e persistência são chave
Android tem suas peculiaridades, fique atento!
“… if you are afraid to change something it is clearly poorly designed.”
- Martin Fowler
Perguntas?
Eduardo Carrara
@DuCarrara
Obrigado!
github.com/ecarrara-araujo
Referências
1. Continuous Integration by Martin Fowler
2. Continuous Integration by ContinuousDelivery.com
3. CI Links by Paul Hammant
4. Large-Scale Continuous Testing in the Cloud by John Penix from Google
5. Continuous Integration: Improving Software Quality and Reducing Risk
6. Continuous Delivery: Reliable Software Releases through Build, Test, and Deployment
Automation
7. Why Continuous Integration is so Important by Walmyr Filho
8. Android Apps Continuous Integration (CI) by Eduardo Carrara

Mais conteúdo relacionado

PPTX
Integração continua sem traumas
sabrinajn
 
PDF
Como testar a performance de ap is utilizando uma ferramenta simples e gratuita?
Edlaine Zamora
 
PDF
Gerando aplicações Spring Boot e AngularJS com gerador de código JHipster
Edlaine Zamora
 
PPTX
Automação mobile Android - TDC
Nàtali Cabral
 
PDF
TDC2018SP | Trilha Testes - Guia de sobrevivência do QA em DevOps
tdc-globalcode
 
PDF
Apenas um script de teste para iOS e Android
Elias Nogueira
 
PDF
TDC2017 | Florianópolis - Trilha Java Melhorando a performance do seu Código ...
tdc-globalcode
 
PDF
A Importância do Teste Continuo
Elias Nogueira
 
Integração continua sem traumas
sabrinajn
 
Como testar a performance de ap is utilizando uma ferramenta simples e gratuita?
Edlaine Zamora
 
Gerando aplicações Spring Boot e AngularJS com gerador de código JHipster
Edlaine Zamora
 
Automação mobile Android - TDC
Nàtali Cabral
 
TDC2018SP | Trilha Testes - Guia de sobrevivência do QA em DevOps
tdc-globalcode
 
Apenas um script de teste para iOS e Android
Elias Nogueira
 
TDC2017 | Florianópolis - Trilha Java Melhorando a performance do seu Código ...
tdc-globalcode
 
A Importância do Teste Continuo
Elias Nogueira
 

Mais procurados (20)

PDF
TDC2018SP | Trilha Testes - Testes de carga e performance com Gatling.io
tdc-globalcode
 
PDF
O Testador Técnico
Elias Nogueira
 
PPT
Integracao Continua com CruiseControl
Luthiano Vasconcelos
 
PPTX
Automação de Teste para REST, Web e Mobile
Elias Nogueira
 
PPTX
DevOps Summit Brasil: +10 Ferramentas para Melhorar a Qualidade do seu Software
André Dias
 
PDF
Papel do QA na Transformação Ágil
Elias Nogueira
 
PPTX
Feedback mais rápido na sua build dividindo os testes funcionais
Elias Nogueira
 
PDF
QAOps - O QA com pézinho em DevOps (Ministry of Testing Floripa 2019)
Mayara Fernandes
 
PDF
[DevelopersBR-2018] Testes de performance usando a nuvem
Júlio de Lima
 
PDF
Usando containers com auto-escala de testes
Elias Nogueira
 
PPTX
Sonarqube
CDS
 
PDF
Criando uma grid para execução de teste automatizado funcional e e2e
Elias Nogueira
 
PDF
[TDC2016] Ruby in Tests: Automatizando testes de Unidade, API e GUI (Web)
Júlio de Lima
 
PPTX
Visual Regression Tests - Dando um Upload nos seus testes de UI!
Mariana Elisa Moisés , CTFL-AT,MBA
 
PDF
Como criar testes rápidos e robustos com Cypress
Walmyr Lima e Silva Filho
 
PDF
Testes com TestLink e Selenium
André Thiago
 
PDF
Análise Estática de Código
Ricardo Terra
 
PDF
A importancia de testes em todos os aspectos
Elias Nogueira
 
PDF
Como criar e executar testes paralelos web usando Selenium e containers
Elias Nogueira
 
PDF
TDCPOA2018 - Trilha Delphi - Desconstruindo Monolitos Delphi
Mayara Fernandes
 
TDC2018SP | Trilha Testes - Testes de carga e performance com Gatling.io
tdc-globalcode
 
O Testador Técnico
Elias Nogueira
 
Integracao Continua com CruiseControl
Luthiano Vasconcelos
 
Automação de Teste para REST, Web e Mobile
Elias Nogueira
 
DevOps Summit Brasil: +10 Ferramentas para Melhorar a Qualidade do seu Software
André Dias
 
Papel do QA na Transformação Ágil
Elias Nogueira
 
Feedback mais rápido na sua build dividindo os testes funcionais
Elias Nogueira
 
QAOps - O QA com pézinho em DevOps (Ministry of Testing Floripa 2019)
Mayara Fernandes
 
[DevelopersBR-2018] Testes de performance usando a nuvem
Júlio de Lima
 
Usando containers com auto-escala de testes
Elias Nogueira
 
Sonarqube
CDS
 
Criando uma grid para execução de teste automatizado funcional e e2e
Elias Nogueira
 
[TDC2016] Ruby in Tests: Automatizando testes de Unidade, API e GUI (Web)
Júlio de Lima
 
Visual Regression Tests - Dando um Upload nos seus testes de UI!
Mariana Elisa Moisés , CTFL-AT,MBA
 
Como criar testes rápidos e robustos com Cypress
Walmyr Lima e Silva Filho
 
Testes com TestLink e Selenium
André Thiago
 
Análise Estática de Código
Ricardo Terra
 
A importancia de testes em todos os aspectos
Elias Nogueira
 
Como criar e executar testes paralelos web usando Selenium e containers
Elias Nogueira
 
TDCPOA2018 - Trilha Delphi - Desconstruindo Monolitos Delphi
Mayara Fernandes
 
Anúncio

Semelhante a Android apps ci (20)

PPT
Brateste 2013: Testes Agile em Processos Agile
ananegrello
 
PPT
Automação de Testes: Ferramentas e Aplicação com Integração Contínua
Gabriela Patuci
 
PPT
Tdc continuous testing
Walter Farias
 
PPTX
Gerenciamento da Qualidade de Software 4.pptx
Roberto Nunes
 
PDF
Descomplicando CI/CD com Jenkins, Docker Swarm e Github
Marcelo Souza Vieira
 
PPTX
Integração Contínua
ScrumHalf Tool
 
PDF
Agile Testing - Qualidade do Discovery ao Deploy
Eduardo Cini
 
PPTX
Cloud Computing e Integração Contínua com o Windows Azure
Grupo de Testes Carioca
 
PPTX
Desenvolvimento Dirigido por Testes
Camilo Ribeiro
 
PPT
TDC 2013 7 Dicas para acelerar os testes
Felipe Freire
 
PDF
Automação de testes - uma introdução sobre estratégias
Kleitor Franklint Correa Araujo
 
PDF
Maio 2016 - Integração e Validação Contínua
Grupo de Testes Carioca
 
PDF
DevOps - Aula 4 - Testes Automatizados e Garantia de Qualidade E CI.pdf
JosianeRezende11
 
PPT
Final Project (2013): Test-Driven Development applied on web applications
Luiz Henrique
 
PDF
QConRio 2014 - Tutorial Iniciando Com Continuous Delivery
Rodrigo Russo
 
PPTX
Menos teste e mais qualidade - como equilibrar essa equação?
Igor Abade
 
PPT
Integracao Continua em projetos .NET
Luthiano Vasconcelos
 
PPTX
Scrum e Team Foundation Server - Qualidade ao longo de todo o ciclo de vida d...
Igor Abade
 
PDF
Arquitetura de Software para a Entrega Continua
Otávio Calaça Xavier
 
PDF
ld0mg1hrlhzbyvgfiyyq-signature-d9919623d100cd87ad7553e4c50163aa9329a439464540...
Antonio Lobato
 
Brateste 2013: Testes Agile em Processos Agile
ananegrello
 
Automação de Testes: Ferramentas e Aplicação com Integração Contínua
Gabriela Patuci
 
Tdc continuous testing
Walter Farias
 
Gerenciamento da Qualidade de Software 4.pptx
Roberto Nunes
 
Descomplicando CI/CD com Jenkins, Docker Swarm e Github
Marcelo Souza Vieira
 
Integração Contínua
ScrumHalf Tool
 
Agile Testing - Qualidade do Discovery ao Deploy
Eduardo Cini
 
Cloud Computing e Integração Contínua com o Windows Azure
Grupo de Testes Carioca
 
Desenvolvimento Dirigido por Testes
Camilo Ribeiro
 
TDC 2013 7 Dicas para acelerar os testes
Felipe Freire
 
Automação de testes - uma introdução sobre estratégias
Kleitor Franklint Correa Araujo
 
Maio 2016 - Integração e Validação Contínua
Grupo de Testes Carioca
 
DevOps - Aula 4 - Testes Automatizados e Garantia de Qualidade E CI.pdf
JosianeRezende11
 
Final Project (2013): Test-Driven Development applied on web applications
Luiz Henrique
 
QConRio 2014 - Tutorial Iniciando Com Continuous Delivery
Rodrigo Russo
 
Menos teste e mais qualidade - como equilibrar essa equação?
Igor Abade
 
Integracao Continua em projetos .NET
Luthiano Vasconcelos
 
Scrum e Team Foundation Server - Qualidade ao longo de todo o ciclo de vida d...
Igor Abade
 
Arquitetura de Software para a Entrega Continua
Otávio Calaça Xavier
 
ld0mg1hrlhzbyvgfiyyq-signature-d9919623d100cd87ad7553e4c50163aa9329a439464540...
Antonio Lobato
 
Anúncio

Mais de Eduardo Carrara de Araujo (20)

PDF
Só um appzinho aê!? - O guia de sobrevivência para o dev da ideia inovadora a...
Eduardo Carrara de Araujo
 
PDF
Melhorando seu App com Kotlin e Testes
Eduardo Carrara de Araujo
 
PDF
Indo além com Automação de Testes de Apps Android
Eduardo Carrara de Araujo
 
PDF
2016 - Por que mobile?
Eduardo Carrara de Araujo
 
PDF
Testes: Por onde Começar?
Eduardo Carrara de Araujo
 
PDF
Android ndk: Entering the native world
Eduardo Carrara de Araujo
 
PDF
Android NDK: Entrando no Mundo Nativo
Eduardo Carrara de Araujo
 
PDF
Implementation of a Participatory Sensing Solution to Collect Data About Pave...
Eduardo Carrara de Araujo
 
PDF
GDG ABC - Aventura 2015
Eduardo Carrara de Araujo
 
PDF
Android Test Automation Workshop
Eduardo Carrara de Araujo
 
PDF
Android M - Getting Started
Eduardo Carrara de Araujo
 
PDF
Testando Sua App Android na Nuvem
Eduardo Carrara de Araujo
 
PDF
Utilizando Espresso e UIAutomator no Teste de Apps Android
Eduardo Carrara de Araujo
 
PDF
Começando com Android (#AndroidOnIntel)
Eduardo Carrara de Araujo
 
PDF
Android Auto Basics
Eduardo Carrara de Araujo
 
PDF
Debugging in Android
Eduardo Carrara de Araujo
 
PDF
Android 101: Do Plano ao Play
Eduardo Carrara de Araujo
 
PDF
Testing Your App in the Cloud
Eduardo Carrara de Araujo
 
PPTX
Android 101: Do Plano ao Play em 30 minutos
Eduardo Carrara de Araujo
 
Só um appzinho aê!? - O guia de sobrevivência para o dev da ideia inovadora a...
Eduardo Carrara de Araujo
 
Melhorando seu App com Kotlin e Testes
Eduardo Carrara de Araujo
 
Indo além com Automação de Testes de Apps Android
Eduardo Carrara de Araujo
 
2016 - Por que mobile?
Eduardo Carrara de Araujo
 
Testes: Por onde Começar?
Eduardo Carrara de Araujo
 
Android ndk: Entering the native world
Eduardo Carrara de Araujo
 
Android NDK: Entrando no Mundo Nativo
Eduardo Carrara de Araujo
 
Implementation of a Participatory Sensing Solution to Collect Data About Pave...
Eduardo Carrara de Araujo
 
GDG ABC - Aventura 2015
Eduardo Carrara de Araujo
 
Android Test Automation Workshop
Eduardo Carrara de Araujo
 
Android M - Getting Started
Eduardo Carrara de Araujo
 
Testando Sua App Android na Nuvem
Eduardo Carrara de Araujo
 
Utilizando Espresso e UIAutomator no Teste de Apps Android
Eduardo Carrara de Araujo
 
Começando com Android (#AndroidOnIntel)
Eduardo Carrara de Araujo
 
Android Auto Basics
Eduardo Carrara de Araujo
 
Debugging in Android
Eduardo Carrara de Araujo
 
Android 101: Do Plano ao Play
Eduardo Carrara de Araujo
 
Testing Your App in the Cloud
Eduardo Carrara de Araujo
 
Android 101: Do Plano ao Play em 30 minutos
Eduardo Carrara de Araujo
 

Android apps ci

  • 1. Android Apps Continuous Integration Eduardo Carrara @DuCarrara Android Developer @ TradeForce Desafios e Soluções
  • 2. “Once you stop learning you start dying” - Albert Einstein
  • 4. "Sempre que um membro do time fizer um commit, toda a aplicação deve ser construída e testada por um conjunto de testes automatizados; se a build ou testes falharem o time deve parar e resolver o problema imediatamente." Continuous Delivery: Reliable Software Releases through Build, Test, and Deployment Automation
  • 5. Benefícios Redução de riscos pré-release Aumento na velocidade e qualidade das entregas Detecção e correção prematura de bugs Feedback rápidos aos desenvolvedores time
  • 6. Antes de Começar... Tenha um sistema para controle do versionamento Automatize seu processo de build
  • 7. Práticas de CI: Desenvolvimento Faça check in regularmente (diariamente no mínimo) Sempre esteja pronto para reverter suas alterações Faça uma gestão adequada do seu ambiente de desenvolvimento Tente corrigir por um tempo determinado antes de reverter
  • 8. Práticas de CI: Testes Crie testes automatizados Espere o resultado dos testes antes de iniciar uma nova atividade Sempre rode os testes antes de integrar as alterações Não comente/desative testes que estão falhando
  • 9. Práticas de CI: Build Mantenha o processo de testes e build curtos e rápidos Nunca vá para casa com uma build quebrada Não faça check in de uma build quebrada Assuma a responsabilidade por quebras causadas por suas mudanças
  • 10. Dicas e Cuidados para Android
  • 11. Android Ambiente, API Level e Build Tools Dependências e Velocidade das Builds Lint Automatize o Release e Utilize Ferramentas de Beta
  • 12. Rode seus Testes Rode seus testes localmente e no CI check, connectedAndroidTest, testReleaseUnitTest As tasks do Gradle são suas amigas
  • 16. Situação Legado de ~4 anos com um time novo <1 ano de projeto Medo de refactoring, baixa cobertura de testes Github + TeamCity (self hosted) Falta de visibilidade e rastreabilidade
  • 17. Ações Adoção do Git Flow Uso do Crashlytics Beta Troca do TeamCity pelo Bitrise.io Melhoria na cobertura de testes
  • 18. Desafios & Futuro Melhorar a cobertura de Testes Incluir mais ferramentas de análise estática (FindBugs, CheckStyle) Criar suites de testes de integração e adicioná-los ao Bitrise.io
  • 19. Pensamentos Finais Prática simples mas a implementação pode ser complexa Disciplina e persistência são chave Android tem suas peculiaridades, fique atento!
  • 20. “… if you are afraid to change something it is clearly poorly designed.” - Martin Fowler Perguntas?
  • 22. Referências 1. Continuous Integration by Martin Fowler 2. Continuous Integration by ContinuousDelivery.com 3. CI Links by Paul Hammant 4. Large-Scale Continuous Testing in the Cloud by John Penix from Google 5. Continuous Integration: Improving Software Quality and Reducing Risk 6. Continuous Delivery: Reliable Software Releases through Build, Test, and Deployment Automation 7. Why Continuous Integration is so Important by Walmyr Filho 8. Android Apps Continuous Integration (CI) by Eduardo Carrara