SkillProgramaçãoQA
Revisão de Cobertura de Testes
Avalia se os testes de um PR cobrem adequadamente comportamentos novos, edge cases e cenários de falha. Use ao revisar PRs que adicionam ou modificam lógica de negócio, verificando também a robustez dos testes.
Ações
PerfilDev
ProfundidadeMédia
IdiomaInglês (skill original)
Objetivo
Em uma frase.
Avaliar se os testes do PR cobrem adequadamente o comportamento novo ou modificado — verificando fluxos principais, edge cases e cenários de falha — e julgar se os testes existentes são robustos ou frágeis.
Aplicação
Quando
faz sentido.
Usar
- Como etapa de revisão de testes de qualquer PR que adiciona ou modifica lógica de negócio.
- Quando há suspeita de que testes foram escritos só para aumentar o percentual de cobertura.
- Quando o PR altera código em módulos historicamente propensos a regressão.
Não usar
- Para PRs de chore (formatação, configuração) sem lógica nova.
- Para escrever os testes faltantes — use a skill writing-tests.
- Antes de executar reviewing-logic-and-correctness — os caminhos de lógica mapeados lá são a referência aqui.
Prompt
Instruções
para a IA.
### Passo 1 — Mapeie os comportamentos novos ou modificados
Com base nos caminhos de lógica de
### Passo 2 — Verifique cobertura dos fluxos principais
Para cada comportamento principal, confirme se há um teste ponta a ponta, se ele verifica o resultado correto (não só ausência de exceção) e se usa inputs representativos — não apenas o caso mais simples.
### Passo 3 — Verifique edge cases e cenários de falha
Confira testes para input nulo/vazio, valores limite, falhas de dependências externas, exceções esperadas (por tipo e mensagem) e comportamento de rollback/cleanup.
### Passos 4 e 5 — Qualidade e rastreabilidade
Sinalize testes frágeis (acoplados à implementação, dependentes de ordem, mock em excesso, assertions vagas, dependentes de timing, sem assertion). Confirme nomes que descrevem o comportamento testado. Lembre-se: cobertura se mede em comportamentos cobertos, não em percentual de linhas — 100% de line coverage com assertions vagas cria falsa segurança. Declare "Test coverage is adequate" quando estiver satisfatória.
Com base nos caminhos de lógica de
reviewing-logic-and-correctness, liste o que precisa de cobertura: cada novo caminho de execução, cada comportamento alterado, cada edge case e cada cenário de erro. Esse mapa é a referência para avaliar suficiência.### Passo 2 — Verifique cobertura dos fluxos principais
Para cada comportamento principal, confirme se há um teste ponta a ponta, se ele verifica o resultado correto (não só ausência de exceção) e se usa inputs representativos — não apenas o caso mais simples.
### Passo 3 — Verifique edge cases e cenários de falha
Confira testes para input nulo/vazio, valores limite, falhas de dependências externas, exceções esperadas (por tipo e mensagem) e comportamento de rollback/cleanup.
### Passos 4 e 5 — Qualidade e rastreabilidade
Sinalize testes frágeis (acoplados à implementação, dependentes de ordem, mock em excesso, assertions vagas, dependentes de timing, sem assertion). Confirme nomes que descrevem o comportamento testado. Lembre-se: cobertura se mede em comportamentos cobertos, não em percentual de linhas — 100% de line coverage com assertions vagas cria falsa segurança. Declare "Test coverage is adequate" quando estiver satisfatória.
Casos
Exemplos
de uso.
**Contexto:** um PR implementa desconto progressivo por tier de cliente.
```typescript
function calculateDiscount(orderTotal: number, customerTier: string): number {
if (customerTier === 'gold') return orderTotal * 0.15;
else if (customerTier === 'silver') return orderTotal * 0.10;
else return orderTotal * 0.05;
}
```
Os testes incluídos cobrem apenas os três tiers (`gold`, `silver`, `regular`) com `orderTotal = 100`.
**Saída esperada do agente**
**Fluxos principais:** cobertos — os três branches têm teste.
**Gaps identificados:**
- **`orderTotal = 0`** (Linha 3): caso válido (pedido vazio); o desconto deve ser 0. Severidade: média.
- **`orderTotal` negativo** (Linha 3): sem validação, geraria desconto negativo (acréscimo). Severidade: média.
- **`customerTier` desconhecido ou vazio** (Linha 3): o `else` final aplica 5% para `null`, `undefined`, string vazia ou typo como `'Gold'` (case sensitive), mascarando bugs de carregamento. Severidade: alta — comportamento incorreto silencioso.
**Qualidade dos testes existentes:** robustos — orientados a comportamento, assertions específicas, nomes claros. A falha está nos edge cases, não na abordagem.Constelação
Onde
ela vive.
Bundles que incluem
Execução
Como usar
com IA.
- 01Copie a skill (botão "Copiar skill para IA", no topo): o texto copiado já é a skill completa, não um resumo.
- 02Abra o Claude ou Claude Code e cole — a IA recebe todas as instruções e fica pronta para a tarefa.
- 03Prefere usar como arquivo reutilizável? Baixe o .zip e coloque o
SKILL.mdem.claude/skills/(Claude Code) ou anexe o arquivo no Claude (claude.ai).