Gravidade vs Prioridade em Testes de Software: Diferenças, Matriz e Exemplos Reais

  1. Início
  2. Blog
  3. Teste de Software

Teste de software

Gravidade versus Prioridade em Testes de Software: Diferenças, Matriz e Exemplos Reais

A gravidade diz quanto dano um bug causa. A prioridade diz quando corrigir o problema. Saiba por que nem sempre combinam, veja todas as quatro combinações com exemplos e realize reuniões de triagem que terminem com decisões claras.

8 min de leitura
Gravidade vs prioridade em testes de software: diferenças, matriz e exemplos reais

Principais pontos

  • Gravidade mede o impacto de um bug no sistema. Prioridade mede a urgência com que deve ser corrigido.
  • Os testadores geralmente propõem a severidade, enquanto os proprietários do produto geralmente decidem a prioridade.
  • Eles são independentes, portanto um erro de digitação pode ser urgente e uma falha pode esperar.
  • A prioridade muda de acordo com o contexto do negócio, enquanto a gravidade tende a permanecer estável.

Um nome de empresa escrito incorretamente na página inicial e uma falha em um recurso de exportação raramente usado: o que você corrige primeiro? Argumentos como esse explicam o motivo pelo qual as equipes de teste separam gravidade versus prioridade. Um descreve os danos técnicos e o outro descreve a urgência do negócio.

Sem essa distinção, todo bug é rotulado como “crítico”, os rótulos perdem o significado e os desenvolvedores deixam de confiar neles. Este guia fornece definições e exemplos claros, juntamente com um processo simples para tomar essas decisões. Os exemplos são ilustrativos e as escalas exatas diferem entre equipes e ferramentas.

A resposta curta

Gravidade responde: até que ponto esse bug afeta o produto? Uma falha ou perda de dados é grave, mas uma falha cosmética não.

Respostas prioritárias: quando devemos corrigir o problema? Isso depende dos clientes afetados, prazos, receitas, exposição legal e reputação da marca.

Pense em um hospital. Gravidade é a gravidade da condição do paciente. A prioridade é a ordem de atendimento dos pacientes, que depende também de outros fatores, como quem pode esperar com segurança e quais recursos são gratuitos.

Gravidade versus prioridade lado a lado

Aspecto Gravidade Prioridade
Pergunta Quão ruim é o impacto? Em quanto tempo isso deve ser consertado?
Foco Efeito técnico no sistema Necessidade de negócios e agendamento
Geralmente definido por Testador ou engenheiro de controle de qualidade Dono do produto ou gerente de projeto
Base Comportamento observado Clientes, receita, prazos, risco
Mudanças ao longo do tempo? Raramente Muitas vezes
Decide Quão sério é o defeito A ordem da fila de correção

Níveis de gravidade

A maioria das equipes usa cerca de quatro ou cinco níveis. Aqui está uma escala comum:

Nível Significado Exemplo
Crítico (S1) Sistema inativo, perda de dados ou violação de segurança, sem solução alternativa Salvar uma fatura exclui registros de clientes
Maior (S2) Um recurso importante está quebrado ou existe apenas uma solução alternativa difícil A pesquisa não retorna resultados para nenhuma consulta
Moderado (S3) Um recurso falha parcialmente e existe uma solução alternativa razoável O filtro de data falha, mas a classificação por data funciona
Menor (S4) Pequeno inconveniente, funcionalidade intacta Uma dica de ferramenta aparece na posição errada
Trivial (S5) Somente cosmético Um ícone ligeiramente desalinhado

Níveis de prioridade

Nível Significado Ação típica
P1, urgente Deve ser consertado agora Abandone outro trabalho e considere um hotfix
P2, alto Deve ser corrigido antes do próximo lançamento Agendar no sprint atual
P3, médio Deve ser corrigido em breve Coloque em um próximo sprint
P4, baixo Corrija quando houver capacidade Mantenha o backlog e revise-o de vez em quando

Anote o que cada nível significa para sua equipe, de preferência com um tempo de resposta alvo para cada um. “P1 significa que alguém começa dentro de uma hora” é muito mais útil do que “P1 significa muito importante”.

As quatro combinações, com exemplos

A maneira mais clara de entender isso é observar cada combinação:

Alta prioridade Baixa prioridade
Alta gravidade A finalização da compra falha para todos os clientes durante uma venda Uma falha ao exportar para um formato de arquivo que quase ninguém usa
Baixa gravidade O nome da empresa está escrito incorretamente na página inicial Um erro de digitação em um artigo de ajuda antigo com poucos leitores

Alta gravidade, alta prioridade

O checkout falha para todos, a empresa perde dinheiro a cada minuto e não há solução alternativa. Este é o caso óbvio: largue tudo e conserte.

Alta gravidade, baixa prioridade

O aplicativo trava ao exportar para um formato legado. Tecnicamente, isso é uma falha grave. Mas se apenas uma pequena parcela de usuários usar esse recurso e um formato moderno funcionar bem, ele poderá esperar por um lançamento agendado.

Baixa gravidade, alta prioridade

O nome da empresa está escrito incorretamente na página inicial. Nada está quebrado e nenhum dado está em risco. No entanto, todo visitante vê isso, isso prejudica a confiança e, se um grande lançamento estiver previsto para amanhã, precisa ser consertado hoje.

Baixa gravidade, baixa prioridade

Um pequeno erro de digitação em um artigo de ajuda raramente visitado. Corrija-o quando for conveniente. Se o seu backlog estiver cheio disso, considere agrupá-los em uma tarefa de limpeza.

Um bug, duas prioridades diferentes

O mesmo defeito pode merecer prioridades diferentes dependendo do contexto. Suponha que um e-mail de confirmação de pedido seja enviado com o logotipo errado.

Contexto Gravidade Prioridade
Ferramenta interna pequena Menor P4
Marca pública acaba de ser renomeada, com anúncio esta semana Menor P1 ou P2

A gravidade não mudou porque o impacto no sistema é o mesmo. Mas a situação empresarial sim. O tempo também pode mudar as coisas. Um bug que é P3 hoje pode se tornar P1 uma semana antes do lançamento de um grande cliente.

Dica: algumas mudanças no contexto afetam a gravidade. Cálculos de impostos errados podem parecer moderados até você aprender que eles se aplicam a todas as faturas, portanto, verifique a extensão do bug antes de definir um nível.

Quem decide a gravidade e a prioridade?

  • Os testadores geralmente propõem severidade, pois observaram o comportamento e compreenderam o impacto no sistema.
  • Proprietários ou gerentes de produtos geralmente decidem a prioridade, pois avaliam os clientes, a receita e o roteiro.
  • Desenvolvedores adicionam informações sobre a causa, o risco de uma correção e quanto tempo levará.
  • As equipes de suporte trazem evidências de quantos clientes foram afetados e até que ponto.

As fontes e as equipes variam quanto a essas responsabilidades e, em uma pequena startup, uma pessoa pode fazer tudo isso. O que importa é que todos saibam quem toma a decisão final, para que as divergências terminem com uma decisão.

Como avaliar um bug

Quando não tiver certeza, resolva essas questões.

Para gravidade:

  1. Ele perde ou corrompe dados ou expõe informações privadas?
  2. Isso impede o funcionamento de uma função principal?
  3. Existe uma solução alternativa e um usuário normal poderia encontrá-la?
  4. Quanto do recurso é afetado?

Para prioridade:

  1. Quantos usuários são afetados e quais?
  2. Custa dinheiro ou cria riscos legais ou de conformidade?
  3. Um lançamento, demonstração ou venda está chegando?
  4. Quão visível é isso e pode prejudicar sua reputação?
  5. Bloqueia outros trabalhos, como testes?

Executando triagem de bugs

A triagem é a reunião regular onde uma equipe analisa novos bugs e decide o que acontece a seguir. Um formato simples funciona bem:

  1. Preparar. O testador garante que cada novo bug tenha etapas claras, evidências e gravidade proposta.
  2. Confirme. Verifique se pode ser reproduzido e não é duplicado.
  3. Decida. Combine a gravidade, defina uma prioridade e atribua um proprietário.
  4. Feche o ciclo. Rejeite, adie ou agende cada bug e registre o motivo.

Seja curto e frequente. Durante os últimos dias antes da liberação, é comum uma triagem diária de 15 minutos. A gravidade e a prioridade também influenciam sua decisão de lançamento, portanto, defina regras antecipadamente, como “nenhum bug S1 ou S2 aberto no lançamento”, como parte de seus critérios de saída.

Gravidade e prioridade em um relatório de bug

Uma entrada curta e clara ajuda todos a tomar uma boa decisão:

Title:    Checkout returns error 500 when a coupon is applied
Severity: S1 - blocks purchase, no workaround
Priority: P1 proposed - sale starts Friday
Build:    2.14.0, production
Reach:    All customers using a coupon (around 30% of orders)
Steps:    1. Add an item  2. Apply SAVE10  3. Click Pay
Result:   Error 500 and no order is created
Expected: Order is created with the discount applied

Esses números são exemplos. Em um relatório real, use números medidos em seus registros e explique seu raciocínio. Saiba mais em nosso guia sobre como escrever um relatório de bug. Também ajuda saber o que significam os códigos de erro, portanto, mantenha nossa folha de dicas sobre códigos de status HTTP à mão.

Erros comuns

  • Tratá-los como o mesmo campo. Se os dois sempre corresponderem, você estará perdendo informações úteis.
  • Inflar a severidade para chamar a atenção. Uma vez que tudo é crítico, nada o é.
  • Deixar os testadores definirem a prioridade sozinhos. Eles raramente têm uma visão completa do negócio.
  • Nunca revise o backlog. As prioridades ficam obsoletas, então verifique novamente os bugs antigos regularmente.
  • Não há definições escritas. Sem elas, as pessoas aplicam rótulos de maneira diferente e você acaba debatendo palavras.
  • Ignorar acúmulos de baixa gravidade. Cinquenta problemas menores podem fazer um produto parecer quebrado, mesmo que nenhum deles seja sério por si só.

Considerações finais

Mantenha as duas questões separadas: quão ruim é e quando deve ser corrigido? Combine as definições escritas para cada nível e deixe claro quem decide. Na próxima etapa, pegue os dez bugs mais antigos do seu rastreador e reavalie-os usando as perguntas acima. Você provavelmente encontrará alguns que deveriam ser movidos e outros que deveriam ser fechados.

Perguntas frequentes

Qual é a diferença entre gravidade e prioridade?

Gravidade é o quanto um defeito prejudica o sistema. A prioridade é a urgência com que deve ser corrigido. Um é sobre o impacto técnico e o outro é sobre a urgência do negócio.

Um bug pode ter baixa gravidade e alta prioridade?

Sim. Um nome de empresa digitado incorretamente na página inicial não quebra nada, mas é altamente visível, portanto, uma equipe pode querer corrigi-lo imediatamente.

Um bug pode ter alta gravidade e baixa prioridade?

Sim. Uma falha em um recurso legado raramente usado é tecnicamente grave, mas com poucos usuários afetados e uma boa alternativa, pode esperar.

Quem define a gravidade e a prioridade?

Os testadores geralmente propõem a severidade, e os proprietários ou gerentes do produto geralmente decidem a prioridade. Muitas equipes finalizam ambos juntos durante uma reunião de triagem de bugs.

O que deve ser corrigido primeiro: alta gravidade ou alta prioridade?

Corrija em ordem de prioridade, pois a prioridade é o que decide a fila. A gravidade é uma informação importante, portanto, bugs graves geralmente recebem alta prioridade.

Continue aprendendo

Trabalhe com Stack Quora

Precisa de ajuda com testes, WordPress ou SEO?

Ajudamos as equipes a fornecer software melhor e a expandir seus sites. Conte-nos no que você está trabalhando e sugeriremos um próximo passo claro.

Continue lendo

Mais guias sobre testes, IA e desenvolvimento moderno

Gostou deste artigo? Escolha um tópico e vá direto para nossos tutoriais mais recentes.

Inteligência artificial

Explicação das alucinações de IA: por que os modelos de linguagem inventam as coisas e como reduzi-las

Explicação das alucinações de IA: o que são, por que os modelos de linguagem as produzem, tipos comuns, como reduzi-las com aterramento e instruções…

Leia o artigo →
DevOps

Variáveis de ambiente explicadas: arquivos .env, segredos e configuração bem feitos

Variáveis de ambiente explicadas com exemplos de Python que executamos: leitura e configuração, por que cada valor é uma string, arquivos .env, hera…

Leia o artigo →
Desenvolvimento de software

Explicação da limitação de taxa de API: algoritmos, cabeçalhos e tratamento de erros 429

Limitação de taxa de API explicada com uma simulação que executamos: token bucket, janela fixa, janela deslizante, 429 respostas, cabeçalhos de limi…

Leia o artigo →
Automação de testes

Zombando em Python: unittest.mock, patch e os erros que fazem os testes mentirem

Zombaria em Python com unittest.mock, testado: Mock e return_value, side_effect, patch onde um nome é usado, especificação e autospec, zombaria de d…

Leia o artigo →
Teste de software

Cobertura de código explicada: cobertura de linha versus filial e o que 100% realmente significa

Cobertura de código explicada com uma execução cobertura.py real: cobertura de linha, ramal e condição, leitura de um relatório, por que 100% de cob…

Leia o artigo →
Bancos de dados e SQL

DELETE vs TRUNCATE vs DROP em SQL: diferenças, reversão e quando usar cada um

DELETE vs TRUNCATE vs DROP explicado com SQL testado: o que cada um remove, rollback, aciona, redefinição de identidade, velocidade e como PostgreSQ…

Leia o artigo →
Bancos de dados e SQL

Exibições SQL explicadas: crie, use e evite as armadilhas, com exemplos

Visualizações SQL explicadas com consultas que executamos: criação de uma visualização, resultados ao vivo, ocultação de colunas, desempenho, visual…

Leia o artigo →
Desenvolvimento de software

Interface TypeScript vs tipo: diferenças reais, testadas com o compilador

Interface TypeScript versus tipo, verificada com o compilador real: o que ambos podem fazer, o que apenas um pode fazer, mesclagem de declarações, e…

Leia o artigo →
Desenvolvimento de software

Python *args e **kwargs explicados: funções flexíveis com exemplos claros

Python *args e **kwargs explicados com o código que executamos: empacotamento e descompactação, ordem dos parâmetros, argumentos somente de palavras…

Leia o artigo →
Desenvolvimento de software

Funções Python Lambda: sintaxe, usos reais e quando não usá-los

Funções lambda do Python explicadas com o código que executamos: sintaxe, classificação com chave, mapa e filtro, fechamentos, armadilha de ligação …

Leia o artigo →
Inteligência artificial

O que são agentes de IA? Como eles funcionam, com um loop de agente simples que você pode executar

O que são agentes de IA? Um guia simples para o loop do agente, ferramentas, memória e proteções, com um pequeno loop Python que executamos, riscos …

Leia o artigo →
DevOps

Monitoramento versus observabilidade: a verdadeira diferença, com logs, métricas e rastreamentos

Explicação do monitoramento versus observabilidade: falhas conhecidas e desconhecidas, logs, métricas e rastreamentos, um passo a passo do incidente…

Leia o artigo →
DevOps

Docker Volumes vs Bind Mounts: persista os dados do contêiner da maneira certa

Volumes Docker versus montagens de ligação explicadas: por que os dados do contêiner desaparecem, volumes nomeados, montagens de ligação, tmpfs, exe…

Leia o artigo →
Automação de testes

TDD vs BDD: principais diferenças, um recurso criado de ambas as maneiras e quando usar cada um

TDD vs BDD explicado com um recurso de desconto construído em ambos os sentidos: refatoração vermelho-verde com o código que executamos, cenários da…

Leia o artigo →
Teste de software

Teste de aceitação do usuário (UAT): processo, lista de verificação e exemplos reais

Explicação do teste de aceitação do usuário: quem o executa, como ele difere do controle de qualidade, um processo de sete etapas, um modelo de caso…

Leia o artigo →
Bancos de dados e SQL

Valores SQL NULL explicados: IS NULL, COALESCE, NULLIF e as armadilhas a serem evitadas

Valores SQL NULL explicados com consultas que executamos: lógica de três valores, IS NULL, COALESCE, NULLIF, como agregações, junções e classificaçã…

Leia o artigo →
Bancos de dados e SQL

Instrução SQL CASE WHEN: sintaxe, exemplos reais e erros comuns

SQL CASE WHEN explicado com consultas que executamos: formulários simples e pesquisados, ordem de condição, pivôs com SUM, truques COUNT, classifica…

Leia o artigo →
Desenvolvimento de software

O que é JWT? JSON Web Tokens explicados com um exemplo prático

O que é JWT? JSON Web Tokens explicados: as três partes, um token construído e adulterado no código que executamos, JWT vs sessões, armazenamento, t…

Leia o artigo →
Desenvolvimento de software

Loop de eventos JavaScript explicado: pilha de chamadas, microtarefas e temporizadores com exemplos

O loop de eventos JavaScript explicado com o código que executamos: pilha de chamadas, filas de tarefas e microtarefas, por que setTimeout 0 não é i…

Leia o artigo →
Desenvolvimento de software

Geradores Python e rendimento explicado: economize memória com exemplos reais

Geradores Python e rendimento explicados com o código que executamos: como eles pausam e reiniciam, medem economia de memória, pipelines, sequências…

Leia o artigo →
Inteligência artificial

O que são incorporações? Similaridade de vetores e cossenos explicada de forma simples

O que são incorporações? Um guia em linguagem simples para vetores, similaridade de cossenos e pesquisa semântica, com um pequeno exemplo que execut…

Leia o artigo →
DevOps

Implantação azul-verde vs canário: diferenças, compensações e como escolher

Explicação da implantação azul-verde versus canário: como cada um funciona, custo, risco e reversão, agrupamento estável de usuários que testamos, m…

Leia o artigo →
Automação de testes

Testes instáveis: o que os causa e como corrigi-los para sempre

Testes instáveis explicados com demonstrações que executamos: as principais causas, como confirmar e diagnosticar uma, soluções adequadas para tempo…

Leia o artigo →
Teste de software

Teste de carga versus teste de estresse: diferenças, métricas e exemplos k6

Teste de carga versus teste de estresse explicado: o que cada um prova, testes de pico e absorção, as métricas que importam, por que as médias engan…

Leia o artigo →
Teste de software

Caso de teste versus cenário de teste: principais diferenças, exemplos e quando usar cada um

Caso de teste vs cenário de teste explicado: definições claras, uma tabela lado a lado, um recurso de redefinição de senha retirado de cenários para…

Leia o artigo →
Bancos de dados e SQL

Otimização de consultas SQL: leia planos de execução e corrija consultas lentas, com intervalos

Otimização de consulta SQL testada em um milhão de linhas: leia planos de execução, adicione os índices corretos, corrija filtros não sargáveis, use…

Leia o artigo →
Bancos de dados e SQL

SQL UNION vs UNION ALL: diferenças, exemplos e desempenho testado

SQL UNION vs UNION ALL explicado com consultas que executamos: duplicatas, as regras que ambos seguem, um bug de dados real, desempenho medido, INTE…

Leia o artigo →
Desenvolvimento de software

Tutorial da API JavaScript Fetch: GET, POST, tratamento de erros e tempos limite

Um tutorial da API JavaScript Fetch testado em um servidor local: GET e POST, por que 404 não lança, um auxiliar reutilizável, strings de consulta, …

Leia o artigo →
Desenvolvimento de software

Manipulação de arquivos Python: leitura, gravação, CSV, JSON e pathlib com exemplos

Manipulação de arquivos Python explicada com código que executamos: modos abertos, com, leitura de arquivos grandes, CSV, JSON, pathlib, arquivos bi…

Leia o artigo →
Desenvolvimento de software

Classes e objetos Python: tutorial OOP com exemplos reais

Classes e objetos Python explicados com código que executamos: __init__, métodos, atributos de classe vs instância, herança, propriedades, métodos d…

Leia o artigo →
Inteligência artificial

O que é um modelo de linguagem grande? Como funcionam os LLMs, explicado sem exageros

O que é um modelo de linguagem grande? LLMs explicados em linguagem simples: tokens, incorporações, atenção, treinamento, temperatura e janelas de c…

Leia o artigo →
DevOps

Comandos Linux para iniciantes: o guia essencial do terminal com exemplos

Comandos Linux para iniciantes, agrupados por tarefa: navegação, arquivos, visualização de logs, grep, pipes, permissões, processos e arquivos, com …

Leia o artigo →
Automação de testes

Selenium vs Playwright: principais diferenças, código comparado e qual escolher

Selenium vs Playwright comparado: arquitetura, espera, suporte a navegador e linguagem, depuração, o mesmo teste em ambas as ferramentas, conselhos …

Leia o artigo →
Teste de software

Particionamento de equivalência: técnica de design de teste explicada com exemplos resolvidos

Explicação do particionamento de equivalência: como encontrar partições válidas e inválidas, exemplos resolvidos para idades, senhas e cupons, teste…

Leia o artigo →
Teste de software

Gravidade vs Prioridade em Testes de Software: Diferenças, Matriz e Exemplos Reais

Explicação da gravidade versus prioridade em testes de software: definições claras, uma matriz de quatro vias com exemplos, escalas de nível, quem d…

Leia o artigo →
Bancos de dados e SQL

Tutorial de subconsultas SQL: tipos, subconsultas correlacionadas e EXISTS com exemplos

Um tutorial de subconsultas SQL com consultas que executamos: subconsultas escalares, IN, FROM e SELECT, subconsultas correlacionadas, EXISTS, a arm…

Leia o artigo →
Bancos de dados e SQL

Transações SQL e ACID explicados: COMMIT, ROLLBACK e níveis de isolamento

Transações SQL e ACID explicadas com uma transferência bancária que executamos: COMMIT, ROLLBACK, savepoints, locks, níveis de isolamento, leituras …

Leia o artigo →
Desenvolvimento de software

Git merge vs rebase: diferenças, exemplos e quando usar cada um

Git merge vs rebase explicado com saída real do log, uma tabela comparativa, a regra de ouro do rebase e um fluxo de trabalho seguro para equipes.

Leia o artigo →
Desenvolvimento de software

List comprehension em Python: sintaxe, exemplos e quando evitar

List comprehension em Python explicada: sintaxe, filtros, if-else, laços aninhados, tempos medidos e quando um laço for comum é a melhor escolha.

Leia o artigo →
Bancos de dados e SQL

SQL JOIN explicado com exemplos (Inner, Left, Right, Full)

Entenda os joins SQL passo a passo com tabelas e consultas de exemplo: INNER, LEFT, RIGHT, FULL, CROSS e SELF, além de erros comuns e dicas de desem…

Leia o artigo →