propor-plano-de-teste-de-funcionalidade

Crie um plano de teste que mapeia requisitos EARS e Restrições Críticas para testes específicos.

O que é propor-plano-de-teste-de-funcionalidade?

Esta skill cria um plano de teste sistemático para uma funcionalidade, garantindo que cada requisito (REQ-*) e cada Restrição Crítica (CC-*) documentados no diretório da funcionalidade (`./docs/features/NNNN-feature-name/`) seja mapeado para um teste concreto. Ela é útil durante a fase de planejamento anterior à implementação, pois assegura rastreabilidade completa e cobertura de verificação. A skill suporta qualquer funcionalidade com documentação existente (conceito, requisitos e design) e gera um arquivo `test-plan.md`. O plano de teste categoriza cada requisito como teste unitário, de integração, não testável ou fora do escopo, descreve como cada restrição crítica será verificada, e fornece orientações específicas para testes de CLI (testando o binário real). Inclui comandos de validação para verificar cobertura completa. É particularmente útil para equipes que seguem desenvolvimento orientado a requisitos e precisam de um passo explícito entre design e implementação.

Funciona com~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/cbgbt/bottlerocket-forest/tree/main/skills/propose-feature-test-plan

Installed? Explore more Programação e Desenvolvimento skills: steipete/bluebubbles, steipete/eightctl, steipete/blucli · View all 6 →

Perguntar na sua IA favorita

Abre um novo chat com esta habilidade de agente já pré-carregada.

Documentação

Skill: Propor Plano de Teste de Funcionalidade

Objetivo

Criar um plano de teste que mapeia sistematicamente requisitos e restrições para testes concretos. Isso garante que cada requisito tenha verificação e orienta a implementação dos testes.

Quando Usar

  • Existe um documento de design com Restrições Críticas
  • Pronto para planejar a abordagem de teste antes da implementação
  • Necessidade de documentar quais testes verificarão cada requisito

Pré-requisitos

  • O conceito da funcionalidade existe em ./docs/features/NNNN-nome-da-funcionalidade/concept.md
  • Os requisitos existem em ./docs/features/NNNN-nome-da-funcionalidade/requirements.md
  • O design existe em ./docs/features/NNNN-nome-da-funcionalidade/design.md (contém Restrições Críticas)

Procedimento

1. Verificar se os Pré-requisitos Existem

ls ./docs/features/NNNN-nome-da-funcionalidade/concept.md
ls ./docs/features/NNNN-nome-da-funcionalidade/requirements.md
ls ./docs/features/NNNN-nome-da-funcionalidade/design.md

Se algum não existir, conclua essas etapas primeiro.

2. Extrair Requisitos e Restrições

Revise o requirements.md para todos os identificadores REQ-. Revise o design.md para todas as Restrições Críticas CC-.

3. Criar o Arquivo de Plano de Teste

Crie ./docs/features/NNNN-nome-da-funcionalidade/test-plan.md com esta estrutura:

# Plano de Teste: Nome da Funcionalidade

## Visão Geral

Breve descrição da abordagem de teste.

## Tipos de Teste

- **Unitário**: Testa lógica interna isoladamente, mocks permitidos
- **Integração**: Toca recursos externos reais (sistema de arquivos, rede), SEM mocks
- **Não testável**: Não pode ser verificado por teste automatizado (explique por quê)
- **Fora do escopo**: Requer autenticação externa - documente mas não implemente

## Cobertura de Requisitos

| ID do Req | Tipo de Teste | Nome do Teste | Descrição |
|-----------|---------------|---------------|-----------|
| REQ-1     | unitario      | test_xxx      | O que verifica |
| REQ-2     | integracao    | test_yyy      | O que verifica |
| REQ-3     | nao-testavel  | -             | Por que não é testável |
| REQ-4     | fora-do-escopo| -             | Por que está fora do escopo |

## Verificação de Restrições Críticas

| ID CC | Abordagem de Verificação | Nome(s) do(s) Teste(s) |
|-------|--------------------------|------------------------|
| CC-1  | Como a restrição é verificada | test_xxx |

## Requisitos de Teste de Integração

Para programas CLI, os testes de integração DEVEM:
- Exercitar o binário/comandos CLI reais que os usuários executam
- NÃO testar APIs internas diretamente
- Fazer o que o usuário/cliente realmente fará

## Notas de Implementação dos Testes

Quaisquer orientações específicas para implementar estes testes.

4. Mapear Cada Requisito

Para cada REQ-* no requirements.md:

  1. Determine o tipo de teste:

    • Unitário: Lógica interna, algoritmos, transformações de dados
    • Integração: E/S de arquivo, chamadas de rede, comandos CLI, processos externos
    • Não testável: Não pode ser automatizado (por exemplo, qualidade subjetiva, requer julgamento humano, inviável de configurar)
    • Fora do escopo: Requer autenticação com sistemas externos (APIs em nuvem, registros com autenticação)
  2. Nomeie o teste descritivamente (ex.: test_analisa_config_valido)

  3. Escreva uma breve descrição do que ele verifica

5. Mapear Cada Restrição Crítica

Para cada CC-* no design.md:

  1. Descreva como a restrição será verificada
  2. Vincule ao(s) nome(s) específico(s) do(s) teste(s) que a impõe(m)
  3. Observe se a restrição requer revisão de código em vez de teste automatizado

6. Documentar a Abordagem de Teste CLI

Se a funcionalidade incluir comandos CLI:

  • Testes de integração executam o binário real
  • Capture stdout/stderr para verificação
  • Teste fluxos de trabalho reais do usuário de ponta a ponta
  • NÃO simule (mock) a camada CLI

7. Marcar Testes Fora do Escopo

Para testes que exigem autenticação externa:

  1. Documente o QUE seria testado
  2. Explique por que está fora do escopo
  3. Anote quaisquer etapas de verificação manual

Validação

# Verificar se o arquivo existe
ls ./docs/features/NNNN-nome-da-funcionalidade/test-plan.md

# Verificar se todos os requisitos estão cobertos
grep -c "REQ-" ./docs/features/NNNN-nome-da-funcionalidade/test-plan.md
grep -c "REQ-" ./docs/features/NNNN-nome-da-funcionalidade/requirements.md
# As contagens devem ser comparáveis

# Verificar se todas as restrições estão cobertas
grep -c "CC-" ./docs/features/NNNN-nome-da-funcionalidade/test-plan.md
grep -c "CC-" ./docs/features/NNNN-nome-da-funcionalidade/design.md
# As contagens devem ser comparáveis

Problemas Comuns

Cobertura ausente: Cada REQ-* e CC-* deve aparecer no plano de teste. Use os comandos grep de validação para verificar.

Tipo de teste errado: Testes unitários não devem tocar no sistema de arquivos/rede. Testes de integração não devem usar mocks.

Testar internos em vez de comportamento: Para ferramentas CLI, teste os comandos CLI que os usuários executam, não funções internas.

Descrições vagas: As descrições dos testes devem informar qual comportamento específico está sendo verificado.

Próximos Passos

Após criar o plano de teste:

  1. Revise a cobertura com as partes interessadas
  2. Prossiga para a skill propor-plano-de-implementacao para planejar a implementação
  3. O plano de implementação deve referenciar o test-plan.md para os requisitos de teste

Individual skills in this repo

This repo contains 19 individual skills — each has its own dedicated page.

ad-hoc-implementation-plan

Transform a rough plan into implement-commit ready artifacts. Allows rigorous review while implementing.

build-kit-locally

Build a kit and publish it to a locally hosted registry for development testing

build-variant-from-local-kits

Build a variant using locally published kits for development validation

deep-research

Create educational documents that build understanding progressively with citations

edit-spec-file

Edit Bottlerocket RPM spec files following project style conventions

fact-find

Quick lookup of specific facts about Bottlerocket with citations

idea-honing

Clarify feature ideas through iterative Q&A, recording insights to guide concept development

implement-commit

Implement commits from an implementation plan using a TDD pipeline

local-registry

Start and manage a local OCI registry for Bottlerocket kit development

prepare-core-kit-release

Prepare bottlerocket-core-kit for release by bumping version and updating changelog

propose-feature-concept

Create a new feature concept document to pitch the idea and explain the problem/solution

propose-feature-design

Create or update feature technical design document with architecture and implementation guidance

propose-feature-requirements

Create or update feature requirements specification using EARS notation with examples and appendices

propose-implementation-plan

Create an implementation plan with atomic commits that build toward a complete feature

review-code

Deep code review generating PR comments via principled question-driven analysis

review-scope

Verify code changes match intended scope and requirements without exceeding boundaries

review-style

Verify code follows project style guides without providing improvement suggestions

test-local-twoliter

Build and test local changes to twoliter before releasing

update-twoliter

Update all Bottlerocket repositories to a new Twoliter version

Habilidades Relacionadas