-
Notifications
You must be signed in to change notification settings - Fork 0
08 ‐ Quality Assurance
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.
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.
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.
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.
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 é:
Tarefas Concluídas: 19
Total de tarefas: 19
Tarefas Concluídas: 10
Total de tarefas: 10
Tarefas Concluídas: 9
Total de tarefas: 10
Tarefas Concluídas: 3
Total de tarefas: 3
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 (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.
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 |
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.
-
Front-End
Cobertura: 45.31%
Total de linhas: 27.127
-
Back-End
Cobertura: 74%
Total de linhas: 3.537
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:
Desenvolvido pela equipe: SyntaxSquad, composta por alunos do 4º semestre, do tecnólogo em Desenvolvimento de Software Multiplataforma, na FATEC Profº Jessen Vidal - São José dos Campos, SP, 2024