Plano de Qualidade do Produto

Introdução

Um dos pilares mais importantes de um produto concentra-se na qualidade deste. Assim, a ISO9126 define qualidade como "totalidade de características e critérios de um produto ou serviço que exercem suas habilidades para satisfazer as necessidades declaradas ou envolvidas”. Já a ISO 25010, disponibilizada em 2011, que padroniza a qualidade de produtos de software e surgiu em substituição a ISO9126, define qualidade como o nível em que um sistema atende às necessidades expressas e não expressas dos stakeholders, resultando em geração de valor.

Esta ISO25010 define 8 características para a qualidade, sendo elas: adequação funcional, eficiência de desempenho, compatibilidade, usabilidade, confiabilidade, segurança, manutenção e portabilidade.

Objetivo

O objetivo da elaboração deste plano de qualidade é especificar as ferramentas que serão utilizadas e as métricas analisadas pela equipe para que seja definida a qualidade do produto e tomadas decisões. Assim, os objetivos deste documento são:

  • Definir os objetivos de qualidades.
  • Apresentar formas de atingir os objetivos de qualidade.
  • Selecionar e coletar métricas.
  • Apresentar a interpretação e uso das métricas para o produto.
  • Especificar procedimentos, técnicas e ferramentas.

Objetivos de qualidade

No contexto dos objetivos definidos pela norma ISO 25010:2011, a análise de qualidade do projeto se concentra em três áreas principais: qualidade interna, qualidade externa e qualidade de uso.

A análise de qualidade do projeto aborda tanto os aspectos internos quanto os externos do software, levando em consideração as seis características de qualidade. Avalia também a experiência do usuário final por meio das quatro características específicas de qualidade de uso. Ao adotar essas abordagens complementares, busca-se realizar uma avaliação abrangente da qualidade do produto em diferentes perspectivas.

Verificação e validação

Para alcançar os objetivos de qualidade do projeto, foram adotadas três técnicas de verificação e validação:

  • Análise estática do código: Essa técnica utiliza o Sonar Cloud como ferramenta de análise estática de código, para obter métricas mensuráveis.
  • Testes automatizados: Foram realizados testes automatizados, incluindo testes unitários e de integração.
  • Validações com os POs do projeto: Além das técnicas baseadas em código, é essencial envolver os donos ou usuários do projeto na validação.

Padrões, práticas, convenções e métricas

ISOs e modelos de qualidade

A principal ISO e modelo utilizados no projeto são:

  • NBR - ISO/IEC 25010 [2]
  • Modelo de Qualidade Q-Rapids [3]

Testes

O software é uma das construções mais complexas dos humanos por isto está sujeito a inconsistências e erros. O conjunto de processos para validar o correto funcionamento de um software são chamados testes e as atividades de teste surgiram justamente para evitar que estes erros cheguem ao usuário final. [4]

  • Testes de unidade: a maior parte dos testes se encontram nesta categorização e são utilizados para verificar pequenas partes de um código, normalmente uma classe somente.
  • Testes de integração: estes testes verificam uma transação completa ou uma funcionalidade.
  • Testes de sistema: testes que simulam uma sessão com usuário real.

Ferramentas, técnicas e metodologias

  • Jest: Framework de testes para TypeScript.
  • React Testing Library: Framework de testes para React.
  • SonarCloud: Ferramenta de varredura de código para analisar o código de acordo com as regras e métricas definidas.

Controle de código

A fim de assegurar a execução de procedimentos de qualidade, utilizamos uma combinação de tarefas automatizadas e manuais.

As tarefas automatizadas incluem: documentação, controle de versão, controle de código, controle de commits, testes automatizados. Essas tarefas são realizadas por ferramentas e sistemas que auxiliam na garantia da qualidade do software.

Coleta e manutenção

O processo de manutenção de sistemas de software tem como objetivo principal realizar modificações no produto de software após liberações de releases.

Referências

Referências e fontes utilizadas na elaboração deste documento.

[1] ENGSOFTMODERNA. Engenharia de Software Moderna. Disponível em: https://engsoftmoderna.info/. Acesso em: 26 maio 2023.

[2] Importância dos testes de software na qualidade do sistema. TreinaWeb. Disponível em: https://www.treinaweb.com

Histórico de Revisão

Data Versão Descrição Autor
25/06/2024 1.0 Criação do documento Lucas Lima Ferraz