Skip to content

Guia BA

Critérios de aceitação: do vago ao testável

Como escrever critérios de aceitação que o time realmente consegue construir e testar.

Surya · 8 de agosto de 2026 · 4 min de leitura · 10 práticas

Requisitos

Para Business Analysts, Profissionais de QA revisando requisitos antes da sprint, Desenvolvedores que herdam tickets ambíguos e Product Owners escrevendo suas próprias User Stories.

"O sistema deve processar a operação corretamente." Parece certo numa primeira leitura. Aí o dev pergunta o que "corretamente" significa, o QA pergunta como vai provar isso, e a frase para de parecer certa — passa a soar como algo que três pessoas estão prestes a interpretar de três jeitos diferentes. Critérios de aceitação existem para eliminar exatamente esse tipo de interpretação. Não é sobre descrever a intenção de forma bonita. É sobre descrever o comportamento com precisão suficiente para que dois desenvolvedores, trabalhando sozinhos, construam a mesma coisa a partir da mesma frase.

01

Ajuste 01

Diga o que deve ser observável, não o que deve ser verdade

"Corretamente" não é um comportamento. É uma sensação que todo mundo compartilha até deixar de compartilhar.

A reescrita

O sistema deve processar a operação corretamente.
Dado uma operação casada válida, quando o processamento de liquidação é executado, então uma instrução de liquidação é criada.

Por que isso ajuda

A reescrita não diz mais coisas. Ela diz algo que uma pessoa realmente consegue verificar — passou ou não passou, sem precisar de discussão.

02

Ajuste 02

Dado / Quando / Então é uma disciplina, não uma regra de formatação

Cada parte cumpre uma função específica. Pule uma delas e o critério deixa de ser testável.

O fluxo

Dado — a condição inicialQuando — a ação que disparaEntão — o resultado observável

Por que isso ajuda

A maioria dos critérios vagos não tem uma dessas três partes, geralmente o "Dado". Sem uma condição inicial, "quando X acontece, então Y" pode significar quase qualquer coisa.

03

Ajuste 03

Escreva o fluxo negativo, não só o fluxo principal

Um critério que só descreve o sucesso não disse a ninguém como é o fracasso.

A reescrita

O sistema deve exibir a mensagem de erro apropriada.
Dado uma conta de liquidação inválida
Quando o processamento de liquidação é executado
Então a instrução é rejeitada
E o usuário vê a mensagem de validação configurada

Por que isso ajuda

"Mensagem de erro apropriada" não é uma mensagem. Alguém ainda vai ter que inventar o texto de verdade durante o teste — e esse é o pior momento para inventar isso.

04

Ajuste 04

Condições de limite são onde os bugs realmente moram

Ninguém quebra o sistema no meio de um intervalo. Quebra na borda.

Resumo

  • O que acontece exatamente no limite?
  • O que acontece uma unidade acima?
  • O que acontece uma unidade abaixo?
  • O que acontece em zero, vazio ou nulo?

Por que isso ajuda

"Ordens acima de R$1 milhão precisam de aprovação" parece completo até alguém perguntar sobre uma ordem de exatamente R$1.000.000,00. Essa pergunta deveria vir de você, não de um bug aberto em produção.

05

Ajuste 05

Defina o comportamento do erro, não só a existência dele

"Mostrar erro se inválido" descreve que algo acontece. Não descreve o quê.

A reescrita

Mostrar erro se inválido.
Rejeitar a requisição
Retornar um código de validação específico
Exibir a mensagem configurada para o usuário
Registrar o motivo da rejeição para auditoria

Por que isso ajuda

Quatro sistemas diferentes — UI, API, log, auditoria — precisam concordar sobre o que "inválido" realmente significa. Uma linha vaga deixa os quatro chutando cada um por conta própria.

06

Ajuste 06

Uma regra de negócio e um critério de aceitação não são a mesma frase

Uma descreve como o negócio funciona. A outra descreve como o sistema prova isso.

A diferença

Ordens acima de R$1 milhão exigem aprovação, então garanta que isso funcione.
Regra de negócio — como o negócio funciona: ordens acima de R$1 milhão exigem aprovação de um supervisor.
Critério de aceitação — como o sistema se comporta: dado um valor de ordem acima de R$1 milhão, quando o trader a envia, então a ordem entra no status Pendente de Aprovação.

Por que isso ajuda

Misturar os dois torna ambos mais difíceis de manter. Quando o limite mudar no ano que vem, você vai querer atualizar uma regra — não vasculhar scripts de teste atrás de cada frase que mencionou isso.

07

Ajuste 07

Adjetivos vagos são onde a ambiguidade se esconde à vista de todos

Cada um desses parece específico o bastante para passar na revisão. Nenhum deles é testável do jeito que está escrito.

"A página deve carregar rapidamente" é o caso clássico. Uma meta de performance mensurável é ótima quando existe uma meta de verdade — mas colar um número em toda frase só para soar preciso é um outro tipo de vagueza. Só adicione uma meta onde alguém consiga explicar por que aquele número, especificamente.

Resumo

  • corretamente
  • adequadamente
  • rapidamente
  • apropriadamente
  • normalmente
  • eficientemente
  • amigável ao usuário

Por que isso ajuda

Cada um desses acaba sendo redefinido por quem estiver testando, sob pressão de tempo, geralmente de um jeito diferente do que o negócio realmente quis dizer.

08

Ajuste 08

Deixe a implementação para quem vai implementar

Um critério que especifica tecnologia geralmente parou de especificar comportamento de negócio.

A reescrita

Use um cache Redis com TTL de 5 minutos para que a consulta de sessão seja rápida.
Dado uma sessão ativa, quando o usuário realiza qualquer ação em até 5 minutos após a última interação, então ele continua logado.

Por que isso ajuda

A regra dos 5 minutos é decisão do negócio. O Redis não é. Nomear a tecnologia no critério só garante que ele vai estar errado no dia em que a engenharia escolher outra.

09

Ajuste 09

Um critério, um comportamento

Um critério que tenta provar quatro coisas ao mesmo tempo não consegue falhar de forma limpa quando uma delas quebra.

A reescrita

Dado que uma operação é enviada, quando ela é validada e registrada e confirmada, então tudo deve funcionar, o usuário é notificado e o razão é atualizado.
CA1 — Dado uma operação válida, quando enviada, então é validada.
CA2 — Dado uma operação validada, quando registrada, então uma confirmação é gerada.
CA3 — Dado uma confirmação, quando criada, então o razão é atualizado.

Por que isso ajuda

Quando CA1 a CA3 existem separadamente, uma falha de teste aponta exatamente para um deles. A versão emaranhada só te diz que alguma coisa, em algum lugar, deu errado.

10

Ajuste 10

Envolva o QA na conversa enquanto você ainda está escrevendo

A pessoa que vai ter que provar que um critério falha é quem melhor sabe se isso é possível.

Por que isso ajuda

Um critério que sobrevive a uma leitura do QA antes da sprint começar é um critério que não vai voltar como pergunta de esclarecimento no meio da sprint, quando custa mais caro responder.

Dica — Se o QA lê um critério e não consegue descrever como faria ele falhar, isso não é um problema do QA — é um critério inacabado.

"Corretamente" não é um requisito.

É a promessa de um.

Todo critério de aceitação deve passar por um teste: dois desenvolvedores, trabalhando sozinhos, construiriam a mesma coisa a partir dele? Se a resposta depende dos dois chutarem do mesmo jeito, ainda não está pronto.

Leve isso com você

Checklist de qualidade dos critérios de aceitação

CHECKLIST DE QUALIDADE DOS CRITÉRIOS DE ACEITAÇÃO

[ ] Observável
[ ] Testável
[ ] Específico
[ ] Regra de negócio compreendida
[ ] Fluxo principal coberto
[ ] Fluxo negativo coberto
[ ] Condições de limite consideradas
[ ] Comportamento de erro definido
[ ] Expectativas de dados claras
[ ] Sem adjetivos vagos
[ ] Sem suposições ocultas

Receba novos guias em primeira mão.