-
Notifications
You must be signed in to change notification settings - Fork 7
Plano de Gerenciamento de Qualidade
Data | Versão | Modificação | Autor |
---|---|---|---|
20/03/2017 | 0.0.1 | Criação do documento | Filipe Ribeiro |
29/03/2017 | 0.0.2 | Introdução | Fábio Teixeira |
30/03/2017 | 0.0.3 | Métricas | Fábio Teixeira |
31/03/2017 | 0.0.4 | Métricas | Fábio Teixeira |
18/04/2017 | 1.0.0 | Métricas | Fábio Teixeira |
Segundo o PMBOK (2015, p.227), o foco do gerenciamento de qualidade está na condução do projeto, de forma que esse, satisfaça às necessidades para as quais foi idealizado. Sendo assim, este documento tem como objetivo especificar como será feito o controle de qualidade do software para conduzir o projeto de maneira que seja satisfeito às necessidades para a quais foi concebido, mantendo um nível de qualidade satisfatório.
"A qualidade deve ser definida e medida se a melhoria deve ser alcançada. No entanto, um grande problema na engenharia e gestão de qualidade é que o termo qualidade é ambíguo, de tal forma que é comumente mal compreendido. A confusão pode ser atribuída a várias razões. Primeiro, a qualidade não é uma idéia única, mas sim um conceito multidimensional. As dimensões de qualidade incluem a entidade de interesse, o ponto de vista sobre essa entidade e os atributos de qualidade dessa entidade. Em segundo lugar, para qualquer conceito existem níveis de abstração; Quando as pessoas falam sobre qualidade, uma das partes pode estar se referindo a ela em seu sentido mais amplo, enquanto outra pode estar se referindo ao seu significado específico. Em terceiro lugar, o termo qualidade é uma parte de nossa linguagem diária e os usos populares e profissionais de que pode ser muito diferente." (Stephen H. Kan, 2002)
Segundo Stephen H. Kan (2002), as métricas de software podem ser classificadas em três categorias: métricas do produto, métricas de processo e métricas do projeto.
-
Métricas do produto descrevem as características do produto, como tamanho, complexidade, características de design, desempenho e nível de qualidade.
-
Métricas de processo podem ser usadas para melhorar o desenvolvimento e manutenção de software.
-
Métricas do projeto descrevem as características e a execução do projeto.
Sommerville (2008) divide as métricas de produtos em duas classes:
- Métricas dinâmicas: são aquelas coletadas de um programa em execução. Ajudam a avaliar a eficiência e a confiabilidade de um programa. Quase sempre estão relacionadas com atributos da qualidade de software.
- Métricas estáticas: são aquelas coletadas em representações do sistema como projeto, programa ou documentação. Ajudam a mensurar a complexidade e a facilidade de compreensão e manutenção de um sistema de software. Possuem uma relação indireta com os atributos de qualidade.
O monitoramento será feito a través de ferramentas que calculam indicadores e geram relatórios da evolução da qualidade do software, tais como: Code Climate, RSpec, Jest, RuboCop, Simplecov, Coveralls, Travis, Heroku e Github.
Ferramenta | Descrição |
---|---|
Code Climate | Verifica cobertura, complexidade e duplicação de código. |
RSpec | Possibilita a utilização de testes unitários e funcionais em ambientes Ruby on Rails |
Jest | Possibilita a utilização de testes unitários e funcionais em ambientes React, além de gerar cobertura de código |
Simplecov | Ferramenta de analise de cobertura de código para Ruby on Rails. |
RuboCop | Um analisador de código estático Ruby, baseado no guia de estilo da comunidade Ruby |
Coveralls | Analisador de cobertura de código integrado ao ambiente de integração continua |
Travis | Ferramenta de integração contínua que executa todos os testes da aplicação a fim de garantir que novas adições não provoquem uma falha na aplicação. |
Heroku | Ferramenta de deploy automatico da aplicação para homologação |
Github | Forge utilizado para manter o controle do desenvolvimento, por onde o Travis e o Coveralls estaram disponíbilizando feedback sobre o status das features em desenvolvimento. |
Com o auxilio destas ferramentas serão coletadas as seguintes medições e seus devidos níveis de aceitação:
-
Grade Point Average (GPA): Medição sobre a qualidade do código dada pela ferramenta Code Climate cujo valor varia de 0.0 a 4.0, a nota é dada a todo o código do projeto como um todo, mas notas individuais de cada arquivo também são dadas pela ferramenta, variando de F a A.
-
Code Climate file grade: No caso das notas de cada arquivo, são somados todos os problemas do arquivo(churn, duplicação, complexidade, etc) e então aplicado uma média absoluta sobre eles uma nota de A a F é dada onde A é a melhor nota e F a pior. Ao longo das mudanças aplicadas sobre a aplicação o code climate indica quais arquivos pioraram e quais melhoraram e suas respectivas mudanças de notas.
-
Complexidade Ciclomática: É uma métrica de complexidade, representa a média da complexidade ciclomática dos métodos, que é o número de caminhos linearmente independentes dentro dele. Um valor alto revela que os métodos estão sobrecarregados e são difíceis de compreender.
-
Churn: Métrica informativa, que representa a quantidade que um mesmo arquivo foi alterado em um dado período de tempo.
-
Duplicação de Código: Partes idênticas, ou muito similares, de código identificadas em um mesmo arquivo ou arquivo diferente.
-
Cobertura de Código: Representa a quantidade do código que foi testada por casos de teste.
Nome | Nível de aceitação | Justificativa |
---|---|---|
GPA | >= 3.4 | Servirá de base para solucionar problemas de qualidade relacionados à outras métricas definidas. |
Code Climate file grade | >= B. C em algumas exceções. D só em casos críticos. E e F nunca. | Para garantir a qualidade do código escrito será preferivel uma nota igual ou acima a B. |
Complexidade Ciclomática | Alta complexidade indica necessidaede refatoração. | Códigos com uma alta complexidade ciclomática indicam os chamados "bad smells", um aviso de que precisam ser refatorados. Uma baixa complexidade ciclomática ajuda na manutenção e evolução do,software com funções fáceis de entender e com poucas condições. |
Churn | Subjetivo a interpretação, mas altos valores podem indicar arquivos problemáticos. | Churn por si só não diz muita coisa, mas quando adicionado junto a outras métricas ele pode dizer muito sobre o software. Por exemplo, aquivos com grande churn e complexidade são arquivos com prioridade na refatoração e etc. |
Duplicação de Código | Indicativo de refatoração. | Indicador de refatoração e necessiddae de generalização de código. |
Cobertura de Código | >= 30% para R1. >= 90% para R2. | Coberturas exigidas pela disciplina. Cobertura de código é importante para evitar bugs em produção que podem comprometer o software como um todo. |
- Kan, Sthepen H. Metrics and Models in Software Quality Engineering, Second Edition. Addison Wesley, 2002.
- ✅ #UC1 - Visualizar Caderno
- ✅ #UC2 - Manter atividade
- ✅ #UC3 - Manter Caderno
- ✅ #UC4 - Gerar E-book
- ✅ #UC5 - Manter usuário
-
Sprints
- Sprint 00
- Sprint 01
- Sprint 02
- Sprint 03
- Sprint 04
- Sprint 05
- Sprint 06
- Sprint 07
✅ Finalizado ☑️ Não finalizado