SlideShare uma empresa Scribd logo
1
Desenvolvendo software com
qualidade e agilidade
Diogo Augusto Pereira
Tópicos
2
• DevOps
• Continuous Integration
• Continuous Delivery
• Peer review
• Git-flow
• SonarQube
• Métricas e indicadores
A realidade…
3
Alguns desafios existentes...
• Setup de ambientes de desenvolvimento e
testes.
• Realização de deploys ao longo do projeto.
• Execução de testes de regressão.
• Qualidade e padronização de código.
• Entregas rápidas e assertivas.
4
Alguns a pontos a considerar...
• Não existe uma solução para todos os
problemas.
• É preciso avaliar as prioridades de cada projeto.
• Experiência da equipe.
• Urgência dos problemas.
• Deve ser um processo de melhoria contínua.
• Processos internos, tecnologias adotadas pela
empresa, etc.
5
DevOps
6
DevOps
• Abrange desenvolvimento de software,
operações e serviços de TI.
• Explora a comunicação, colaboração e
integração entre as equipes de TI.
• Proporciona entrega de software, teste de
qualidade, desenvolvimento, manutenção de
release.
• Garante um gerenciamento de releases mais
eficaz, com automação de processos e maior
flexibilidade.
7
DevOps e métodos ágeis
8
DevOps
• Automação de builds:
• Jenkins, Maven, Bamboo, TFS, RTC
• Gerenciamento de configuração:
• Puppet, Chef
• Migração de schemas de banco de dados:
• Flyway
• Provisionamento de ambientes:
• Vagrant, Docker
9
CI (Continuous Integration)
• Execução contínua de builds e testes unitários.
• Integração constante da versão de
desenvolvimento de um produto.
• Pode ocorrer em momentos programados ou a
cada commit.
• Garante a estabilidade e saúde do projeto.
10
CI (Continuous Integration)
• Controle de versão de código.
• Servidor de build.
• Framework de testes unitários.
11
CD (Continuous Delivery)
• Entrega contínua e automatizada de versões
do software.
• Garante velocidade e consistência dos
processos.
• Permite releases a cada commit, feature, etc.
• A automação de testes é fundamental: código,
funcionais, performance, etc.
12
CD (Continuous Delivery)
• Controle de versão com processo de branches.
• Servidor de builds e deploys.
• Framework de testes unitários.
13
CD (Continuous Delivery)
• Gerenciamento de configuração.
• Provisionamento de ambiente.
• Migração de schemas.
• Framework de testes funcionais.
14
CI & CD
15
Peer review
• Processo de revisão em pares.
• Revisões rigorosas podem reduzir até 90% de
bugs.
• O custo das revisões é menor que o custo dos
testes que seriam necessários para encontrar
os mesmos erros.
16
Peer review
Taxa de detecção de defeitos por tipo de
inspeção:
• 25% em testes unitários
• 35% em testes funcionais
• 45% em testes de integração
• 55% a 60% em revisões técnicas (código,
padrões, arquitetura, etc.)
Fonte: Code Complete, A Practical Handbook of Software
Construction - Steve McConnell
17
Peer review
• Revisões de código não são úteis apenas para
encontrar defeitos.
• É um modo de divulgar informações sobre boas
práticas de programação, refactorings, etc.
• É uma ferramenta de ensino também!
• É possível aprender e ensinar fazendo peer
reviews.
18
Pull Requests / Peer review
• Code review ou submissão de código para
revisão.
• Código somente é integrado após revisão.
• Ferramentas que podem ser usadas:
19
Git-flow
• Estratégia de branches e gerenciamento de
releases.
• Possui biblioteca de sub-comandos git.
• Ferramenta SourceTree compatível com o
processo.
• Referência: http://nvie.com/files/Git-
branching-model.pdf
20
Git-flow Branches
• Master: versão de produção.
• Develop: branch de integração.
• Feature: branches de desenvolvimento.
• Release: branches de estabilização de releases.
• Hotfix: branches de correções de erros em
produção.
21
Git-flow Workflow
22
SonarQube
• Plataforma open source para inspeção de
qualidade de código.
• Suporta 20+ linguagens (algumas pagas).
• Históricos e relatórios de métricas:
23
SonarQube
24
SonarQube
25
SonarQube
26
SonarQube
27
Métricas e indicadores
28
Indicador Meta
% cobertura de testes
unitários
> 75%
% conformidade regras
(Sonar)
> 95%
% código duplicado < 5%
Dúvidas
29
Diogo Augusto Pereira
E-mails:
dapereira@stefanini.com
diogoap82@gmail.com
http://br.linkedin.com/in/diogoap82

Mais conteúdo relacionado

PDF
Integrando testes de segurança ao processo de desenvolvimento de software
PPTX
Test Driven Development
PDF
Do regresso ao progresso: automação de testes em aplicativos mobile
PDF
4 engenharia de software
PDF
Implantação de um Processo de Teste de Software - Randerson Melville
PDF
Panorama geral sobre testes e qualidade de software
PPTX
Scrum - conceitos iniciais
PPTX
Teste de software
Integrando testes de segurança ao processo de desenvolvimento de software
Test Driven Development
Do regresso ao progresso: automação de testes em aplicativos mobile
4 engenharia de software
Implantação de um Processo de Teste de Software - Randerson Melville
Panorama geral sobre testes e qualidade de software
Scrum - conceitos iniciais
Teste de software

Mais procurados (20)

PPSX
Qualidade e Teste de Software - O que preciso saber
PPSX
DevQA - Da zona de conforto ao comprometimento com a Qualidade
PDF
Teste de software
PPTX
Tech talk clean architecture and_pyramid_test
PPTX
InterCon 2017 - Indo além dos testes de classes com BDD (Behavior-Driven Deve...
PPT
Teste de Aceitação: problemas, desafios e abordagens
PDF
Automação de Testes - How to do It Right
PDF
Análise Estática de Código
PPTX
CNQS - Testes Automatizados & Continuous Delivery
PPT
Final Project (2013): Test-Driven Development applied on web applications
PDF
[Portfólio Acadêmico] [FIT] Mapas de navegação, lista de tarefas e fluxograma...
PPTX
Importância de Testes Automatizados para Continuous Delivery & DevOps
PDF
Processo de Teste de Software
PDF
Pipelines para CI/CD com kubernetes - Entregue valor ao cliente
PPTX
[DevOps Carioca] Testes Automatizados
PDF
Introdução ao Teste de Software - Uma abordagem prática
PPTX
Papéis em Teste e Qualidade de Software
PPTX
Palestra Teste de Software: princípios, ferramentas e carreira
PDF
SEMINFO 2014 - Teste de software, uma área, uma carreira, um novo perfil.
Qualidade e Teste de Software - O que preciso saber
DevQA - Da zona de conforto ao comprometimento com a Qualidade
Teste de software
Tech talk clean architecture and_pyramid_test
InterCon 2017 - Indo além dos testes de classes com BDD (Behavior-Driven Deve...
Teste de Aceitação: problemas, desafios e abordagens
Automação de Testes - How to do It Right
Análise Estática de Código
CNQS - Testes Automatizados & Continuous Delivery
Final Project (2013): Test-Driven Development applied on web applications
[Portfólio Acadêmico] [FIT] Mapas de navegação, lista de tarefas e fluxograma...
Importância de Testes Automatizados para Continuous Delivery & DevOps
Processo de Teste de Software
Pipelines para CI/CD com kubernetes - Entregue valor ao cliente
[DevOps Carioca] Testes Automatizados
Introdução ao Teste de Software - Uma abordagem prática
Papéis em Teste e Qualidade de Software
Palestra Teste de Software: princípios, ferramentas e carreira
SEMINFO 2014 - Teste de software, uma área, uma carreira, um novo perfil.
Anúncio

Destaque (11)

PDF
Introdução, instalação e configuração do SonarQube
PPTX
Revisão por pares: Como funciona (?) e nossas pesquisas no tema
PPTX
Cleaner-Code-CentralIT-2015
PDF
Agility, Business Value and the 11 Axis Of Software Quality
PPT
Métricas de software utilizando sonar qube
PPTX
Sonarqube
 
PPTX
DevOps Summit Brasil: +10 Ferramentas para Melhorar a Qualidade do seu Software
PDF
Java Source Code Analysis using SonarQube
PDF
Verificação, Validação e Teste de Software
PPT
Testes De Software - Uma Visão Geral
Introdução, instalação e configuração do SonarQube
Revisão por pares: Como funciona (?) e nossas pesquisas no tema
Cleaner-Code-CentralIT-2015
Agility, Business Value and the 11 Axis Of Software Quality
Métricas de software utilizando sonar qube
Sonarqube
 
DevOps Summit Brasil: +10 Ferramentas para Melhorar a Qualidade do seu Software
Java Source Code Analysis using SonarQube
Verificação, Validação e Teste de Software
Testes De Software - Uma Visão Geral
Anúncio

Semelhante a Desenvolvendo software com qualidade e agilidade (20)

PPTX
Gerenciamento da Qualidade de Software 4.pptx
PPTX
Conhecendo os testes introdução onde mee
PPTX
Quality Gates: Garantindo a Qualidade no Ciclo de Desenvolvimento de Software
PPTX
QA-2023-qualityassuranceequipe-teste_v3.pptx
PDF
Introdução a Engenharia de Software - Prof.ª Cristiane Fidelix
PDF
Engenharia de Software: A ponte para um código sustentável
PDF
Estratégias e Técnicas de Testes - Parte1
PPTX
Continuous Deployment
PPS
Teste de Software
PDF
Aula - Teste de Software
PDF
Aula 2 - Processos de Software
PDF
SAPO Session: Continuous Integration
PDF
Aula Modelos de Processos Tradicionais para Desenvolvimento de Software
PPT
Qualidade do Software
PDF
Modelos de Processo de Software Parte 1
PDF
Qualidade de Software
PPTX
SonarQube
 
PPT
Teste de software
PDF
Aula - Modelos de Processos de Desenvolvimento de Software / Mobile App
Gerenciamento da Qualidade de Software 4.pptx
Conhecendo os testes introdução onde mee
Quality Gates: Garantindo a Qualidade no Ciclo de Desenvolvimento de Software
QA-2023-qualityassuranceequipe-teste_v3.pptx
Introdução a Engenharia de Software - Prof.ª Cristiane Fidelix
Engenharia de Software: A ponte para um código sustentável
Estratégias e Técnicas de Testes - Parte1
Continuous Deployment
Teste de Software
Aula - Teste de Software
Aula 2 - Processos de Software
SAPO Session: Continuous Integration
Aula Modelos de Processos Tradicionais para Desenvolvimento de Software
Qualidade do Software
Modelos de Processo de Software Parte 1
Qualidade de Software
SonarQube
 
Teste de software
Aula - Modelos de Processos de Desenvolvimento de Software / Mobile App

Desenvolvendo software com qualidade e agilidade

  • 1. 1 Desenvolvendo software com qualidade e agilidade Diogo Augusto Pereira
  • 2. Tópicos 2 • DevOps • Continuous Integration • Continuous Delivery • Peer review • Git-flow • SonarQube • Métricas e indicadores
  • 4. Alguns desafios existentes... • Setup de ambientes de desenvolvimento e testes. • Realização de deploys ao longo do projeto. • Execução de testes de regressão. • Qualidade e padronização de código. • Entregas rápidas e assertivas. 4
  • 5. Alguns a pontos a considerar... • Não existe uma solução para todos os problemas. • É preciso avaliar as prioridades de cada projeto. • Experiência da equipe. • Urgência dos problemas. • Deve ser um processo de melhoria contínua. • Processos internos, tecnologias adotadas pela empresa, etc. 5
  • 7. DevOps • Abrange desenvolvimento de software, operações e serviços de TI. • Explora a comunicação, colaboração e integração entre as equipes de TI. • Proporciona entrega de software, teste de qualidade, desenvolvimento, manutenção de release. • Garante um gerenciamento de releases mais eficaz, com automação de processos e maior flexibilidade. 7
  • 8. DevOps e métodos ágeis 8
  • 9. DevOps • Automação de builds: • Jenkins, Maven, Bamboo, TFS, RTC • Gerenciamento de configuração: • Puppet, Chef • Migração de schemas de banco de dados: • Flyway • Provisionamento de ambientes: • Vagrant, Docker 9
  • 10. CI (Continuous Integration) • Execução contínua de builds e testes unitários. • Integração constante da versão de desenvolvimento de um produto. • Pode ocorrer em momentos programados ou a cada commit. • Garante a estabilidade e saúde do projeto. 10
  • 11. CI (Continuous Integration) • Controle de versão de código. • Servidor de build. • Framework de testes unitários. 11
  • 12. CD (Continuous Delivery) • Entrega contínua e automatizada de versões do software. • Garante velocidade e consistência dos processos. • Permite releases a cada commit, feature, etc. • A automação de testes é fundamental: código, funcionais, performance, etc. 12
  • 13. CD (Continuous Delivery) • Controle de versão com processo de branches. • Servidor de builds e deploys. • Framework de testes unitários. 13
  • 14. CD (Continuous Delivery) • Gerenciamento de configuração. • Provisionamento de ambiente. • Migração de schemas. • Framework de testes funcionais. 14
  • 16. Peer review • Processo de revisão em pares. • Revisões rigorosas podem reduzir até 90% de bugs. • O custo das revisões é menor que o custo dos testes que seriam necessários para encontrar os mesmos erros. 16
  • 17. Peer review Taxa de detecção de defeitos por tipo de inspeção: • 25% em testes unitários • 35% em testes funcionais • 45% em testes de integração • 55% a 60% em revisões técnicas (código, padrões, arquitetura, etc.) Fonte: Code Complete, A Practical Handbook of Software Construction - Steve McConnell 17
  • 18. Peer review • Revisões de código não são úteis apenas para encontrar defeitos. • É um modo de divulgar informações sobre boas práticas de programação, refactorings, etc. • É uma ferramenta de ensino também! • É possível aprender e ensinar fazendo peer reviews. 18
  • 19. Pull Requests / Peer review • Code review ou submissão de código para revisão. • Código somente é integrado após revisão. • Ferramentas que podem ser usadas: 19
  • 20. Git-flow • Estratégia de branches e gerenciamento de releases. • Possui biblioteca de sub-comandos git. • Ferramenta SourceTree compatível com o processo. • Referência: http://nvie.com/files/Git- branching-model.pdf 20
  • 21. Git-flow Branches • Master: versão de produção. • Develop: branch de integração. • Feature: branches de desenvolvimento. • Release: branches de estabilização de releases. • Hotfix: branches de correções de erros em produção. 21
  • 23. SonarQube • Plataforma open source para inspeção de qualidade de código. • Suporta 20+ linguagens (algumas pagas). • Históricos e relatórios de métricas: 23
  • 28. Métricas e indicadores 28 Indicador Meta % cobertura de testes unitários > 75% % conformidade regras (Sonar) > 95% % código duplicado < 5%