Skills: Skill de Testes Automatizados
Última atualização: 2026-08-31
Testes são a rede de segurança do código — Skills fazem esta rede ser tecida mais rápido, mais densa e mais inteligente.
1. Tipos de Skills de teste
(1) Geração de testes
Gerar testes automaticamente a partir do código-fonte:
---
name: test-generator
description: "Gerar testes unitários automaticamente"
triggers:
- keyword: "generate-test|gen-test"
tools:
- Read
- Grep
- Glob
- Write
---
## Fluxo de geração
1. Leia o arquivo-fonte, analise assinaturas e lógica das funções
2. Identifique condições de contorno e caminhos de erro
3. Use Write para criar arquivo de teste
4. Bash para executar testes de verificação
(2) Execução de testes
Detectar e executar testes do projeto automaticamente:
| Framework | Método de detecção | Comando de execução |
|---|---|---|
| pytest | pyproject.toml | pytest |
| Jest | package.json | npx jest |
| Go | go.mod | go test ./... |
| Rust | Cargo.toml | cargo test |
(3) Diagnóstico de falhas
Analisar automaticamente as causas quando os testes falham:
## Fluxo de diagnóstico
1. Leia a saída do teste falho
2. Localize as asserções falhas e pilhas de erro
3. Leia o código-fonte relacionado
4. Analise a causa da falha
5. Exiba relatório de diagnóstico e sugestões de correção
2. Estratégia de geração de testes
(1) Testes em nível de função
# Código-fonte
def divide(a: float, b: float) -> float:
if b == 0:
raise ValueError("Division by zero")
return a / b
# Testes gerados automaticamente
def test_divide_normal():
assert divide(10, 2) == 5.0
def test_divide_negative():
assert divide(-10, 2) == -5.0
def test_divide_zero():
with pytest.raises(ValueError):
divide(10, 0)
def test_divide_float():
assert divide(7, 2) == 3.5
(2) Dimensões de cobertura de testes
| Dimensão | Tipo de teste | Exemplo |
|---|---|---|
| Caminho normal | Happy path | Entrada normal retorna resultado esperado |
| Condições de contorno | Boundary | String vazia, zero, valor máximo |
| Caminhos de erro | Error path | Entrada inválida levanta exceção esperada |
| Segurança de concorrência | Concurrency | Acesso multi-thread a recursos compartilhados |
3. Análise de cobertura
(1) Coleta de cobertura
# Python
pytest --cov=src --cov-report=term-missing
# JavaScript
npx jest --coverage
# Go
go test -coverprofile=coverage.out ./...
(2) Relatório de cobertura
Relatório de cobertura
├── Cobertura total: 72%
├── Arquivos não cobertos:
│ ├── src/auth/__init__.py (0%) ← Arquivo de entrada, precisa de testes
│ ├── src/utils/validators.py (45%) ← Algumas funções sem teste
│ └── src/api/routes.py (60%) ← Tratamento de erros não coberto
└── Sugestão: Priorizar adicionar testes para validators.py
4. Skill de teste na prática
▶ Exemplo: Skill de assistente TDD
Alice criou um Skill de assistente TDD para ajudar a equipe a praticar desenvolvimento orientado a testes:
---
name: tdd-assistant
description: "Assistente TDD: escreva testes primeiro, depois implemente"
triggers:
- keyword: "tdd|test-driven"
tools:
- Read
- Write
- Edit
- Bash
---
## Fluxo TDD
1. Entenda os requisitos
2. Escreva teste falho (RED)
3. Bash para confirmar que o teste falha
4. Use Edit para escrever implementação mínima (GREEN)
5. Bash para confirmar que o teste passa
6. Use Edit para refatorar e otimizar (REFACTOR)
7. Bash para confirmar que os testes ainda passam
Bob disse: "O maior inimigo do TDD é a inércia — Skills solidificam o processo para que os desenvolvedores não fiquem na dúvida 'teste primeiro ou código primeiro', apenas sigam o fluxo."
❓ Perguntas Frequentes
P: A qualidade dos testes gerados automaticamente é suficiente? R: Boa o suficiente como ponto de partida, mas condições de contorno e testes de lógica de negócio precisam de complemento manual. Testes gerados por Skills cobrem caminhos normais e contornos comuns; cenários complexos ainda exigem design humano. P: Skills podem corrigir automaticamente testes falhos? R: Podem tentar, mas recomendamos diagnosticar antes de corrigir. Falhas simples de asserção podem ser corrigidas automaticamente; erros de lógica complexa precisam de confirmação humana sobre a direção da correção. P: Como equilibrar cobertura de testes e velocidade de desenvolvimento? R: Módulos centrais visam 80%+, funções utilitárias 60%+, novas funcionalidades escrevem testes de caminhos críticos primeiro e complementam gradualmente.
📖 Resumo
- Três tipos de Skills de teste: geração, execução, diagnóstico
- Estratégia de geração: caminho normal + condições de contorno + caminhos de erro
- Análise de cobertura: coletar → relatar → priorizar complemento
- Fluxo TDD: RED → GREEN → REFACTOR, Skills solidificam o fluxo de trabalho
📝 Exercícios
- Básico (dificuldade⭐): Crie um Skill de execução de testes que detecte automaticamente o framework de testes do projeto e execute os testes.
- Intermediário (dificuldade⭐⭐): Crie um Skill de geração de testes que gere tipos de teste normal/contorno/erro para uma função especificada.
- Avançado (dificuldade⭐⭐⭐): Crie um Skill de assistente TDD que implemente completamente o ciclo RED-GREEN-REFACTOR e exiba um relatório de status em cada etapa.