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:

YAML
---
name: test-generator
description: "Gerar testes unitários automaticamente"
triggers:
  - keyword: "generate-test|gen-test"
tools:
  - Read
  - Grep
  - Glob
  - Write
---
MARKDOWN
## 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:

MARKDOWN
## 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

PYTHON
# Código-fonte
def divide(a: float, b: float) -> float:
    if b == 0:
        raise ValueError("Division by zero")
    return a / b
PYTHON
# 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

BASH
# Python
pytest --cov=src --cov-report=term-missing

# JavaScript
npx jest --coverage

# Go
go test -coverprofile=coverage.out ./...

(2) Relatório de cobertura

TEXT 📖 Somente leitura
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:

YAML
---
name: tdd-assistant
description: "Assistente TDD: escreva testes primeiro, depois implemente"
triggers:
  - keyword: "tdd|test-driven"
tools:
  - Read
  - Write
  - Edit
  - Bash
---
MARKDOWN
## 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


📝 Exercícios

  1. Básico (dificuldade⭐): Crie um Skill de execução de testes que detecte automaticamente o framework de testes do projeto e execute os testes.
  2. Intermediário (dificuldade⭐⭐): Crie um Skill de geração de testes que gere tipos de teste normal/contorno/erro para uma função especificada.
  3. 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.
Web-Tutorial.com

Equipe Técnica Web-Tutorial

Uma plataforma de tutoriais mantida por diversos desenvolvedores. Cada tutorial é escrito e revisado por profissionais da área correspondente. Trabalhamos para manter nosso conteúdo preciso e confiável — se encontrar algum problema, avise-nos.

100%