test-cases について
PRD やユーザーの説明から構造化されたテストケースを作成する、QA エンジニアや機能チーム向けのスキルです。通常フロー、境界値、エラー、状態遷移を要件に対応付け、Markdown ファイルに出力します。
主な機能
- 01PRD や説明から要件を抽出
- 02通常・境界・エラーを網羅
- 03テストケースと要件を紐付け
- 04一意の ID と優先度を設定
- 05網羅性を検証して Markdown に出力
活用シーン
- 01PRD の機能に対する QA 計画
- 02境界値や失敗経路のテスト追加
- 03実行・検証可能な手順の整理
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ stellarlinkco/ myclaude --skill test-casesインストール後、Claude Code で/test-casesを入力して読み込まれたか確認します。
同梱ファイルreferences/testing-principles.md
詳細
テストケースジェネレーター
このスキルは、PRD 文書またはユーザー要件から、包括的で要件に基づいたテストケースを生成します。
目的
プロダクト要件を構造化されたテストケースに変換し、機能、エッジケース、エラーシナリオ、状態遷移を漏れなく網羅します。このスキルでは、実践的なテスト方針に従います。重要な項目をテストし、すべての要件に対応するテストカバレッジを確保し、量よりもテストの品質を重視します。
使用するタイミング
以下の場合にこのスキルを起動します。
- ユーザーが PRD または要件文書を提示し、テストケースを依頼した場合
- ユーザーが「テストケースを生成する」「テストシナリオを作成する」「QA を計画する」と依頼した場合
- ユーザーが機能または要件のテストカバレッジに言及した場合
- ユーザーが Markdown 形式の構造化されたテスト文書を必要としている場合
テストの基本原則
テストケースを生成する際は、次の原則に従ってください。
- 実装ではなく要件に基づく - テストケースは実装の詳細ではなく、要件に直接対応させる必要があります
- 網羅的なカバレッジ - すべての要件に、次の項目を網羅するテストケースを少なくとも 1 件用意する必要があります。
- ハッピーパス(通常のユースケース)
- エッジケース(境界値、空の入力、上限値)
- エラー処理(無効な入力、失敗シナリオ、権限エラー)
- 状態遷移(状態を持つ場合は、有効な状態変更をすべて網羅)
- 明確で実行可能 - QA エンジニアが曖昧さなく実行できるテストケースにする必要があります
- 追跡可能 - 要件とテストケースの対応関係を明確に維持します
ワークフロー
ステップ 1:要件を収集する
まず、要件の情報源を特定します。
- ユーザーが PRD のファイルパスを提示した場合は、Read ツールを使用して読み込みます
- ユーザーが口頭で要件を説明した場合は、その内容を記録します
- 要件が不明確または不完全な場合は、AskUserQuestion を使用して明確にします。
- 主なユーザーフローは何ですか?
- 受け入れ基準は何ですか?
- 考慮すべきエッジケースやエラーシナリオはありますか?
- 状態遷移やワークフローはありますか?
- テストが必要なプラットフォームや環境は何ですか?
ステップ 2:テストシナリオを抽出する
要件を分析し、テストシナリオを抽出します。
- 機能シナリオ - 要件に基づく通常のユースケース
- エッジケースシナリオ - 境界条件、空の状態、上限値
- エラーシナリオ - 無効な入力、権限エラー、ネットワークエラー
- 状態遷移シナリオ - 機能に状態が関係する場合は、すべての遷移をマッピング
各要件について、次の項目を特定します。
- 前提条件(テスト前に満たされている必要がある条件)
- テスト手順(実行する操作)
- 期待結果(起こるべきこと)
- 事後条件(テスト完了後の状態)
ステップ 3:テストケースを構成する
次の構成を使用してテストケースを整理します。
# Test Cases: [Feature Name]
## Overview
- **Feature**: [Feature name]
- **Requirements Source**: [PRD file path or description]
- **Test Coverage**: [Summary of what's covered]
- **Last Updated**: [Date]
## Test Case Categories
### 1. Functional Tests
Test cases covering normal user flows and core functionality.
#### TC-F-001: [Test Case Title]
- **Requirement**: [Link to specific requirement]
- **Priority**: [High/Medium/Low]
- **Preconditions**:
- [Condition 1]
- [Condition 2]
- **Test Steps**:
1. [Step 1]
2. [Step 2]
3. [Step 3]
- **Expected Results**:
- [Expected result 1]
- [Expected result 2]
- **Postconditions**: [State after test]
### 2. Edge Case Tests
Test cases covering boundary conditions and unusual inputs.
#### TC-E-001: [Test Case Title]
[Same structure as above]
### 3. Error Handling Tests
Test cases covering error scenarios and failure modes.
#### TC-ERR-001: [Test Case Title]
[Same structure as above]
### 4. State Transition Tests
Test cases covering state changes and workflows (if applicable).
#### TC-ST-001: [Test Case Title]
[Same structure as above]
## Test Coverage Matrix
| Requirement ID | Test Cases | Coverage Status |
|---------------|------------|-----------------|
| REQ-001 | TC-F-001, TC-E-001 | ✓ Complete |
| REQ-002 | TC-F-002 | ⚠ Partial |
## Notes
- [Any additional testing considerations]
- [Known limitations or assumptions]
ステップ 4:テストケースを生成する
特定した各シナリオについて、上記の構成に従って詳細なテストケースを作成します。次の点を確認してください。
- 一意の ID - 接頭辞を使用します:TC-F(機能)、TC-E(エッジ)、TC-ERR(エラー)、TC-ST(状態)
- 明確なタイトル - テスト対象を説明する具体的なタイトル
- 要件とのトレーサビリティ - 各テストケースを特定の要件に紐付けます
- 優先度の割り当て - 重要なパスには優先度「高」を設定します
- 実行可能な手順 - すべての QA エンジニアが実行できるよう、手順を明確にします
- 測定可能な結果 - 期待結果を検証可能なものにします
ステップ 5:カバレッジを検証する
最終化する前に、次の点を確認します。
- すべての要件に少なくとも 1 件のテストケースがある
- すべてのユーザーフローでハッピーパスが網羅されている
- 境界条件に対するエッジケースが特定されている
- 失敗モードに対するエラーシナリオが網羅されている
- 機能が状態を持つ場合、状態遷移がテストされている
カバレッジに不足がある場合は、テストケースを追加で生成します。
ステップ 6:テストケースを出力する
テストケースを tests/<name>-test-cases.md に書き込みます。<name> は次のいずれかから決定します。
- PRD に記載された機能名
- ユーザーが指定した名前
- 要件のタイトルをサニタイズしたもの
Write ツールを使用して、構造化したテストケースを含むファイルを作成します。
ステップ 7:概要
テストケースを生成した後、中国語で簡潔な概要を提示します:
- 生成したテストケースの総数
- カバレッジの内訳(機能、エッジ、エラー、状態)
- 想定した内容、または確認が必要な項目
- テストケースを保存したファイルパス
品質チェックリスト
テストケースを確定する前に、次の項目を確認します:
- すべての要件に対応するテストケースがある
- 正常系のシナリオが網羅されている
- エッジケースに境界値、空の入力、最大制限値が含まれている
- エラー処理で無効な入力や失敗シナリオが網羅されている
- 該当する場合、状態遷移がテストされている
- テストケース ID が一意で、命名規則に従っている
- テスト手順が明確で、実行可能である
- 期待結果が測定可能で、検証可能である
- カバレッジマトリクスで完全なカバレッジが示されている
- ファイルが tests/-test-cases.md に書き込まれている
使用例
ユーザー:「docs/auth-prd.md のユーザー認証機能のテストケースを生成してください」
手順:
- docs/auth-prd.md を読む
- 要件を抽出する:ログイン、ログアウト、パスワードのリセット、セッション管理
- シナリオを特定する:ログイン成功、無効な認証情報、期限切れのセッションなど
- すべてのシナリオを網羅するテストケースを生成する
- tests/auth-test-cases.md に書き込む
- カバレッジを中国語で要約する
参考資料
詳細なテスト手法とベストプラクティスについては、以下を参照してください:
references/testing-principles.md- テストの基本原則とパターン