8 Princípios da Qualidade de Software

Construir um software envolve diversas áreas: comunicação, marketing, equipe de negócios, design, experiência do usuário, equipe técnica e tantos outros envolvidos.

Mas afinal, o que seria construir um software com qualidade?

Essa pergunta pode ter diversas respostas, entretanto, a ISO/IEC 25010 foi criada para ser um alicerce quando falamos em construção de software.

Com ela, podemos avaliar a qualidade de um sistema a partir de princípios que foram desenhados. Cada princípio analisa o software de um ponto de vista.

Nesse artigo, iremos navegar por cada princípio e suas subcaractéristicas e como eles podem nos auxiliar.

Vamos lá?


Adequação funcional

Mulher segurando uma prancheta e olhando em um quadro branco os requisitos do sistema.
Image by gpointstudio on Freepik

Todo sistema deve permitir os usuários realizarem tarefas específicas. Essa habilidade é chamada de adequação funcional.

Para isso acontecer devemos criar funcionalidades, que esperam alguma ação do usuário para respondê-lo, de acordo com seu pedido.

Eficiência de desempenho

Image by rawpixel.com on Freepik

Acredito que todo mundo detesta um software lento. Particularmente eu odeio, fico impaciente e dependendo da situação acabo desinstalando ou deixo de lado.

Esse princípio reflete justamente esse aspecto. O software deve ser capaz de responder em tempo hábil, sem deixar o usuário esperando.

Outros pontos importantes, como por exemplo: a utilização de recursos e sua capacidade.

Compatibilidade

Image by macrovector on Freepik

Na minha opinião todo software deveria ser compatível, mas sei que isso não é uma realidade. Principalmente em consoles de video-games, onde existe uma briga de mercado gigante nesse aspecto.

Uma das empresas que mais me irritava nesse sentido era a Microsoft. Bastava lançar uma nova versão do Excel, por exemplo, e a versão antiga já não era compatível com a nova.

Penso que, era uma estratégia de venda para atualizar os softwares, entretanto, nem sempre era viável realizá-la.

A interoperabilidade é a capacidade de executar o software independente da estrutura. Essa caractéristica é muito importante, pois, permite alçancar um número maior de pessoas.

Usabilidade

Mulher prototipando a usabilidade de um site em um iMac.
Imagem de rawpixel.com no Freepik

Usabilidade é a habilidade dos usuários aprenderem de forma simples com o minimo esforço.

Alguns itens necessitam de serem cumpridos para terem uma boa usabilidade.

Como por exemplo:

  • Reconhecimento de adequação;
  • Aprendizagem;
  • Operabilidade;
  • Proteção contra erros do usuário;
  • Estética da interface do usuário;
  • Acessibilidade.

Todas essas subcaracterísticas são importantes, entretanto, quero destacar a acessibilidade.

A acessibilidade é extremamente relevante para a usabilidade. Não temos um software usável sem acessibilidade, ou vice-versa.

Contudo, vale sempre lembrar:

Entregar um software com boa usabilidade e não pensar em acessibilidade é um grande erro.

Confiabilidade

Mão de uma pessoa avaliando o software com nota máxima, devido a sua confiabilidade
Image by DilokaStudio on Freepik

Confiabilidade diz a respeito do sucesso de seu software. Ninguém gosta de utilizar algo que não seja confiável.

Ainda mais, com os escandâlos de vazamento de dados recentes, se previnir e usar ferramentas adequadas é essencial.

Comecei a abandonar algumas redes sociais e outros serviços por causa desse princípio.

Quando falamos de confiabilidade, alguns itens são importantes de citar, como por exemplo:

  • Maturidade: mede a frequencia de defeitos apresentados;
  • Disponibilidade: mede o quanto o software encontra-se disponível para os usuários;
  • Tolerância a falhas: como o software reage em situação de falhas;
  • Recuperabilidade: capacidade de recuperar de um incidenten.

Segurança

Mão segurando sistema de nuvem com proteção de dados
Imagem de rawpixel.com no Freepik

Além da confiabilidade a segurança, no meu ponto de vista, é um dos pontos mais importantes. Afinal, ninguém quer utilizar algo inseguro, não é mesmo?

Sempre quando falamos de segurança, esse conceito vem acompanhado de outros poucos conhecidos, como:

  • Confidencialidade: somente sistemas/pessoas autorizadas acessam um recurso;
  • Integridade: não permite sistemas/pessoas não autorizadas acessam um recurso;
  • Rastreabilidade de uso: rastreia ações do usuário, a fim de, comprovar suas ações;
  • Autenticidade: identifica se você é quem alega ser.

Capacidade de Manutenção

Computador sendo atualizado na sua tela existe a frase: Software Update
Imagem de rawpixel.com no Freepik

Para qualquer sistema a manutenção é muito importante. Quem nunca sofreu com as atualizações do Windows, que atire a primeira pedra. 😂

Mesmo que isso seja incomôdo, é necessário para prevenir ataques maliciosos e permitir que o sistema mantenha-se “sadio”.

Quando a manutenção é realizada, podemos avaliar os seguintes pontos:

  • Modularidade;
  • Reutilização;
  • Analisabilidade;
  • Modificabilidade;
  • Testabilidade.

Portabilidade

Image by pch.vector on Freepik

Sempre quando ouço a palavra portabilidade, penso logo, em operadoras de telefonia.

Antigamente, quando precisavamos trocar de uma operadora para outra, era bem complicado. Não tinhamos a capacidade de se adaptar ao novo contexto.

Muitas vezes, essa migração era instável e a capacidade de substituição era praticamente impossível.

Mas tudo teve um final feliz, com o avanço da tecnologia hoje é possível realizar isso de forma quase instantânea.

Com a portabilidade, hoje temos a autonomia de poder decidir quando trocar para um serviço que nos atenda melhor.

  • Adaptabilidade;
  • Instalabilidade;
  • Capacidade de substituição.

Esses são os princípios que norteiam o trabalho e tipos de testes de um QA. Além disso, existem 21 qualidades que todo QA deve ter.

Bônus: indicação de livros

Para concluir gostaria de deixar algumas indicações de leitura. As três indicações são valiosas bases para o conhecimento em testes de software. Entretanto, não são as únicas gosto bastante delas.

Base de Conhecimento em Teste de Software
Introdução ao Teste de Software
Lessons Learned in Software Testing: A Context-Driven Approach

Concluíndo, os princípios de qualidade de software levaram você ter uma visão muito mais ampla sobre qualidade.

E conseguirá te fato medir a qualidade baseada em itens sólidos.


Me apoie

Se este post te foi útil e te ajudou, considere me apoiar. Desde já agradeço.

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *

Esse site utiliza o Akismet para reduzir spam. Aprenda como seus dados de comentários são processados.