Skip to content

08 ‐ Quality Assurance

João Vitor Pereira edited this page Dec 4, 2024 · 21 revisions

8.1 - O que é QA?

QA, ou Quality Assurance (Garantia da Qualidade), é uma área focada em garantir que produtos, especialmente de software como o Tupan, atendam aos padrões de qualidade definidos antes de serem lançados ou utilizados. No contexto de desenvolvimento de software, QA envolve a criação de processos, metodologias e testes para verificar se o produto está funcionando como esperado, sem bugs e com desempenho adequado.

8.2- Código limpo (clean code);

A garantia da qualidade contribui para o desenvolvimento de um código mais limpo, ou seja, um código consistente e fácil de entender tanto para aquele que o desenvolveu, quanto outros desenvolvedores. Assim é possível reduzir o risco de bugs e facilita o processo de testes e depuração, além das manutenções que serão realizadas no software.

8.3 - Tecnologias Utilizadas;

SonarQube: Ferramenta de análise estática de código que ajuda a garantir a qualidade do código ao identificar problemas como bugs, vulnerabilidades de segurança, "code smells" (mau cheiro de código) e duplicações.

Grafana: Ferramenta de visualização e monitoramento de dados open-source. Ele é usado para criar dashboards interativos e personalizáveis, que permitem monitorar métricas, logs e outros dados de sistemas em tempo real.

Jest: Utilizado no Front-End, para testes unitários e de integração, permitindo simular comportamentos e validar saídas do código.

Pytest: Framework de testes para Python utilizado no Back-End, que facilitou a criação, organização e execução de testes automatizados.

8.4 - Métricas de Qualidade

As métricas de qualidade são fundamentais para o processo de QA, pois ajudam a medir, monitorar e avaliar a eficácia dos processos de desenvolvimento e garantir que o produto final atenda aos requisitos estabelecidos. Elas fornecem dados quantificáveis para analisar a qualidade do software e identificar áreas que necessitam de melhorias. A seguir estão as métricas utilizadas no desenvolvimento do Tupan com suas respectivas tecnologias.

Percentual de tarefas concluídas por Sprint e Total

O Percentual de Tarefas Concluídas é uma métrica importante para avaliar o progresso do projeto. Ele é calculado com base no número de tarefas concluídas em relação ao total de tarefas planejadas.

  • Feito de forma manual.

A fórmula para calcular o percentual é:

$$ \text{Percentual de Tarefas Concluídas} = \left( \frac{\text{Número de tarefas concluídas}}{\text{Total de tarefas}} \right) \times 100 $$

✅ Sprint 1 - 100%

Tarefas Concluídas: 19

Total de tarefas: 19

✅ Sprint 2 - 100%

Tarefas Concluídas: 10

Total de tarefas: 10

✅ Sprint 3 - 90%

Tarefas Concluídas: 9

Total de tarefas: 10

✅ Sprint 4 - 100%

Tarefas Concluídas: 3

Total de tarefas: 3

Total: 90,5%

Duplicação (SonarQube Cloud)

O SonarQube mede o percentual de código duplicado no projeto, ou seja, trechos de código idênticos ou quase idênticos. É feito de forma automalizada e é essencial para reduzir redundâncias.

  • Feito de forma automatizada
Taxa de duplicação: 5.4% Duplicações no Front-end: 5.4%

Duplicações no Back-end: 0

CVSS (Grafana)

CVSS (Common Vulnerability Scoring System) é um padrão aberto para avaliar e comunicar a gravidade de vulnerabilidades de segurança em sistemas de TI. Ele fornece uma pontuação numérica que reflete a gravidade de uma vulnerabilidade, ajudando organizações a priorizarem ações corretivas com base no impacto potencial da falha.

  • Feito de forma automatizada.

Pontuação

A pontuação CVSS varia de 0.0 a 10.0, com classificações como:

Severidade Score
Nenhuma 0.0
Baixa 0.1 - 3.9
Média 4.0 - 6.9
Alta 7.0 - 8.9
Crítico 9.0 - 10.0

Pontuação Tupan: 7.50

Cobertura de Testes (Realizadas com Jest e Pytest)

A cobertura de teste foi feita pelo Jest e pelo Pytest, garantindo que tanto o código de Front-End quanto de Back-End fossem testados de maneira eficiente e contínua. Juntas, essas ferramentas ajudam a assegurar a qualidade, confiabilidade e manutenção do software, além de fornecerem métricas precisas de cobertura de código.

  • Feito de forma automatizada.

$$ \text{Cobertura total} = \left( \frac{\text{Cobertura do Front-End} \times \text{Linhas do Front-End}}{\text{Total de Linhas}} \right) + \left( \frac{\text{Cobertura do Back-End} \times \text{Linhas do Back-End}}{\text{Total de Linhas}} \right) $$

  • Front-End

    Cobertura: 45.31%

    Total de linhas: 27.127

  • Back-End

    Cobertura: 74%

    Total de linhas: 3.537

Cobertura Total: 48.67%

Quality Gate

O Quality Gate do SonarQube é uma funcionalidade que permite definir critérios de qualidade para o código analisado. Ele é essencial para garantir que o código de um projeto atenda a padrões de qualidade específicos antes de ser promovido para produção, por exemplo. O Quality Gate funciona como uma barreira que verifica se o código está dentro de parâmetros aceitáveis, e se não estiver, impede que o projeto avance. Exemplo: {803A63DA-D3D5-4B60-885B-B70FBD4FEF0D}