Objetivo
Orientar uma analise pragmatica de cobertura para encontrar risco real, nao apenas aumentar percentual.
Cobertura responde o que foi exercitado, mas nao garante qualidade. Use esta skill para priorizar testes em codigo com maior risco de mudanca, complexidade ou criticidade operacional.
Quando usar
- O usuario mencionar cobertura, coverage, gate, gaps, hotspots, CRAP score ou risco de refatoracao.
- A cobertura estiver travada ou abaixo do gate esperado.
- For necessario decidir onde adicionar testes primeiro.
- Um PR alterar codigo complexo com pouca cobertura.
- Houver duvida se determinada area esta segura para refatorar.
Quando nao usar
- Escrever testes novos sem analise de cobertura.
- Corrigir falha funcional de teste sem relacao com coverage.
- Rodar testes apenas para validar build.
- Inflar cobertura tocando codigo sem assert significativo.
- Instalar ferramenta global, pacote ou script sem necessidade comprovada.
Regras obrigatorias
- Nao altere testes apenas para aumentar percentual.
- Nao aceite teste sem assert significativo como melhoria real de cobertura.
- Nao reduza o threshold de cobertura para contornar falha sem instrucao explicita.
- Nao adicione pacote com
Version=; use Central Package Management.
- Nao instale ferramentas globais se o repositorio ja tiver scripts ou ferramentas locais suficientes.
- Nao substitua analise de risco por ranking puramente numerico.
- Considere complexidade, criticidade, frequencia de mudanca, comportamento publico e impacto operacional.
Fontes e arquivos relevantes
Consulte quando existirem ou forem relevantes:
AGENTS.md
coverlet.runsettings
test.ps1
test.sh
Directory.Packages.props
docs/development/test-coverage.md
- projetos em
tests/*
- relatorios Cobertura, cobertura HTML ou output do pipeline fornecido pelo usuario
Processo
- Identifique se a tarefa pede diagnostico, priorizacao ou mudanca em testes.
- Leia a estrategia de testes do repositorio antes de propor ferramenta nova.
- Use o relatorio de cobertura existente quando fornecido.
- Se for necessario gerar cobertura, prefira os comandos oficiais do projeto.
- Classifique gaps por risco:
- alto: codigo complexo, regra de negocio, persistencia, mensageria, seguranca, transacao, idempotencia ou erro operacional;
- medio: fluxo de aplicacao, validacao relevante, mapeamento com contrato publico ou comportamento transversal;
- baixo: DTO simples, configuracao declarativa, glue code trivial ou codigo gerado.
- Priorize testes que aumentem confianca comportamental, nao apenas linhas executadas.
- Quando sugerir novos testes, indique comportamento, cenario e motivo.
- Quando encontrar cobertura superficial, aponte o problema explicitamente.
- Valide com teste local ou comando proporcional quando a tarefa envolver alteracao.
Comandos recomendados
Para validacao completa com cobertura conforme o projeto:
./test.ps1
No Linux/macOS:
./test.sh
Para teste direto da solution com runsettings:
dotnet test ./LedgerService.slnx --configuration Release --settings ./coverlet.runsettings
Saida esperada
- Diagnostico objetivo da cobertura.
- Lista priorizada de hotspots ou gaps relevantes.
- Separacao entre cobertura baixa aceitavel e cobertura baixa arriscada.
- Recomendacoes de testes por comportamento.
- Validacoes executadas ou motivo para nao executar.
Criterio de qualidade
Um bom resultado nao e apenas aumentar percentual. Um bom resultado e reduzir risco real de regressao em areas importantes do sistema.
1---2name: coverage-analysis3description: Use esta skill para analisar cobertura de testes neste repositorio .NET, identificar gaps relevantes, hotspots de risco, classes/metodos perigosos de modificar e prioridades de teste. Nao use para inflar cobertura, alterar testes sem validar comportamento ou instalar ferramentas sem necessidade concreta.4license: MIT5---67# Objetivo89Orientar uma analise pragmatica de cobertura para encontrar risco real, nao apenas aumentar percentual.1011Cobertura responde o que foi exercitado, mas nao garante qualidade. Use esta skill para priorizar testes em codigo com maior risco de mudanca, complexidade ou criticidade operacional.1213# Quando usar1415- O usuario mencionar cobertura, coverage, gate, gaps, hotspots, CRAP score ou risco de refatoracao.16- A cobertura estiver travada ou abaixo do gate esperado.17- For necessario decidir onde adicionar testes primeiro.18- Um PR alterar codigo complexo com pouca cobertura.19- Houver duvida se determinada area esta segura para refatorar.2021# Quando nao usar2223- Escrever testes novos sem analise de cobertura.24- Corrigir falha funcional de teste sem relacao com coverage.25- Rodar testes apenas para validar build.26- Inflar cobertura tocando codigo sem assert significativo.27- Instalar ferramenta global, pacote ou script sem necessidade comprovada.2829# Regras obrigatorias3031- Nao altere testes apenas para aumentar percentual.32- Nao aceite teste sem assert significativo como melhoria real de cobertura.33- Nao reduza o threshold de cobertura para contornar falha sem instrucao explicita.34- Nao adicione pacote com `Version=`; use Central Package Management.35- Nao instale ferramentas globais se o repositorio ja tiver scripts ou ferramentas locais suficientes.36- Nao substitua analise de risco por ranking puramente numerico.37- Considere complexidade, criticidade, frequencia de mudanca, comportamento publico e impacto operacional.3839# Fontes e arquivos relevantes4041Consulte quando existirem ou forem relevantes:4243- `AGENTS.md`44- `coverlet.runsettings`45- `test.ps1`46- `test.sh`47- `Directory.Packages.props`48- `docs/development/test-coverage.md`49- projetos em `tests/*`50- relatorios Cobertura, cobertura HTML ou output do pipeline fornecido pelo usuario5152# Processo53541. Identifique se a tarefa pede diagnostico, priorizacao ou mudanca em testes.552. Leia a estrategia de testes do repositorio antes de propor ferramenta nova.563. Use o relatorio de cobertura existente quando fornecido.574. Se for necessario gerar cobertura, prefira os comandos oficiais do projeto.585. Classifique gaps por risco:59 - alto: codigo complexo, regra de negocio, persistencia, mensageria, seguranca, transacao, idempotencia ou erro operacional;60 - medio: fluxo de aplicacao, validacao relevante, mapeamento com contrato publico ou comportamento transversal;61 - baixo: DTO simples, configuracao declarativa, glue code trivial ou codigo gerado.626. Priorize testes que aumentem confianca comportamental, nao apenas linhas executadas.637. Quando sugerir novos testes, indique comportamento, cenario e motivo.648. Quando encontrar cobertura superficial, aponte o problema explicitamente.659. Valide com teste local ou comando proporcional quando a tarefa envolver alteracao.6667# Comandos recomendados6869Para validacao completa com cobertura conforme o projeto:7071```powershell72./test.ps173```7475No Linux/macOS:7677```bash78./test.sh79```8081Para teste direto da solution com runsettings:8283```bash84dotnet test ./LedgerService.slnx --configuration Release --settings ./coverlet.runsettings85```8687# Saida esperada8889- Diagnostico objetivo da cobertura.90- Lista priorizada de hotspots ou gaps relevantes.91- Separacao entre cobertura baixa aceitavel e cobertura baixa arriscada.92- Recomendacoes de testes por comportamento.93- Validacoes executadas ou motivo para nao executar.9495# Criterio de qualidade9697Um bom resultado nao e apenas aumentar percentual. Um bom resultado e reduzir risco real de regressao em areas importantes do sistema.