Plano de Gerenciamento de Qualidade - Measurement-and-Metrics-2018-1/2017.1-SIGS GitHub Wiki

Histórico de Revisões

Data Versão Descrição Autor
24/03/2017 0.1 Introdução Vinicius Carvalho
26/03/2017 0.2 Gerenciamento de Qualidade Vinicius Carvalho
30/03/2017 0.3 Elaboração dos processos de qualidade dos artefatos e código Caio Nunes
30/03/2017 0.4 Métricas Vinicius Carvalho
31/03/2017 0.5 Descrição das ferramentas Caio Nunes
03/03/2017 1.0 Revisão do documento de qualidade Caio Nunes, Vinicius Carvalho
22/04/2018 1.1 Introdução de conceitos de usabilidade e adequação funcional ao documento Gabriel Ziegler

1. Introdução

2. Processo de qualidade

3. Frequência da análise de qualidade

4. Ferramentas

5. Métricas

6. Referências Bibliográficas


1. Introdução

1.1 Objetivo do documento

2. Gerenciamento de qualidade

Gerenciar a qualidade do projeto requer um plano de qualidade aprovado,englobando os principais processos definidos abaixo. Este plano é desenvolvido e aprovado durante a fase de planejamento do projeto.

2.1 Qualidade dos artefatos

Processo de qualidade dos artefatos

  • Elaborar artefato : Essa atividade consiste no desenvolvimento de um novo artefato a ser elaborado ou refatorado/refeito, de acordo com a necessidade, sendo efetuada pela equipe de desenvolvimento ou pelos gestores.

  • Revisar artefato : Essa atividade consiste na revisão do artefato gerado, pela equipe de gestão.

  • Validar com Stakeholder : Essa atividade consiste na validação do artefato com os stakeholders, para identificar se existem inconsistências e problemas em relação ao artefato.

2.2 Qualidade do código

Processo de qualidade do Código

  • Coleta das métricas : Essa atividade consiste na coleta das métricas do código produzido, através das ferramentas definidas neste plano.

  • Elaborar relatório de coleta : Essa atividade consiste na análise das métricas coletadas e elaboração de um relatório referente a esta análise.

  • Analisar relatório : Essa atividade consiste na análise do relatório elaborado para enfatizar os pontos de melhoria do código.

  • Definir atividades de refatoração e propor melhorias : Essa atividade consiste na definição das atividades de refatoração dos pontos identificados no relatório, e proposta de melhorias para impedir novos erros.

2.3 Garantia de qualidade do projeto

A cada ciclo concluído do projeto serão observados as lições aprendidas e o valor que cada processo agregou na qualidade das entregas e na melhoria dos indicadores monitorados. Os processos serão revisitados e monitorados a fim de garantir sua eficiência e evitar desvios das metas estipuladas. Para isto, o processo de melhoria contínua baseia-se o ciclo PDCA (Plan-Do-Check-Act).

O ciclo PDCA consiste em quatro fases, conforme a seguir:

  • Plan (Planejamento) – responsável por estabelecer metas e objetivos para serem alcançados e padronização dos procedimentos que serão utilizados;
  • Do (Execução) – fase de implementação do planejamento, momento responsável por coletar os dados, que serão avaliados posteriormente na fase de verificação;
  • Check (Verificação) – esta fase é responsável por verificar se a meta planejada foi devidamente alcançada, nesta fase, utiliza-se de ferramentas que apoiam na verificação, exemplo: ferramenta de controle e acompanhamento, histogramas, folhas de verificação etc.;
  • Act (Ação corretiva) – fase que consiste em buscar as causas e prevenir efeitos indesejados e adotar padrões de processos que apoiaram as próximas etapas do projeto.

Desta forma, além de promovermos a melhoria contínua dos processos, também buscaremos a satisfação gradativa do cliente.

3. Frequência da Análise de Qualidade

A análise de qualidade de código é um processo contínuo. Sendo assim, a cada artefato que precise ser elaborado, ao fim de cada iteração que contemple desenvolvimento,ao final de cada sprint, os processos de qualidade de artefatos e de código serão seguidos, para assegurar que o plano de qualidade seja seguido e que o produto final atenda às espectativas do cliente de maneira efetiva.

4. Ferramentas

As ferramentas de qualidades serão utilizadas para verificação das métricas definidas por este plano, sendo executadas de acordo com a frequência de análise também definidas.

4.1 Rubocop

O foco desta ferramenta é localizar más práticas de programação, com base no Ruby Style Guide, um guia de recomendação de boas práticas de programação ruby. As métricas utilizadas pelo rubocop são adaptáveis ao projeto, tendo então algumas de suas práticas adaptadas a Stylesheet do projeto.

4.2 Breakman

O foco desta ferramenta é localizar possíveis vulnerabilidades de segurança no código. Devido ao escopo do projeto ter diferentes níveis de autorização para utilização do sistema, é interessante verificar estes problemas e corrigir na medida do possível.

4.3 Rubycritic

O foco desta ferramenta é identificar e mensurar métricas pré-definidas. Ela será executada ao fim de cada iteração/sprint a fim de identificar pontos de melhorias do código.

4.4 SimpleCov

O foco desta ferramenta é mostrar a cobertura de código baseado na execução da switch de testes elaborada pelos desenvolvedores. A ferramenta apresenta uma representação gráfica de quais trechos de códigos foram testados ou não.

5. Métricas de Código

Métricas são sistemas de mensuração que quantificam uma tendência, comportamento ou variável de negócio, permitindo medir e avaliar o desempenho de qualquer ação.

Métricas Descrição
Cobertura de Testes Valor percentual que mede quanto do código é coberto pelos testes automatizados.
Flog Estima a Complexidade Ciclomática do código.
Flay Procura por duplicações de código e similaridades estruturais.
Churn Quantifica o número de vezes que um arquivo sofreu alterações.
Checkstyle Checa se o código fonte está de acordo com as regras de codificação da linguagem.
Falhas de Segurança Localização de potenciais falhas de segurança no código.

Estas métricas serão avaliadas durante a fase de codificação do projeto, e as especificações das métricas e indicadores se encontram no plano GQM.

Para execução das métricas, os seguintes comandos são executados:

  1. Rubycritic

Comando: rubycritic Saída: na pasta tmp/rubycritic, arquivo "overview.html" que mostra a análise da ferramenta.

  1. Rubocop

Comando: rubocop --format html -o <nome_desejado>.html. Saída: Arquivo "<nome_desejado>.html" no diretório onde o comando foi executado.

  1. Brakeman Comando: brakeman -o <nome_desejado>.html Saída: Arquivo "<nome_desejado> .html" no diretório onde o comando foi executado.

6. Referências Bibliográficas