CommunityCodierung & Entwicklunggithub.com

Testplan für Feature vorschlagen

Erstellt einen Testplan, der EARS-Anforderungen und kritische Einschränkungen systematisch auf konkrete Tests abbildet.

Was ist Testplan für Feature vorschlagen?

Diese Skill hilft dabei, einen umfassenden Testplan zu erstellen, der sicherstellt, dass jede dokumentierte Anforderung (REQ-*) und jede kritische Einschränkung (CC-*) durch automatisierte Tests abgedeckt wird. Sie ist für die Arbeit mit Feature-Design-Dokumenten in `./docs/features/NNNN-feature-name/` optimiert und wird typischerweise in Verbindung mit Claude Code oder ähnlichen KI-Agenten eingesetzt. Der Testplan unterscheidet zwischen Unit-Tests (isolierte Logik), Integrationstests (echte externe Ressourcen), nicht testbaren Anforderungen und außerhalb des Rahmens liegenden Tests. Außerdem enthält er Validierungsbefehle, um eine vollständige Abdeckung zu gewährleisten, und geht auf häufige Probleme wie fehlende Abdeckung oder falsche Testtypen ein.

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

Installed? Explore more Codierung & Entwicklung skills: steipete/bluebubbles, steipete/eightctl, steipete/blucli · View all 6 →

In Ihrer bevorzugten KI fragen

Öffnet einen neuen Chat, in dem dieser Agent-Skill bereits geladen ist.

Dokumentation

Skill: Testplan für Feature vorschlagen

Zweck

Erstellen eines Testplans, der Anforderungen und Einschränkungen systematisch auf konkrete Tests abbildet. So wird sichergestellt, dass jede Anforderung verifiziert ist und die Testimplementierung geleitet wird.

Verwendung

  • Entwurfsdokument mit kritischen Einschränkungen (Critical Constraints) liegt vor
  • Bereit, den Testansatz vor der Implementierung zu planen
  • Notwendig zu dokumentieren, welche Tests welche Anforderungen verifizieren

Voraussetzungen

  • Feature-Konzept existiert in ./docs/features/NNNN-feature-name/concept.md
  • Anforderungen existieren in ./docs/features/NNNN-feature-name/requirements.md
  • Entwurf existiert in ./docs/features/NNNN-feature-name/design.md (enthält Critical Constraints)

Vorgehen

1. Voraussetzungen prüfen

ls ./docs/features/NNNN-feature-name/concept.md
ls ./docs/features/NNNN-feature-name/requirements.md
ls ./docs/features/NNNN-feature-name/design.md

Falls etwas fehlt, zuerst diese Schritte ausführen.

2. Anforderungen und Einschränkungen extrahieren

requirements.md nach allen REQ--Kennungen durchsuchen. design.md nach allen CC--Critical Constraints durchsuchen.

3. Testplandatei erstellen

Datei ./docs/features/NNNN-feature-name/test-plan.md mit folgender Struktur anlegen:

# Testplan: Feature-Name

## Überblick

Kurze Beschreibung des Testansatzes.

## Testarten

- **Unit**: Testet interne Logik isoliert, Mocks erlaubt
- **Integration**: Nutzt echte externe Ressourcen (Dateisystem, Netzwerk), KEINE Mocks
- **Nicht testbar**: Kann nicht durch automatisierten Test verifiziert werden (Begründung)
- **Außerhalb des Rahmens**: Erfordert externe Authentifizierung – dokumentieren, aber nicht implementieren

## Abdeckung der Anforderungen

| Anforderungs-ID | Testart | Testname | Beschreibung |
|-----------------|---------|----------|--------------|
| REQ-1  | unit      | test_xxx  | Was verifiziert wird |
| REQ-2  | integration | test_yyy | Was verifiziert wird |
| REQ-3  | nicht-testbar | - | Warum nicht testbar |
| REQ-4  | außerhalb des Rahmens | - | Warum außerhalb des Rahmens |

## Verifikation kritischer Einschränkungen

| CC-ID | Verifikationsansatz | Testname(n) |
|-------|---------------------|-------------|
| CC-1  | Wie die Einschränkung verifiziert wird | test_xxx |

## Anforderungen an Integrationstests

Bei CLI-Programmen MÜSSEN Integrationstests:
- Das tatsächliche CLI-Binary/die tatsächlichen Befehle der Benutzer ausführen
- NICHT interne APIs direkt testen
- Das tun, was der Benutzer/Kunde tatsächlich tun wird

## Hinweise zur Testimplementierung

Spezifische Anleitungen zur Implementierung dieser Tests.

4. Jede Anforderung zuordnen

Für jede REQ-* in requirements.md:

  1. Testart bestimmen:

    • Unit: Interne Logik, Algorithmen, Datentransformationen
    • Integration: Datei-I/O, Netzwerkaufrufe, CLI-Befehle, externe Prozesse
    • Nicht testbar: Nicht automatisierbar (z. B. subjektive Qualität, erfordert menschliches Urteilsvermögen, Einrichtung nicht praktikabel)
    • Außerhalb des Rahmens: Erfordert Authentifizierung gegenüber externen Systemen (Cloud-APIs, Registrierungen mit Authentifizierung)
  2. Testnamen beschreibend wählen (z. B. test_parses_valid_config)

  3. Kurze Beschreibung schreiben, was verifiziert wird

5. Jede kritische Einschränkung zuordnen

Für jede CC-* in design.md:

  1. Beschreiben, wie die Einschränkung verifiziert wird
  2. Auf den/die spezifischen Testnamen verlinken, der/die sie erzwingt
  3. Hinweis, ob die Einschränkung eine Code-Review anstelle eines automatisierten Tests erfordert

6. CLI-Testansatz dokumentieren

Falls das Feature CLI-Befehle enthält:

  • Integrationstests führen das tatsächliche Binary aus
  • stdout/stderr zur Verifikation erfassen
  • Echte Benutzer-Workflows Ende-zu-Ende testen
  • Die CLI-Ebene NICHT mocken

7. Tests außerhalb des Rahmens markieren

Für Tests, die eine externe Authentifizierung erfordern:

  1. Dokumentieren, WAS getestet würde
  2. Erklären, warum es außerhalb des Rahmens liegt
  3. Manuelle Verifikationsschritte notieren

Validierung

# Prüfen, ob Datei existiert
ls ./docs/features/NNNN-feature-name/test-plan.md

# Prüfen, ob alle Anforderungen abgedeckt sind
grep -c "REQ-" ./docs/features/NNNN-feature-name/test-plan.md
grep -c "REQ-" ./docs/features/NNNN-feature-name/requirements.md
# Die Zählungen sollten vergleichbar sein

# Prüfen, ob alle Einschränkungen abgedeckt sind
grep -c "CC-" ./docs/features/NNNN-feature-name/test-plan.md
grep -c "CC-" ./docs/features/NNNN-feature-name/design.md
# Die Zählungen sollten vergleichbar sein

Häufige Probleme

Fehlende Abdeckung: Jede REQ-* und CC-* muss im Testplan vorkommen. Die Validierungs-grep-Befehle zur Überprüfung verwenden.

Falsche Testart: Unit-Tests sollten das Dateisystem/Netzwerk nicht berühren. Integrationstests sollten keine Mocks verwenden.

Testen von Interna statt Verhalten: Bei CLI-Werkzeugen die CLI-Befehle testen, die Benutzer ausführen, nicht interne Funktionen.

Vage Beschreibungen: Testbeschreibungen sollten angeben, welches spezifische Verhalten verifiziert wird.

Nächste Schritte

Nach Erstellung des Testplans:

  1. Abdeckung mit Stakeholdern überprüfen
  2. Mit der Skill implementierungsplan-vorschlagen fortfahren, um die Implementierung zu planen
  3. Der Implementierungsplan sollte auf test-plan.md für die Testanforderungen verweisen

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

Verwandte Skills