O que significa qualidade de software na prática?
Entenda como necessidades, partes interessadas e atributos ajudam a definir e verificar a qualidade de software em cada projeto.
Qualidade de software, na prática, é a capacidade de um produto ou sistema atender às necessidades relevantes em condições de uso especificadas. Portanto, ela não deve ser tratada como uma ideia abstrata de excelência, mas como uma definição vinculada ao contexto, às partes interessadas e às características que serão observadas no projeto.[1, 2]
Essa definição não exige que todas as características de qualidade sejam maximizadas. Alguns atributos podem entrar em conflito, como ocorre quando controles de acesso aumentam a segurança, mas tornam o uso menos simples. A escolha precisa refletir as prioridades do projeto e as compensações aceitas pelas partes interessadas.[2, 3]
Começar pelas necessidades e condições de uso
A adequação funcional é o grau em que as funções de um produto ou sistema atendem às necessidades declaradas ou implícitas quando ele é utilizado em condições especificadas. Ela abrange completude, correção e pertinência funcional.[1]
Essa formulação permite transformar uma expectativa vaga, como o sistema deve ter qualidade, em perguntas mais delimitadas:
- Quais necessidades declaradas precisam ser atendidas?
- Quais necessidades implícitas são relevantes nesse contexto?
- Em quais condições o produto será usado?
- Quais funções precisam ser avaliadas quanto à completude, correção e pertinência?
- Que evidência permitirá observar se essas necessidades foram atendidas?
As quatro primeiras perguntas derivam diretamente dos elementos presentes na definição de adequação funcional. A quinta funciona como uma decisão metodológica para que a equipe não permaneça apenas no plano das intenções.[1]
Necessidades declaradas podem ser registradas de maneira explícita pelo projeto. Necessidades implícitas exigem cuidado adicional: a equipe precisa identificá-las sem tratá-las automaticamente como consenso. A seleção final deve considerar os diferentes pontos de vista das partes interessadas.[1, 2]
Separar qualidade em uso e qualidade do produto
A ISO 25010 organiza a avaliação em dois modelos aplicáveis a produtos de software e sistemas: qualidade em uso, composta por cinco características, e qualidade do produto, composta por oito características.[4]
Como leitura operacional, essa separação ajuda a organizar a definição em dois planos. Em um deles, a equipe registra o que pretende observar no produto. No outro, registra o que precisa observar quando esse produto é utilizado nas condições especificadas. Essa organização não autoriza concluir que um plano seja suficiente por si só; ela apenas mantém visíveis as duas perspectivas indicadas pelo modelo.[1, 4]
Uma definição contextual pode, portanto, relacionar cada necessidade a três elementos:
- a condição de uso em que a necessidade importa;
- a característica do produto que será observada;
- o resultado de uso que precisa ser analisado.
Essa estrutura é uma forma prática de conectar os dois modelos mencionados pela fonte, sem tentar reproduzir todas as suas características. O recorte deste artigo permanece na construção da definição de qualidade, e não na apresentação integral da ISO 25010.[4]

Incluir os pontos de vista das partes interessadas
Os atributos de qualidade devem ser selecionados considerando diferentes pontos de vista e necessidades das partes interessadas. Como os atributos podem entrar em conflito, a equipe precisa analisar compensações e buscar um equilíbrio adequado ao projeto.[2]
Isso significa que a definição não deve registrar apenas uma lista de atributos. Para cada prioridade, convém indicar qual necessidade está sendo protegida, em qual condição de uso ela aparece e qual perspectiva contribuiu para sua seleção. Essa prática torna a escolha justificável com base nos elementos destacados pelas fontes: necessidades, contexto e diferentes pontos de vista.[1, 2]
Quando houver divergência, o objetivo não é declarar que todas as partes interessadas têm a mesma prioridade. O objetivo é registrar a compensação escolhida. A tentativa de maximizar simultaneamente todas as características ignora os conflitos possíveis entre elas.[3]
Priorizar atributos por meio de compensações explícitas
Priorizar não é simplesmente classificar um atributo como importante. É explicar por que ele merece atenção maior naquele projeto e o que pode ser afetado pela decisão. Controles de acesso, por exemplo, podem elevar a segurança e tornar o uso menos simples.[3]
Uma matriz enxuta pode conter quatro campos:
- necessidade relevante;
- atributo associado;
- condição de uso;
- compensação aceita ou ainda pendente de decisão.
A matriz não substitui a avaliação. Ela serve para tornar rastreável a relação entre necessidade, atributo e decisão. Sempre que duas prioridades disputarem espaço, a equipe pode retornar aos pontos de vista das partes interessadas e ao equilíbrio considerado adequado para o projeto.[2]
A página conteúdo relacionado do curso oferece o contexto formativo mais amplo no qual este conceito se insere.

Exemplo compacto de definição contextual
Considere, apenas como hipótese, um sistema no qual determinada operação depende de controle de acesso. Uma definição insuficiente seria afirmar que o sistema precisa ser seguro e simples. Ela não informa a condição de uso, a necessidade atendida nem a compensação esperada.
Uma formulação verificável poderia registrar: nas operações restritas, somente os perfis definidos pelo projeto devem conseguir executar a função; a equipe observará também se o controle acrescentado prejudica a simplicidade de uso aceita para esses perfis. O exemplo não estabelece um nível universal de segurança ou simplicidade. Ele apenas explicita a compensação que precisará ser avaliada no contexto. A possibilidade desse conflito e a necessidade de equilíbrio são sustentadas pelas fontes.[2, 3]
Se a operação também precisar ser avaliada quanto à adequação funcional, a equipe deve relacioná-la às necessidades declaradas ou implícitas e observar completude, correção e pertinência funcional nas condições especificadas.[1]
Quando a definição está suficientemente verificável
Dentro do recorte das fontes fornecidas, uma definição de qualidade pode ser considerada operacional quando identifica as necessidades relevantes, as condições de uso, os pontos de vista das partes interessadas, os atributos priorizados e as compensações assumidas. Esses elementos permitem justificar por que determinadas características receberão mais atenção que outras.[1, 2, 3]
Também deve ficar claro se a observação pertence ao plano da qualidade em uso, ao plano da qualidade do produto ou se relaciona os dois. A ISO 25010 organiza esses planos em modelos distintos, com cinco características de qualidade em uso e oito características de qualidade do produto.[4]
As fontes disponíveis não apresentam métricas, limiares numéricos nem procedimentos completos de teste. Por isso, não sustentam a definição de valores universais ou critérios quantitativos específicos. O que elas permitem fundamentar é a passagem de uma noção genérica de qualidade para uma escolha contextual, vinculada a necessidades, condições de uso, partes interessadas e compensações entre atributos.[1, 2, 3, 4]
Fontes consultadas
Obras e aulas usadas na redação deste guia. Os números no texto levam a elas.
- ISO 25010: Modelos e Atributos da Qualidade de Software | Aula 5, Crescencio Lima, tempo 00:11:19–00:12:27
- ISO 25010: Modelos e Atributos da Qualidade de Software | Aula 5, Crescencio Lima, tempo 00:23:55–00:25:02
- ISO 25010: Modelos e Atributos da Qualidade de Software | Aula 5, Crescencio Lima, tempo 00:25:05–00:26:11
- ISO 25010: Modelos e Atributos da Qualidade de Software | Aula 5, Crescencio Lima, tempo 00:02:38–00:03:49
