SlideShare uma empresa Scribd logo
Material em: https://goo.gl/FpbhZ7
Android Apps Continuous Integration
Eduardo Carrara
@DuCarrara
Android Developer @ TradeForce
Material em: https://goo.gl/FpbhZ7
“Once you stop learning you start dying”
- Albert Einstein
Material em: https://goo.gl/FpbhZ7
Continuous Integration (CI)
Material em: https://goo.gl/FpbhZ7
"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
Material em: https://goo.gl/FpbhZ7
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
Material em: https://goo.gl/FpbhZ7
Antes de Começar...
Tenha um sistema para controle do versionamento
Automatize seu processo de build
Material em: https://goo.gl/FpbhZ7
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
Material em: https://goo.gl/FpbhZ7
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
Material em: https://goo.gl/FpbhZ7
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
Material em: https://goo.gl/FpbhZ7
Dicas e Cuidados para Android
Material em: https://goo.gl/FpbhZ7
Android
Ambiente, API Level e Build Tools
Dependências e Velocidade das Builds
Lint
Automatize o Release e Utilize Ferramentas de Beta
Material em: https://goo.gl/FpbhZ7
Rode seus Testes
Rode seus testes localmente e no CI
check, connectedAndroidTest, testReleaseUnitTest
As tasks do Gradle são suas amigas
Material em: https://goo.gl/FpbhZ7
Ferramentas
Material em: https://goo.gl/FpbhZ7
Material em: https://goo.gl/FpbhZ7
Um caso
Material em: https://goo.gl/FpbhZ7
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
Material em: https://goo.gl/FpbhZ7
Ações
Adoção do Git Flow
Uso do Crashlytics Beta
Troca do TeamCity pelo Bitrise.io
Melhoria na cobertura de testes
Material em: https://goo.gl/FpbhZ7
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
Material em: https://goo.gl/FpbhZ7
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!
Material em: https://goo.gl/FpbhZ7
“… if you are afraid to change something it is clearly poorly designed.”
- Martin Fowler
Perguntas?
Material em: https://goo.gl/FpbhZ7
Eduardo Carrara
@DuCarrara
Obrigado!
github.com/ecarrara-araujo
Material em: https://goo.gl/FpbhZ7
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

Mais conteúdo relacionado

PDF
TDC2018SP | Trilha Python - Python com qualidade - testes funcionais com Pyth...
PDF
Minas Testing Conference 2016 - Testes de Carga com Locust
PDF
Angular5, vue js ou react redux (Trilha de Javascript - TDC 2018 )
PPTX
Feedback mais rápido na sua build dividindo os testes funcionais
PPTX
A aventura de um Agile Tester em uma empresa Waterfall Portuguesa
PPTX
Python com qualidade - testes funcionais com Python e Selenium Webdriver
PDF
Android DevConference - Firebase para desenvolvedores
TDC2018SP | Trilha Python - Python com qualidade - testes funcionais com Pyth...
Minas Testing Conference 2016 - Testes de Carga com Locust
Angular5, vue js ou react redux (Trilha de Javascript - TDC 2018 )
Feedback mais rápido na sua build dividindo os testes funcionais
A aventura de um Agile Tester em uma empresa Waterfall Portuguesa
Python com qualidade - testes funcionais com Python e Selenium Webdriver
Android DevConference - Firebase para desenvolvedores

Mais procurados (20)

PDF
Minas Testing Conference 2015 - Visual Regression Testing em ambientes na nuvem
PDF
Android DevConference - Gerenciando a publicação e atualização de 450 apps se...
PDF
A importancia de testes em todos os aspectos
PPTX
Automatizando testes funcionais com a técnica BDD
PPTX
GitHub Boas Práticas
 
PDF
Construindo App's Android com Firebase
PPTX
ASP.NET Core Day Campinas
PDF
Android DevConference - Aumentando sua produtividade no Android Studio
PPTX
Cloud Computing e Integração Contínua com o Windows Azure
PPTX
TDD com Python e App Engine
PDF
Agile Brazil 2014 - Visual Regression Testing com PhantomCSS
PPTX
Aulas 6: usando o Jest para fazer mocks to Mongoose, testando a função save
PDF
Criando Desktop Apps com Electron
PPTX
Minas Testing Conference - Entrega Contínua
PDF
[Curso Java Básico] Aula 08: Instalando uma IDE (Eclipse e Netbeans) no Windo...
PDF
Integração contínua com Jenkins
PPT
Criação de uma equipe de QAs, do Waterfall ao Agile
PPTX
Tudo o que você precisa saber sobre Scrum e Visual Studio ALM – Parte 2/2
PPT
Testes de desempenho do WordPress através do uso de ferramentas de software l...
PDF
Ideais Cowabunga - Headless Testing com GhostDriver
Minas Testing Conference 2015 - Visual Regression Testing em ambientes na nuvem
Android DevConference - Gerenciando a publicação e atualização de 450 apps se...
A importancia de testes em todos os aspectos
Automatizando testes funcionais com a técnica BDD
GitHub Boas Práticas
 
Construindo App's Android com Firebase
ASP.NET Core Day Campinas
Android DevConference - Aumentando sua produtividade no Android Studio
Cloud Computing e Integração Contínua com o Windows Azure
TDD com Python e App Engine
Agile Brazil 2014 - Visual Regression Testing com PhantomCSS
Aulas 6: usando o Jest para fazer mocks to Mongoose, testando a função save
Criando Desktop Apps com Electron
Minas Testing Conference - Entrega Contínua
[Curso Java Básico] Aula 08: Instalando uma IDE (Eclipse e Netbeans) no Windo...
Integração contínua com Jenkins
Criação de uma equipe de QAs, do Waterfall ao Agile
Tudo o que você precisa saber sobre Scrum e Visual Studio ALM – Parte 2/2
Testes de desempenho do WordPress através do uso de ferramentas de software l...
Ideais Cowabunga - Headless Testing com GhostDriver
Anúncio

Semelhante a TDC2017 | São Paulo - Trilha Android How we figured out we had a SRE team at - Android Apps CI (20)

PDF
Android apps ci
PDF
Só um appzinho aê!? - O guia de sobrevivência para o dev da ideia inovadora a...
PPTX
Aprendendo Na Prática: Aplicativos Web com HTML5, Angular.js, Twitter Bootstr...
PPTX
Curso: Desenvolvimento de aplicativos híbridos (dia 1)
PDF
E so mais um campinho na tela
PPT
Automação de Testes: Ferramentas e Aplicação com Integração Contínua
PPTX
Angular 2, TypeScript e Além
PDF
Introdução ao Firebase
PDF
Automação de testes - uma introdução sobre estratégias
PDF
Metralhando sua API
PPTX
CNQS - Testes Automatizados & Continuous Delivery
PDF
WordPress + Ionic
PPT
GSoC tcptest - TCP/IP Regression Test
PDF
Vagner Luis Soletti apresenta monitoramento de performance no WordPress: Um e...
PDF
7 passos-de-preparacao-para-a-utilizacao-de-software-na-elaboracao-de-projeto...
PDF
2017 08-11 - Androidos V - Minicurso - Introdução ao android
PPTX
Mocking Test
PDF
Agile Brazil 2018
PDF
Android DevConference - Automatizando testes sem sofrimento
PDF
Metralhando sua API
Android apps ci
Só um appzinho aê!? - O guia de sobrevivência para o dev da ideia inovadora a...
Aprendendo Na Prática: Aplicativos Web com HTML5, Angular.js, Twitter Bootstr...
Curso: Desenvolvimento de aplicativos híbridos (dia 1)
E so mais um campinho na tela
Automação de Testes: Ferramentas e Aplicação com Integração Contínua
Angular 2, TypeScript e Além
Introdução ao Firebase
Automação de testes - uma introdução sobre estratégias
Metralhando sua API
CNQS - Testes Automatizados & Continuous Delivery
WordPress + Ionic
GSoC tcptest - TCP/IP Regression Test
Vagner Luis Soletti apresenta monitoramento de performance no WordPress: Um e...
7 passos-de-preparacao-para-a-utilizacao-de-software-na-elaboracao-de-projeto...
2017 08-11 - Androidos V - Minicurso - Introdução ao android
Mocking Test
Agile Brazil 2018
Android DevConference - Automatizando testes sem sofrimento
Metralhando sua API
Anúncio

Mais de tdc-globalcode (20)

PDF
TDC2019 Intel Software Day - Visao Computacional e IA a servico da humanidade
PDF
TDC2019 Intel Software Day - Tecnicas de Programacao Paralela em Machine Lear...
PDF
TDC2019 Intel Software Day - ACATE - Cases de Sucesso
PDF
TDC2019 Intel Software Day - Otimizacao grafica com o Intel GPA
PDF
TDC2019 Intel Software Day - Deteccao de objetos em tempo real com OpenVino
PDF
TDC2019 Intel Software Day - OpenCV: Inteligencia artificial e Visao Computac...
PDF
TDC2019 Intel Software Day - Inferencia de IA em edge devices
PDF
Trilha BigData - Banco de Dados Orientado a Grafos na Seguranca Publica
PPT
Trilha .Net - Programacao funcional usando f#
PDF
TDC2018SP | Trilha Go - Case Easylocus
PDF
TDC2018SP | Trilha Modern Web - Para onde caminha a Web?
PDF
TDC2018SP | Trilha Go - Clean architecture em Golang
PDF
TDC2018SP | Trilha Go - "Go" tambem e linguagem de QA
PDF
TDC2018SP | Trilha Mobile - Digital Wallets - Seguranca, inovacao e tendencia
PDF
TDC2018SP | Trilha .Net - Real Time apps com Azure SignalR Service
PDF
TDC2018SP | Trilha .Net - Passado, Presente e Futuro do .NET
PDF
TDC2018SP | Trilha .Net - Novidades do C# 7 e 8
PDF
TDC2018SP | Trilha .Net - Obtendo metricas com TDD utilizando build automatiz...
PDF
TDC2018SP | Trilha .Net - .NET funcional com F#
PDF
TDC2018SP | Trilha .Net - Crie SPAs com Razor e C# usando Blazor em .Net Core
TDC2019 Intel Software Day - Visao Computacional e IA a servico da humanidade
TDC2019 Intel Software Day - Tecnicas de Programacao Paralela em Machine Lear...
TDC2019 Intel Software Day - ACATE - Cases de Sucesso
TDC2019 Intel Software Day - Otimizacao grafica com o Intel GPA
TDC2019 Intel Software Day - Deteccao de objetos em tempo real com OpenVino
TDC2019 Intel Software Day - OpenCV: Inteligencia artificial e Visao Computac...
TDC2019 Intel Software Day - Inferencia de IA em edge devices
Trilha BigData - Banco de Dados Orientado a Grafos na Seguranca Publica
Trilha .Net - Programacao funcional usando f#
TDC2018SP | Trilha Go - Case Easylocus
TDC2018SP | Trilha Modern Web - Para onde caminha a Web?
TDC2018SP | Trilha Go - Clean architecture em Golang
TDC2018SP | Trilha Go - "Go" tambem e linguagem de QA
TDC2018SP | Trilha Mobile - Digital Wallets - Seguranca, inovacao e tendencia
TDC2018SP | Trilha .Net - Real Time apps com Azure SignalR Service
TDC2018SP | Trilha .Net - Passado, Presente e Futuro do .NET
TDC2018SP | Trilha .Net - Novidades do C# 7 e 8
TDC2018SP | Trilha .Net - Obtendo metricas com TDD utilizando build automatiz...
TDC2018SP | Trilha .Net - .NET funcional com F#
TDC2018SP | Trilha .Net - Crie SPAs com Razor e C# usando Blazor em .Net Core

Último (20)

PDF
edital-de-chamamento-publico-no-3-2025.pdf
PPTX
TREINAMENTO DE INSPETOR DE ANDAIMES.pptx
PPTX
INTRODUÇÃO AO ESTUDO DA ANATOMIA HUMANA [Salvo automaticamente].pptx
PPTX
Pedagogia em Ambientes Não Escolares.pptx
PPTX
4. A cultura do cinema e as vanguardas.pptx
PPSX
4. A Cultura da Catedral - HistóriaCArtes .ppsx
PPTX
16. MODERNISMO - PRIMEIRA GERAÇÃO - EDIÇÃO 2021 (1).pptx
PDF
O retorno a origem (islã Islamismo)
PPTX
norma regulamentadora numero vinte nr 20
DOC
PPP 2024 (2) (2) feito EM REELABORAÇÃO MORENA ( ABRIL 2024).doc
PPTX
Biologia celular: citologia, é o estudo da célula, a unidade básica da vida.
PDF
50 anos Hoje - Volume V - 1973 - Manaus Amazonas
PDF
Uma Introdução às Ciências do Alcorão (Islam)
PDF
Um dia na casa do Mensageiro (que a paz e benção de Deus estejam com ele)
PPTX
cijma-2501231hejjeiei45156-38f87891.pptx
PDF
Combate a Incêndio - Estratégias e Táticas de Combate a Incêndio por Francis...
PDF
Ebook - Matemática_Ensino_Médio_Saeb_V1.pdf
PPTX
NR11 - Treinamento Direcao Defensiva - 2023.pptx
PDF
COMO OS CONTOS DE FADAS REFLETEM ARQUÉTIPOS_MEDOS E DESEJOS DO INCONSCIENTE H...
PPTX
1. A Cultura do Palco - muitos palcos, um espetáculo.pptx
edital-de-chamamento-publico-no-3-2025.pdf
TREINAMENTO DE INSPETOR DE ANDAIMES.pptx
INTRODUÇÃO AO ESTUDO DA ANATOMIA HUMANA [Salvo automaticamente].pptx
Pedagogia em Ambientes Não Escolares.pptx
4. A cultura do cinema e as vanguardas.pptx
4. A Cultura da Catedral - HistóriaCArtes .ppsx
16. MODERNISMO - PRIMEIRA GERAÇÃO - EDIÇÃO 2021 (1).pptx
O retorno a origem (islã Islamismo)
norma regulamentadora numero vinte nr 20
PPP 2024 (2) (2) feito EM REELABORAÇÃO MORENA ( ABRIL 2024).doc
Biologia celular: citologia, é o estudo da célula, a unidade básica da vida.
50 anos Hoje - Volume V - 1973 - Manaus Amazonas
Uma Introdução às Ciências do Alcorão (Islam)
Um dia na casa do Mensageiro (que a paz e benção de Deus estejam com ele)
cijma-2501231hejjeiei45156-38f87891.pptx
Combate a Incêndio - Estratégias e Táticas de Combate a Incêndio por Francis...
Ebook - Matemática_Ensino_Médio_Saeb_V1.pdf
NR11 - Treinamento Direcao Defensiva - 2023.pptx
COMO OS CONTOS DE FADAS REFLETEM ARQUÉTIPOS_MEDOS E DESEJOS DO INCONSCIENTE H...
1. A Cultura do Palco - muitos palcos, um espetáculo.pptx

TDC2017 | São Paulo - Trilha Android How we figured out we had a SRE team at - Android Apps CI