“Cenário de teste” e “caso de teste” são usados como se significassem a mesma coisa. Eles não significam. Confundi-los faz com que os planos de teste se tornem muito vagos para serem executados ou muito detalhados para serem lidos. Um descreve o que testar; o outro descreve exatamente como. Entenda a relação corretamente e sua cobertura se tornará auditável e executável.
Este guia define cada termo, apresenta as diferenças lado a lado e mostra como os dois funcionam juntos em um fluxo de trabalho real de teste de API usando Apidog.
O que é um cenário de teste?
Um cenário de teste é uma declaração de alto nível de algo que vale a pena testar. Ele nomeia um comportamento ou condição sem especificar as etapas exatas, entradas ou valores esperados.
Pense nele como um título. Para um checkout de e-commerce, os cenários podem ser:
- Verificar checkout para um usuário registrado com cartão salvo
- Verificar checkout para um usuário convidado
- Verificar checkout quando um item fica sem estoque durante a compra
- Verificar checkout quando o pagamento é recusado
Cada linha diz *o que* validar e *por que* é importante para o negócio. Nenhuma delas diz qual endpoint chamar ou qual payload enviar. Um cenário é escrito do ponto de vista do usuário ou do requisito, para que permaneça legível por gerentes de produto e engenheiros.
Cenários respondem a uma pergunta: pensamos em tudo o que deveria funcionar? Eles são o mapa de cobertura. Se um cenário está faltando, nenhuma quantidade de casos de teste detalhados cobrirá essa lacuna.
O que é um caso de teste?
Um caso de teste é a verificação concreta e executável que se encontra sob um cenário. Ele especifica a entrada exata, a pré-condição, a ação e o resultado esperado, com precisão suficiente para que duas pessoas que o executem obtenham o mesmo resultado.
Considere o cenário “verificar checkout para um usuário convidado”. Ele se desdobra em casos como:
POST /orderscom um payload de convidado válido retorna201e umorder_idPOST /orderssem um endereço de entrega retorna400e umvalidation_errorPOST /orderscom um SKU fora de estoque retorna409eerror: out_of_stock
Cada caso nomeia o endpoint, o corpo, o status esperado e os campos de resposta esperados. É específico o suficiente para ser automatizado. Se você deseja a anatomia completa campo a campo de um caso, como escrever casos de teste de API cobre o modelo em detalhes, e caso de teste vs script de teste esclarece onde o código executável se encaixa.
A característica definidora de um caso de teste é a precisão. “O checkout funciona” é, na melhor das hipóteses, um fragmento de cenário. “POSTar um pedido de convidado válido, esperar 201 com um order_id não vazio” é um caso de teste.
As principais diferenças
Os dois conceitos diferem em várias dimensões. Esta tabela é a versão resumida.
| Dimensão | Cenário de teste | Caso de teste |
|---|---|---|
| Nível | Alto nível, o que testar | Baixo nível, como testar |
| Detalhe | Breve, uma linha | Passo a passo com dados |
| Foco | Objetivo de negócio ou funcional | Execução técnica |
| Entradas | Não especificado | Payloads e parâmetros exatos |
| Resultado esperado | Implicado | Declarado precisamente (status, corpo, tempo) |
| Público | Produto, QA, engenharia | Testadores e ferramentas de automação |
| Contagem | Poucos por funcionalidade | Muitos por cenário |
| Criação | Durante o planejamento do teste | Após os cenários serem acordados |
A relação é hierárquica. Um cenário gera vários casos. O cenário controla a amplitude da cobertura; os casos controlam a profundidade e o rigor. Um modo de falha comum é escrever dezenas de casos detalhados sem um mapa de cenários acima deles, o que torna impossível saber se a funcionalidade está totalmente coberta ou apenas intensamente testada em um canto.
Outra forma de ver: um cenário pode ser marcado como “coberto” ou “não coberto”. Um caso de teste só pode ser marcado como “aprovado” ou “reprovado”. Você precisa de ambos os estados para gerenciar a qualidade.
Como cenários e casos funcionam juntos
Um fluxo de trabalho prático avança do geral para o específico em cinco etapas.
1. Identificar cenários a partir dos requisitos. Leia a especificação ou a documentação da API e liste todos os comportamentos que valem a pena verificar, incluindo os caminhos de falha (unhappy paths). É aqui que a cobertura ausente é identificada, então dedique tempo a esta etapa.
2. Definir o objetivo de cada cenário. Declare o que “concluído” significa. Para “verificar checkout de convidado”, o objetivo é que um convidado possa fazer um pedido e receber uma confirmação, enquanto pedidos inválidos são rejeitados de forma limpa.
3. Escrever casos de teste para cada cenário. Expanda cada cenário em casos concretos com entradas e resultados esperados. Cubra o caminho feliz (happy path), cada falha de validação e as condições de borda relevantes.
4. Revisar a completude. Revise a estrutura. Cada cenário possui pelo menos um caso de caminho feliz e um caso negativo? Cada código de status documentado aparece em algum resultado esperado? Lacunas encontradas aqui são baratas; lacunas encontradas em produção não são.
5. Executar e rastrear resultados. Execute os casos, registre aprovação e reprovação por caso, e consolide os resultados no nível do cenário para que as partes interessadas vejam a cobertura, e não apenas uma contagem de marcas de verificação verdes.
Para equipes orientadas a comportamento, os cenários se encaixam naturalmente no formato Given-When-Then do Gherkin; o guia Gherkin para teste de API BDD mostra como essa estrutura mantém os cenários legíveis enquanto permanecem executáveis.
Um exemplo prático: do cenário aos casos
Considere uma API para um aplicativo de notas, com um único comportamento que vale a pena testar: um usuário pode criar uma nota. Esse é o cenário.
Cenário: um usuário pode criar uma nota. Uma linha. Pertence ao plano de teste, legível por qualquer pessoa. Não menciona endpoints, payloads ou códigos de status, e não deveria.
Agora expanda-o em casos. Cada caso é uma verificação executável com entradas exatas e um resultado esperado exato.
- Caso 1, caminho feliz.
POST /notescom{"title": "Compras", "body": "leite, ovos"}e um token válido. Esperar201, um corpo de resposta com umidnão vazio,titleigual aCompras, e um timestampcreated_at. Resposta em menos de 600 ms. - Caso 2, campo obrigatório ausente.
POST /notescom{"body": "leite, ovos"}e um token válido. Esperar400,errorigual avalidation_error, edetailsnomeando o campotitle. - Caso 3, não autenticado.
POST /notescom um corpo válido e sem token. Esperar401e nenhumidna resposta. - Caso 4, payload muito grande.
POST /notescom umbodyde 2 MB. Esperar413e uma mensagem de erro clara.
Um cenário, quatro casos. O cenário disse *o que*; os casos disseram *como*, com precisão suficiente para que qualquer testador ou executor automatizado produza o mesmo veredicto. Se você adicionar posteriormente “um usuário pode anexar um arquivo a uma nota”, esse é um novo cenário, e ele gera seu próprio conjunto de casos. O plano cresce de forma estruturada e auditável, em vez de se tornar uma pilha plana de verificações.
Construindo cenários e casos no Apidog
Apidog modela essa hierarquia diretamente, para que a estrutura em seu plano de teste corresponda à estrutura em suas ferramentas.
Um **cenário de teste** no Apidog é uma sequência ordenada de requisições de API, cada uma com suas próprias asserções. Você o constrói visualmente: adicione os endpoints envolvidos no comportamento, encadeie-os para que a saída de uma requisição alimente a próxima (um login retorna um token, a próxima requisição o usa), e defina asserções em cada etapa.
Cada bloco de requisição-mais-asserções é efetivamente um **caso de teste**. Você verifica códigos de status, campos do corpo da resposta, conformidade do esquema e tempo de resposta clicando, sem escrever um script. O teste orientado a dados permite que um caso seja executado contra muitas linhas de entrada de um arquivo CSV ou JSON, de modo que um único caso negativo cubra cada combinação inválida.
Os cenários então se agrupam em conjuntos de teste (test suites) para execuções organizadas e repetíveis em toda a API. Você pode executar um conjunto localmente, em uma programação ou dentro de CI, e o Apidog produz um relatório que mostra os resultados tanto no nível do caso quanto no nível do cenário. Essa visão dupla é o retorno: os engenheiros veem qual caso falhou, e os líderes veem qual cenário está agora em risco.
Baixe o Apidog para construir seu primeiro cenário e ver a agregação de casos para cenários na prática.
Por que você precisa de ambos, não apenas um
As equipes às vezes tentam pular uma camada. Pular cenários e escrever apenas casos produz uma lista longa e plana sem um mapa de cobertura; você não consegue responder “testamos o checkout de convidado completamente?” sem reler cada caso. Pular casos e manter apenas cenários produz um plano que ninguém consegue executar consistentemente, porque “verificar checkout” significa algo diferente para cada testador.
As duas camadas também servem a leitores diferentes. Um gerente de produto lê cenários para confirmar que as coisas certas estão sendo testadas. Um engenheiro de automação lê os casos para construir os executores. Um relatório de teste que mostra apenas casos aprovados não diz nada à liderança sobre a cobertura; um que consolida os casos em cenários diz exatamente quais funcionalidades são seguras para serem lançadas.
Mantenha os cenários estáveis e os casos atualizados. Os cenários mudam apenas quando a intenção da funcionalidade muda. Os casos mudam sempre que o contrato da API muda. Quando você os trata como artefatos separados com ciclos de vida separados, seu plano de teste permanece preciso e de fácil manutenção.
Perguntas frequentes
Um cenário de teste é o mesmo que um conjunto de testes (test suite)? Não. Um cenário descreve um comportamento a ser testado. Um conjunto é uma coleção de testes executáveis agrupados para uma execução. Um conjunto pode conter os casos de muitos cenários. Veja conjunto de testes vs caso de teste.
Quantos casos de teste um cenário deve ter? O suficiente para cobrir o caminho feliz (happy path) mais todos os modos de falha que o cenário implica. Um cenário simples pode precisar de três ou quatro casos; um complexo precisa de mais.
Quem escreve cenários versus casos? Cenários são frequentemente elaborados em conjunto por produto e QA, já que codificam a intenção. Casos são geralmente escritos por QA ou desenvolvedores, pois codificam detalhes técnicos. O formato de especificação de caso de teste ajuda a manter a escrita de casos consistente.
Preciso de cenários se meus testes são automatizados? Sim. A automação executa casos, mas os cenários ainda respondem se os casos corretos existem. A automação sem um mapa de cobertura apenas falha mais rápido.
