AgentStack
Browse Sign in
Browse Why AgentStack Sell Docs
Sign in
SKILL verified MIT Self-run

Testing Coverage Quality

skill-gianverdum-ai-dev-skillset-testing-coverage-quality · by gianverdum

OBRIGATORIO em qualquer tarefa que altera comportamento de software. Garantir qualidade mínima de testes (unit + integration + e2e quando aplicável) e cobertura ≥ 80%. Use sempre que o agente criar, alterar, corrigir, refatorar ou estender software. Palavras-gatilho: "cobertura", "coverage", "test", "vitest", "jest", "pytest", "unit", "integration", "e2e", "test:cov", "limiar de cobertura", "gap…

No reviews yet
0 installs
5 views
0.0% view→install

Install

$ agentstack add skill-gianverdum-ai-dev-skillset-testing-coverage-quality

✓ scanned · ✓ verified, works with Claude Code, Cursor, and more.

Security review

✓ Passed

No issues found. Passed automated security review. · v0.1.0 How review works →

  • Prompt-injection patterns
  • Secret / credential exfiltration
  • Dangerous shell & filesystem operations
  • Untrusted network calls
  • Known-malicious package signatures

What it can access

  • Network access No
  • Filesystem access No
  • Shell / process execution No
  • Environment & secrets No
  • Dynamic code execution No

From automated source analysis of v0.1.0. “Used” means the capability is present in the source — more access means more to trust, not that it’s unsafe.

View the full security report →

Verified badge

Passed review? Show it. Paste this badge into your README, it links to the public security report.

AgentStack Verified badge Links to your public security report.
[![AgentStack Verified](https://agentstack.voostack.com/badges/verified.svg)](https://agentstack.voostack.com/security/report/skill-gianverdum-ai-dev-skillset-testing-coverage-quality)

Reliability & compatibility

Security review passed
0 installs to date
no reviews yet
1mo ago

Declared compatibility

Claude CodeClaude Desktop

Compatibility is declared by the source manifest. End-to-end runtime verification is coming, see below.

Preview Execution monitoring

We're building live execution health for every listing: tool-call success rate, median latency, uptime, and last-checked timestamps, measured, not self-reported. It isn't live yet, so we don't show numbers we can't stand behind.

How agent discovery & health will work →
Are you the author of Testing Coverage Quality? Claim this listing to set pricing, connect Stripe payouts, and keep 70% of every sale.
Sign up to claim

About

Qualidade e Cobertura de Testes

Use esta skill junto da skill de TDD em qualquer mudança de software.

Regras

  • Garanta ao menos 80% de cobertura automatizada para o módulo alterado ou para o projeto quando a ferramenta medir apenas cobertura global.
  • Configure o comando de cobertura para falhar abaixo de 80% quando a stack oferecer suporte prático a limiar mínimo.
  • Se a ferramenta de cobertura não existir, adicione-a como dependência de desenvolvimento do projeto pelo gerenciador da stack antes de considerar a medição indisponível.
  • Para Python, use sempre uv: adicione coverage, pytest-cov ou ferramenta equivalente com uv add --dev, execute com uv run e registre a configuração em pyproject.toml quando aplicável.
  • Configure a cobertura para medir o pacote ou módulo de produção inteiro, não apenas os arquivos importados acidentalmente pelos testes.
  • Não aumente cobertura com testes vazios, snapshots sem asserção relevante ou testes que só exercitam código sem validar comportamento.
  • Priorize cobertura de regras de domínio, casos de uso, validações, cálculos, parsing, serialização e fluxos de erro.
  • Teste e2e e obrigatorio quando o modulo (a) persiste estado externo — arquivo, banco, fila, cache, message broker, request HTTP de saida — OU (b) expoe entrypoint executavel — CLI, HTTP server, daemon, worker, cron job. Nesses casos, alem de unit e integration, inclua pelo menos um teste e2e do fluxo completo a partir do entrypoint real. Integration sozinho NAO substitui e2e: integration valida o adapter contra o recurso; e2e valida o fluxo cross-command/cross-request inteiro, incluindo parsing, wiring e estado final observavel.
  • E2E em CLI: invoque a CLI compilada (ou main()/runCli() chamada como subprocesso ou in-process) com argv, capture exit code, stdout e stderr, e VERIFIQUE o estado do recurso externo (arquivo, banco) depois de uma sequencia de comandos representativa. Exemplo: add "X" -> list -> done -> list --done, verificando que o arquivo persistido contem a tarefa com status: "done".
  • E2E em HTTP server: suba o servidor (ou use supertest), chame os endpoints na ordem do fluxo real (criar -> ler -> atualizar -> ler), verifique status e payload de resposta E o estado final do recurso externo.
  • E2E nao substitui unit/integration. Os tres niveis convivem: unit cobre regras puras com a maior densidade; integration cobre adapters contra recursos reais; e2e cobre o fluxo completo do ponto de entrada ate o estado final.
  • E2E nao e so caminho feliz. Um unico e2e do happy path satisfaz o minimo absoluto, mas modulo com autorizacao, validacao cruzada ou multiplos comandos precisa de e2e tambem para os fluxos de erro criticos. No minimo: (1) sequencia feliz cross-command; (2) acesso negado por permissao (permission_denied); (3) recurso inexistente (not_found); (4) validacao de entrada falhando no entrypoint. Cada e2e verifica exit code, stderr, e estado do recurso externo (nao mutado em caminhos de falha).

Exemplo: e2e suficiente para CLI com permissionamento

Para uma CLI com roles e persistencia, a suite e2e minima cobre quatro cenarios distintos:

// tests/e2e//cli.test.ts

it("admin bootstraps users, creates project, member adds and completes task", async () => {
  // happy path cross-command: add admin -> add member -> create project ->
  //   member cria task -> member completa task -> admin lista
  // verifica stdout e estado final do arquivo persistido
});

it("viewer cannot create task", async () => {
  // permissao negada: exit 1, stderr "Permission denied.", arquivo NAO mutado
});

it("create task fails when project does not exist", async () => {
  // recurso inexistente: exit 1, stderr com codigo project_not_found, arquivo NAO mutado
});

it("rejects invalid role on add-user", async () => {
  // validacao de entrada no parser: exit 1, stderr "Invalid role."
});

E2E unico cobrindo so o happy path passa o minimo, mas deixa fluxos de seguranca/erro sem rede. Para modulo com autorizacao, considere a suite acima o piso.

  • Cubra caminhos felizes e erros relevantes; não persiga 100% quando isso gerar teste frágil ou acoplado a implementação.
  • Exclua artefatos gerados, caches, migrações mecânicas, arquivos de build e glue code trivial quando a ferramenta permitir.
  • Mantenha artefatos de cobertura fora do versionamento via .gitignore. No mínimo: .coverage, .coverage.*, coverage.xml, htmlcov/, coverage/, lcov.info. Se já estiverem versionados, remova do índice com git rm --cached.
  • Não escreva percentuais de cobertura fixos em README.md nem em outra documentação versionada. Eles envelhecem sem aviso e passam a mentir sobre o estado atual. Documente apenas o comando que produz o relatório e o limiar mínimo configurado.

Fluxo

  1. Identifique a ferramenta de teste e cobertura usada pela stack.
  2. Se não houver ferramenta, configure a opção mais simples e idiomática para a linguagem do módulo e adicione as dependências de desenvolvimento necessárias ao manifesto do projeto.
  3. Escreva ou ajuste testes antes da implementação conforme TDD.
  4. Execute testes com cobertura ao final da mudança.
  5. Se a cobertura ficar abaixo de 80%, adicione testes úteis ou explique o bloqueio técnico.
  6. Documente o comando de teste/cobertura no README.md mais próximo quando criar ou alterar a configuração.

Python

  • Use uv como único gerenciador de ambiente e dependências.
  • Crie ou mantenha pyproject.toml para declarar projeto, dependências, scripts e configuração de ferramentas.
  • Para testes com unittest, use uv add --dev coverage e valide com uv run coverage run -m unittest discover -s tests seguido de uv run coverage report --fail-under=80.
  • Para testes com pytest, use uv add --dev pytest pytest-cov e valide com uv run pytest --cov --cov-fail-under=80.
  • Configure [tool.coverage.run] source = ["src/"] para incluir o pacote de produção completo no relatório.
  • Exclua de cobertura apenas glue trivial, arquivos gerados ou entrypoints sem decisão própria; não exclua CLI, parsers, casos de uso ou regras de domínio.
  • Testes de CLI em subprocesso podem validar empacotamento, mas adicione também teste direto da função de entrada para que a cobertura do adaptador conte no processo medido.
  • Mantenha uv.lock quando ele for gerado pela instalação.
  • Para outras linguagens, preserve o padrão local e consulte a rule da linguagem em .agents/rules para nomes e localização de testes antes de criar uma estrutura nova.

Layout

  • Mantenha testes unitários próximos dos arquivos ou pacotes testados quando esse for um padrão aceito pela linguagem.
  • Mantenha testes de integração, contrato, ponta a ponta e fixtures compartilhadas em tests/ no mesmo nível de src/.
  • Preserve o padrão existente quando o projeto já tiver uma convenção consistente.

Revisao final

  • Apos rodar testes e medir cobertura, execute a skill quality-revisao-aderencia antes de encerrar a tarefa. Ela checa arquitetura, tipagem do dominio, localizacao do parsing, codigos de erro estaveis, lint real, idioma do codigo e estrutura de testes; corrige desvios na hora.

Resposta Final

  • Informe o comando de testes executado.
  • Informe o percentual de cobertura obtido quando a ferramenta reportar esse número, apenas na resposta da conversa. Não persista esse número em arquivos versionados.
  • Se não for possível medir cobertura, informe a razão concreta, incluindo a tentativa de configurar a ferramenta ou o bloqueio externo encontrado.

Checklist

  • A suíte relevante foi executada.
  • Se o modulo persiste estado externo ou expoe entrypoint executavel, existe ao menos um teste e2e do fluxo completo, e ele passa.
  • Se o modulo tem autorizacao, validacao cruzada ou multiplos comandos, a suite e2e cobre tambem fluxos criticos de erro (permissao negada, recurso inexistente, validacao de entrada), nao apenas o caminho feliz.
  • A cobertura medida ficou em pelo menos 80% ou o bloqueio foi explicado.
  • O limiar de 80% foi configurado quando prático.
  • A cobertura mede o pacote de produção inteiro, com exclusões justificadas.
  • Dependências de cobertura foram adicionadas ao projeto quando estavam ausentes.
  • Os testes adicionados validam comportamento observável.
  • Artefatos de cobertura (.coverage, coverage.xml, htmlcov/, lcov.info) estão no .gitignore e não versionados.
  • Nenhum percentual de cobertura fixo foi escrito em README.md ou outro arquivo versionado.
  • O layout dos testes respeita unitários próximos do código e testes amplos em tests/.

Source & license

This open-source skill is cataloged on AgentStack and links to its original source — we do not rehost the code.

Install and usage instructions live in the source repository linked above.

Reviews

No reviews yet, be the first.

Versions

  • v0.1.0 Imported from the upstream source.