Como medir a qualidade do software é um dos debates mais acalorados no mundo do desenvolvimento de software. Os especialistas na área debatem quais fatores são mais importantes para a qualidade do software. Muitos dizem que a qualidade do software simplesmente não pode ser medida de maneira significativa.

Eu acredito que a qualidade do software pode ser medida desde que conseguimos manter um alinhamento da visão de “qualidade do software” entre todas as pessoas envolvidas no processo. Ou seja, desenvolvedores, gerentes, usuários e stakeholders devem possuir a mesma visão de “qualidade do software”.

DIFERENTES VISÕES DE QUALIDADE DO SOFTWARE

O que normalmente ocorre é que os desenvolvedores consideram a qualidade do software como significando que o software se ajusta às especificações do sistema, funciona com eficiência, não “explode”, segue os padrões, usa tecnologia e técnicas atuais e pode ser facilmente modificado. Os desenvolvedores frequentemente sentem que os usuários e gerentes não estão muito atentos a essas coisas, e concluem que os usuários não se importam com a qualidade.

Já os usuários e gerentes geralmente consideram a qualidade do software como significando que o software faz o que precisa ser feito corretamente, funciona adequadamente, é executado de forma confiável e consistente, é fácil de usar, é suportado de forma rápida e é entregue dentro do prazo e do orçamento. Usuários e gerentes frequentemente sentem que os desenvolvedores não estão atentos a essas coisas e, portanto, não se importam com a qualidade.

Na verdade, ambas as visões fazem parte da qualidade do software. Porque de nada adianta o software estar devidamente testado, integrado e implantado, utilizando os melhores métodos e tecnologias disponíveis, se não estiver de fato solucionando um problema ou melhorando a vida do usuário. Com isso em mente, vamos ver algumas definições populares, porém falhas, de qualidade do software:

O QUE NÃO É QUALIDADE DO SOFTWARE

“A qualidade do software é a satisfação do usuário.”

Na verdade, a satisfação do usuário deve ser o resultado da entrega de um software de qualidade, mas a satisfação pode ser influenciada por muitas coisas e não é o mesmo que qualidade. Além disso, é muito comum ver alguns usuários satisfeitos com software de baixa qualidade enquanto outros não tão satisfeitos com software de alta qualidade.

“A qualidade do software é conformidade com os requisitos do usuário.”

Esta pode ser a definição mais popular dentro da comunidade de qualidade do software. Parece correto até você perceber que deixa de fora a qualidade dos requisitos. É muito difícil mesmo para usuários com algum conhecimento descreverem corretamente os requisitos necessários para solucionar um problema. A conformidade com os requisitos errados não é qualidade.

“A qualidade do software é o produto livre de defeitos.”

Embora a presença de defeitos afete a avaliação da qualidade de um software, só podemos medir os efeitos que detectamos. Portanto, a falta de defeitos pode estar mais relacionada a especificação ou qualidade no processo de medição do que da qualidade do próprio software.

Cada uma das definições acima oferece algo útil. No entanto, cada uma também tem suas próprias deficiências. Criar uma definição de qualidade mais funcional exige que consideremos alguns fatores adicionais:

A IMPORTÂNCIA DOS REQUISITOS DE NEGÓCIOS E DO SOFTWARE

Primeiro, existem dois tipos de requisitos: Os chamados Requisitos de Negócios são os requisitos que quando entregues, resolvem problemas, criam oportunidades ou superam desafios. Eles são conceituais. Eles existem dentro do ambiente de negócios, portanto devem ser descobertos. Eles tomam o ponto de vista do cliente ou stakeholders. Geralmente existem muitas maneiras de atender aos requisitos de negócios.

Há também os Requisitos do Software, que são características do software definidas pelo usuário afim de satisfazer os requisitos de negócios. Os desenvolvedores escrevem código para atender aos requisitos do software. Os requisitos de negócios não se decompõem nos requisitos do software. Em vez disso os requisitos do software são criados em resposta aos requisitos de negócios.

Quando nos baseamos nos Requisitos de Negócios podemos abordar três dimensões de qualidade:

3 DIMENSÕES DE QUALIDADE DO SOFTWARE

1 – Qualidade do design.

Design de software é o processo pelo qual um software é construído, desde sua especificação até a sua implementação através de padrões e métodos previamente estabelecidos. A qualidade de design do software pode ser medida decompondo o processo em atributos de qualidade como usabilidade, extensibilidade, escalabilidade, capacidade de manutenção e reutilização, testabilidade, confiabilidade, segurança e desempenho, dentre outros.

2 – Qualidade de conformidade.

Aborda se o software desenvolvido condiz com aquilo que foi determinado pelos requisitos de negócios. O software deve estar em conformidade com o design, aplicar padrões ou convenções apropriados e deve ser entregue no prazo e dentro do orçamento. O vocabulário, nomenclatura e todos elementos que compõem a identidade visual do software também devem estar em conformidade com o que foi determinado pelo usuário.

3 – Qualidade de desempenho.

Lida com a forma como o software é entregue. O software deve estar disponível conforme o necessário para o uso, trabalhar de forma confiável e precisa da maneira pretendida, lidar com a carga de trabalho dos usuários adequadamente e possuir o suporte técnico e manutenção de maneira responsiva.

Colocando esses aspectos juntos, podemos responder a como medir a questão da qualidade do software. Pode ser definido como o quão bem o software atende aos requisitos de negócios respeitando os padrões de design e desempenho estabelecidos e expostos através de métricas relevantes para o tipo de software em questão.

Quer saber mais sobre como medimos a qualidade do nosso software aqui na Aelian? Deixe nos comentários.