Inspeção de código para a entrega contínua de software de ...€¦ · alterações de código...
Transcript of Inspeção de código para a entrega contínua de software de ...€¦ · alterações de código...
![Page 1: Inspeção de código para a entrega contínua de software de ...€¦ · alterações de código em um repositório central, depois disso, compilações e inspeções e testes são](https://reader033.fdocumentos.com/reader033/viewer/2022060411/5f1086ce7e708231d4498bbf/html5/thumbnails/1.jpg)
1© FATTO Consultoria e Sistemas – www.fattocs.com
Apresentador: Augusto Mariano Pinheiro
21 de outubro de 2019
Inspeção de código para a entrega contínua de software de qualidade
![Page 2: Inspeção de código para a entrega contínua de software de ...€¦ · alterações de código em um repositório central, depois disso, compilações e inspeções e testes são](https://reader033.fdocumentos.com/reader033/viewer/2022060411/5f1086ce7e708231d4498bbf/html5/thumbnails/2.jpg)
ORIENTAÇÕES INICIAIS
2© FATTO Consultoria e Sistemas - www.fattocs.com
Dê preferência ao uso de uma conexão de banda larga
O evento fará uso de vídeo (webcam), avise se houver problemas que alternamos
para apenas os slides e áudio
Se for necessário, ajuste o idioma da sala na barra de ferramentas superior
O evento terá cerca de 45 minutos de apresentação e 15 minutos de Q&A
Você pode mandar desde já suas perguntas pelo chat.
Use o chat só para o assunto do webinar
Para quem possui certificação do PMI, como a PMP, o evento vale 1 PDU
Esta sessão será publicada em nosso canal do Youtube: youtube.com/user/fattocs
Certificado de participação será disponibilizado para os assistentes, via e-mail
![Page 3: Inspeção de código para a entrega contínua de software de ...€¦ · alterações de código em um repositório central, depois disso, compilações e inspeções e testes são](https://reader033.fdocumentos.com/reader033/viewer/2022060411/5f1086ce7e708231d4498bbf/html5/thumbnails/3.jpg)
apoiar nossos clientes no planejamento e avaliação de
desempenho de processos de TI para alavancar o sucesso de seu negócio
3© FATTO Consultoria e Sistemas – www.fattocs.com
![Page 4: Inspeção de código para a entrega contínua de software de ...€¦ · alterações de código em um repositório central, depois disso, compilações e inspeções e testes são](https://reader033.fdocumentos.com/reader033/viewer/2022060411/5f1086ce7e708231d4498bbf/html5/thumbnails/4.jpg)
Agenda
❑ Necessidades do desenvolvimento moderno de software
▪ Ágil, DevOps e suas práticas
❑ Integração Contínua
❑ Ferramentas para Inspeção Contínua
❑ SonarQube
❑ Metas de qualidade de código e indicadores
❑ Conclusões
4© FATTO Consultoria e Sistemas – www.fattocs.com
![Page 5: Inspeção de código para a entrega contínua de software de ...€¦ · alterações de código em um repositório central, depois disso, compilações e inspeções e testes são](https://reader033.fdocumentos.com/reader033/viewer/2022060411/5f1086ce7e708231d4498bbf/html5/thumbnails/5.jpg)
#1 Nossa maior prioridade é satisfazer o cliente, através da entrega adiantada e contínua de software de valor.
#2 Aceitar mudanças de requisitos, mesmo no fim do desenvolvimento. Processos ágeis se adequam a mudanças, para que o cliente possa tirar vantagens competitivas.
#3 Entregar software funcionando com frequência, na escala de semanas até meses, com preferência aos períodos mais curtos.
Princípios do Manifesto Ágil
5
![Page 6: Inspeção de código para a entrega contínua de software de ...€¦ · alterações de código em um repositório central, depois disso, compilações e inspeções e testes são](https://reader033.fdocumentos.com/reader033/viewer/2022060411/5f1086ce7e708231d4498bbf/html5/thumbnails/6.jpg)
Necessidades do desenvolvimento
6© FATTO Consultoria e Sistemas – www.fattocs.com
❑ #9: Contínua atenção à excelência técnica e bom design, aumenta a agilidade.
❑ Inovar??
❑ #1: Satisfazer o cliente!
▪ Software em funcionamento mais que documentação abrangente
❑ #2: Aceitar mudanças de requisitos
▪ Responder a mudanças mais que seguir um plano
![Page 7: Inspeção de código para a entrega contínua de software de ...€¦ · alterações de código em um repositório central, depois disso, compilações e inspeções e testes são](https://reader033.fdocumentos.com/reader033/viewer/2022060411/5f1086ce7e708231d4498bbf/html5/thumbnails/7.jpg)
Necessidades do controle de operações
7© FATTO Consultoria e Sistemas – www.fattocs.com
❑ Manter o ambiente de produção funcionando e estável
❑ Manter o ambiente de produção organizado
![Page 8: Inspeção de código para a entrega contínua de software de ...€¦ · alterações de código em um repositório central, depois disso, compilações e inspeções e testes são](https://reader033.fdocumentos.com/reader033/viewer/2022060411/5f1086ce7e708231d4498bbf/html5/thumbnails/8.jpg)
Necessidades de todos!
8© FATTO Consultoria e Sistemas – www.fattocs.com
❑ #1: Atender aos requisitos do negócio!
❑ #2: Permitir ao cliente tirar vantagens competitivas através da entrega contínua de software de valor
❑ #3: Tudo isso, sem comprometer a estabilidade do ambiente de produção
![Page 9: Inspeção de código para a entrega contínua de software de ...€¦ · alterações de código em um repositório central, depois disso, compilações e inspeções e testes são](https://reader033.fdocumentos.com/reader033/viewer/2022060411/5f1086ce7e708231d4498bbf/html5/thumbnails/9.jpg)
❑ Devops é um termo criado para descrever um conjunto de práticas para integração entre as equipes de desenvolvimento de softwares, operações(infraestrutura) e de apoio envolvidas (como controle de qualidade) e a adoção de processos automatizados para produção rápida e segura de aplicações e serviços.
DevOps como resposta à estas necessidades
9© FATTO Consultoria e Sistemas – www.fattocs.com
Foco da apresentação de hoje!
![Page 10: Inspeção de código para a entrega contínua de software de ...€¦ · alterações de código em um repositório central, depois disso, compilações e inspeções e testes são](https://reader033.fdocumentos.com/reader033/viewer/2022060411/5f1086ce7e708231d4498bbf/html5/thumbnails/10.jpg)
❑ Integração Contínua
❑ Entrega Contínua
❑ Microsserviços
❑ Infraestrutura como código
❑ Monitoramento e registro em log
❑ Comunicação e colaboração
Práticas do DevOps
10© FATTO Consultoria e Sistemas – www.fattocs.com
![Page 11: Inspeção de código para a entrega contínua de software de ...€¦ · alterações de código em um repositório central, depois disso, compilações e inspeções e testes são](https://reader033.fdocumentos.com/reader033/viewer/2022060411/5f1086ce7e708231d4498bbf/html5/thumbnails/11.jpg)
❑ O que é▪ é uma prática em que os desenvolvedores, com frequência, juntam suas
alterações de código em um repositório central, depois disso, compilações e inspeções e testes são executados.
❑ Objetivos1) Investigar e encontrar bugs mais rapidamente2) Melhorar a qualidade do software3) Reduzir o tempo que leva para validar e lançar novas atualizações de
software
❑ Requer, ao mesmo tempo▪ Um (ou mais) componente(s) de automação▪ Um componente cultural
CI – Continuous Integration
11© FATTO Consultoria e Sistemas – www.fattocs.com
![Page 12: Inspeção de código para a entrega contínua de software de ...€¦ · alterações de código em um repositório central, depois disso, compilações e inspeções e testes são](https://reader033.fdocumentos.com/reader033/viewer/2022060411/5f1086ce7e708231d4498bbf/html5/thumbnails/12.jpg)
Ferramentas para Inspeção
12© FATTO Consultoria e Sistemas – www.fattocs.com
![Page 13: Inspeção de código para a entrega contínua de software de ...€¦ · alterações de código em um repositório central, depois disso, compilações e inspeções e testes são](https://reader033.fdocumentos.com/reader033/viewer/2022060411/5f1086ce7e708231d4498bbf/html5/thumbnails/13.jpg)
Inspeção contínua com o SonarQube
13© FATTO Consultoria e Sistemas – www.fattocs.com
❑ O que é:
▪ Ferramenta de revisão/inspeção automática de código-fonte criada para detectar bugs, vulnerabilidades e más práticas de programação.
▪ Permite a definição dos parâmetros de inspeção, análise dos resultados, consultas e ações de correção e tratamento
❑ Provê informações para todos os envolvidos através de seus dashboards:
▪ Equipe de desenvolvimento
▪ Coordenador do projeto
▪ Área de qualidade
▪ Arquiteto
![Page 14: Inspeção de código para a entrega contínua de software de ...€¦ · alterações de código em um repositório central, depois disso, compilações e inspeções e testes são](https://reader033.fdocumentos.com/reader033/viewer/2022060411/5f1086ce7e708231d4498bbf/html5/thumbnails/14.jpg)
SonarQube
14© FATTO Consultoria e Sistemas – www.fattocs.com
❑ Características que são avaliadas durante as inspeções:
▪ Confiabilidade• Violações (classifica por severidade)
▪ Segurança• Vulnerabilidades
▪ Manutenibilidade• Problemas em potencial
▪ Cobertura• Testes unitários
▪ Duplicação• De linhas, blocos ou arquivos
▪ Tamanho• Linhas de código comentadas (lixo) ou
não alcançadas
• Densidade de comentários (anotações)
▪ Complexidade• Ciclomática e Cognitiva
❑ Cálculo do Débito Técnico
▪ Estimativa de esforço (HH) para corrigir os problemas encontrados
![Page 15: Inspeção de código para a entrega contínua de software de ...€¦ · alterações de código em um repositório central, depois disso, compilações e inspeções e testes são](https://reader033.fdocumentos.com/reader033/viewer/2022060411/5f1086ce7e708231d4498bbf/html5/thumbnails/15.jpg)
SonarQube – Relação de todos os projetos
15© FATTO Consultoria e Sistemas – www.fattocs.com
![Page 16: Inspeção de código para a entrega contínua de software de ...€¦ · alterações de código em um repositório central, depois disso, compilações e inspeções e testes são](https://reader033.fdocumentos.com/reader033/viewer/2022060411/5f1086ce7e708231d4498bbf/html5/thumbnails/16.jpg)
SonarQube – Visão geral projeto “AppWeb01” (1/2)
16© FATTO Consultoria e Sistemas – www.fattocs.com
![Page 17: Inspeção de código para a entrega contínua de software de ...€¦ · alterações de código em um repositório central, depois disso, compilações e inspeções e testes são](https://reader033.fdocumentos.com/reader033/viewer/2022060411/5f1086ce7e708231d4498bbf/html5/thumbnails/17.jpg)
SonarQube – Visão geral projeto “AppWeb01” (2/2)
17© FATTO Consultoria e Sistemas – www.fattocs.com
![Page 18: Inspeção de código para a entrega contínua de software de ...€¦ · alterações de código em um repositório central, depois disso, compilações e inspeções e testes são](https://reader033.fdocumentos.com/reader033/viewer/2022060411/5f1086ce7e708231d4498bbf/html5/thumbnails/18.jpg)
SonarQube – Violações (1)
18© FATTO Consultoria e Sistemas – www.fattocs.com
![Page 19: Inspeção de código para a entrega contínua de software de ...€¦ · alterações de código em um repositório central, depois disso, compilações e inspeções e testes são](https://reader033.fdocumentos.com/reader033/viewer/2022060411/5f1086ce7e708231d4498bbf/html5/thumbnails/19.jpg)
SonarQube – Violações (2)
19© FATTO Consultoria e Sistemas – www.fattocs.com
![Page 20: Inspeção de código para a entrega contínua de software de ...€¦ · alterações de código em um repositório central, depois disso, compilações e inspeções e testes são](https://reader033.fdocumentos.com/reader033/viewer/2022060411/5f1086ce7e708231d4498bbf/html5/thumbnails/20.jpg)
SonarQube - Segurança
20© FATTO Consultoria e Sistemas – www.fattocs.com
![Page 21: Inspeção de código para a entrega contínua de software de ...€¦ · alterações de código em um repositório central, depois disso, compilações e inspeções e testes são](https://reader033.fdocumentos.com/reader033/viewer/2022060411/5f1086ce7e708231d4498bbf/html5/thumbnails/21.jpg)
SonarQube – Manutenibilidade (1)
21© FATTO Consultoria e Sistemas – www.fattocs.com
![Page 22: Inspeção de código para a entrega contínua de software de ...€¦ · alterações de código em um repositório central, depois disso, compilações e inspeções e testes são](https://reader033.fdocumentos.com/reader033/viewer/2022060411/5f1086ce7e708231d4498bbf/html5/thumbnails/22.jpg)
SonarQube – Manutenibilidade (2)
22© FATTO Consultoria e Sistemas – www.fattocs.com
![Page 23: Inspeção de código para a entrega contínua de software de ...€¦ · alterações de código em um repositório central, depois disso, compilações e inspeções e testes são](https://reader033.fdocumentos.com/reader033/viewer/2022060411/5f1086ce7e708231d4498bbf/html5/thumbnails/23.jpg)
SonarQube – Manutenibilidade (3)
23© FATTO Consultoria e Sistemas – www.fattocs.com
![Page 24: Inspeção de código para a entrega contínua de software de ...€¦ · alterações de código em um repositório central, depois disso, compilações e inspeções e testes são](https://reader033.fdocumentos.com/reader033/viewer/2022060411/5f1086ce7e708231d4498bbf/html5/thumbnails/24.jpg)
SonarQube – Duplicações (1)
24© FATTO Consultoria e Sistemas – www.fattocs.com
![Page 25: Inspeção de código para a entrega contínua de software de ...€¦ · alterações de código em um repositório central, depois disso, compilações e inspeções e testes são](https://reader033.fdocumentos.com/reader033/viewer/2022060411/5f1086ce7e708231d4498bbf/html5/thumbnails/25.jpg)
SonarQube – Duplicações (2)
25© FATTO Consultoria e Sistemas – www.fattocs.com
![Page 26: Inspeção de código para a entrega contínua de software de ...€¦ · alterações de código em um repositório central, depois disso, compilações e inspeções e testes são](https://reader033.fdocumentos.com/reader033/viewer/2022060411/5f1086ce7e708231d4498bbf/html5/thumbnails/26.jpg)
SonarQube – Duplicações (3)
26© FATTO Consultoria e Sistemas – www.fattocs.com
![Page 27: Inspeção de código para a entrega contínua de software de ...€¦ · alterações de código em um repositório central, depois disso, compilações e inspeções e testes são](https://reader033.fdocumentos.com/reader033/viewer/2022060411/5f1086ce7e708231d4498bbf/html5/thumbnails/27.jpg)
SonarQube – Cobertura de Código
27© FATTO Consultoria e Sistemas – www.fattocs.com
❑ Cobertura de código
▪ testes unitários
![Page 28: Inspeção de código para a entrega contínua de software de ...€¦ · alterações de código em um repositório central, depois disso, compilações e inspeções e testes são](https://reader033.fdocumentos.com/reader033/viewer/2022060411/5f1086ce7e708231d4498bbf/html5/thumbnails/28.jpg)
SonarQube – Documentação e Comentários
28© FATTO Consultoria e Sistemas – www.fattocs.com
![Page 29: Inspeção de código para a entrega contínua de software de ...€¦ · alterações de código em um repositório central, depois disso, compilações e inspeções e testes são](https://reader033.fdocumentos.com/reader033/viewer/2022060411/5f1086ce7e708231d4498bbf/html5/thumbnails/29.jpg)
SonarQube – Complexidade Ciclomática e Cognitiva
29© FATTO Consultoria e Sistemas – www.fattocs.com
![Page 30: Inspeção de código para a entrega contínua de software de ...€¦ · alterações de código em um repositório central, depois disso, compilações e inspeções e testes são](https://reader033.fdocumentos.com/reader033/viewer/2022060411/5f1086ce7e708231d4498bbf/html5/thumbnails/30.jpg)
Metas de Qualidade de Código como parte de um Acordo de Níveis de Serviço
30© FATTO Consultoria e Sistemas – www.fattocs.com
Métrica Meta Severidade
Cobertura de código na camada de negócio >= 50% Média
% de testes automatizados executados com sucesso = 100% Média
Densidade de comentários na camada de negócio >= 30% Baixa
Complexidade por método <= 10% Média
Densidade de duplicação <= 5% Baixa
Blocos duplicados na mesma classe = 0 Média
Linhas de código-fonte comentadas = 0 Média
Violações bloqueadoras = 0 Alta
Violações críticas = 0 Alta
Violações maiores <= 5% Média
Violações menores <= 5% Baixa
Débito técnico <= 10% Não se aplica
![Page 31: Inspeção de código para a entrega contínua de software de ...€¦ · alterações de código em um repositório central, depois disso, compilações e inspeções e testes são](https://reader033.fdocumentos.com/reader033/viewer/2022060411/5f1086ce7e708231d4498bbf/html5/thumbnails/31.jpg)
Metas de Qualidade de Código como parte de um Acordo de Níveis de Serviço
31© FATTO Consultoria e Sistemas – www.fattocs.com
Grupo Métrica Unidade Meta
Projeto
Complexidade / Arquivo Média total <= 10
Complexidade / Classe Média total <= 10
Complexidade / Função Média total <=3
Duplicações % <=4%
Vulnerabilidades (confirmadas ou em potencial) Unidades =0
Taxa de débito técnico % <= 2,5%
SQALE RATING (Maintainability Rating) Nota A
Violações de código (possíveis bugs, estilo de codificação, más práticas de codificação):
Violações Críticas Unidades =0
Violações Bloqueadoras Unidades =0
Indicadores relacionados a testes
Cobertura de Testes Unitários (na camada de negócio) % >=70%
Testes Unitários executados com sucesso % >=100%
Testes Unitários não executados Unidades =0
![Page 32: Inspeção de código para a entrega contínua de software de ...€¦ · alterações de código em um repositório central, depois disso, compilações e inspeções e testes são](https://reader033.fdocumentos.com/reader033/viewer/2022060411/5f1086ce7e708231d4498bbf/html5/thumbnails/32.jpg)
❑ Vantagens
▪ Muitos defeitos diferentes podem ser descobertos em uma única inspeção
▪ Versões incompletas do sistema podem ser inspecionadas
❑ Não é adequada
▪ Para verificar alguns requisitos não funcionais, como desempenho, por exemplo
▪ Para demonstrar que o software é útil
Considerações finais: Inspeções
32© FATTO Consultoria e Sistemas – www.fattocs.com
![Page 33: Inspeção de código para a entrega contínua de software de ...€¦ · alterações de código em um repositório central, depois disso, compilações e inspeções e testes são](https://reader033.fdocumentos.com/reader033/viewer/2022060411/5f1086ce7e708231d4498bbf/html5/thumbnails/33.jpg)
❑ Vantagens
▪ Permite encontrar inconsistências entre um programa e sua especificação, isto é, revelar defeitos
▪ Permite demonstrar se o software é (e faz) o que o cliente deseja
❑ Limitações
▪ Segundo Dijkstra, “Testes podem somente revelar a presença de defeitos, não a ausência”
▪ Alto custo da realização dos testes funcionais
▪ Só podem ser realizados após a conclusão do desenvolvimento do componente de software
Considerações finais: Testes
33© FATTO Consultoria e Sistemas – www.fattocs.com
![Page 34: Inspeção de código para a entrega contínua de software de ...€¦ · alterações de código em um repositório central, depois disso, compilações e inspeções e testes são](https://reader033.fdocumentos.com/reader033/viewer/2022060411/5f1086ce7e708231d4498bbf/html5/thumbnails/34.jpg)
Conclusão
34© FATTO Consultoria e Sistemas – www.fattocs.com
❑ Inspeções e testes não são abordagens concorrentes, mas sim, complementares!
▪ cada uma tem vantagens e desvantagens sobre a outra
▪ devem ser usadas em conjunto no processo de Verificação e Validação
❑ Lembrete: Qualidade não é um atributo que se insere no produto ao final do desenvolvimento, portanto deve se ter atenção em todas as atividades do ciclo de vida do software.
![Page 35: Inspeção de código para a entrega contínua de software de ...€¦ · alterações de código em um repositório central, depois disso, compilações e inspeções e testes são](https://reader033.fdocumentos.com/reader033/viewer/2022060411/5f1086ce7e708231d4498bbf/html5/thumbnails/35.jpg)
Como a FATTO pode te ajudar?
35© FATTO Consultoria e Sistemas – www.fattocs.com
❑ Atividades
▪ Instalação, configuração e preparação das ferramentas
▪ Automatização do processo de inspeção
▪ Mentoria dos envolvidos no processo
▪ Criação do baseline de erros
▪ Implantação assistida
▪ Interpretação e avaliação dos resultados da inspeção
▪ Ajustes nas regras e perfis de inspeção
❑ Contatos
![Page 36: Inspeção de código para a entrega contínua de software de ...€¦ · alterações de código em um repositório central, depois disso, compilações e inspeções e testes são](https://reader033.fdocumentos.com/reader033/viewer/2022060411/5f1086ce7e708231d4498bbf/html5/thumbnails/36.jpg)
PRÓXIMOS EVENTOS
❑WEBINAR:
▪ SNAP: Medição não funcional de software
▪ Data: 18/11/2019
13 horas (Horário de Brasília)
Inscrições gratuitas em: https://bit.ly/35LuyN0
36© FATTO Consultoria e Sistemas – www.fattocs.com
![Page 37: Inspeção de código para a entrega contínua de software de ...€¦ · alterações de código em um repositório central, depois disso, compilações e inspeções e testes são](https://reader033.fdocumentos.com/reader033/viewer/2022060411/5f1086ce7e708231d4498bbf/html5/thumbnails/37.jpg)
37
AVALIAÇÃO
© FATTO Consultoria e Sistemas – www.fattocs.com
![Page 38: Inspeção de código para a entrega contínua de software de ...€¦ · alterações de código em um repositório central, depois disso, compilações e inspeções e testes são](https://reader033.fdocumentos.com/reader033/viewer/2022060411/5f1086ce7e708231d4498bbf/html5/thumbnails/38.jpg)
Apresentador
AUGUSTO MARIANO PINHEIRO
• E-mail: [email protected]
• WhatsApp: +552799946-2525
38© FATTO Consultoria e Sistemas – www.fattocs.com