mcpField
T
test-cases

test-cases

github.com/stellarlinkcoテスト・品質2.7k1.2k 回インストール25 週間前に更新
リポジトリ

test-cases について

PRD やユーザーの説明から構造化されたテストケースを作成する、QA エンジニアや機能チーム向けのスキルです。通常フロー、境界値、エラー、状態遷移を要件に対応付け、Markdown ファイルに出力します。

主な機能

  1. 01PRD や説明から要件を抽出
  2. 02通常・境界・エラーを網羅
  3. 03テストケースと要件を紐付け
  4. 04一意の ID と優先度を設定
  5. 05網羅性を検証して Markdown に出力

活用シーン

  1. 01PRD の機能に対する QA 計画
  2. 02境界値や失敗経路のテスト追加
  3. 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. 実装ではなく要件に基づく - テストケースは実装の詳細ではなく、要件に直接対応させる必要があります
  2. 網羅的なカバレッジ - すべての要件に、次の項目を網羅するテストケースを少なくとも 1 件用意する必要があります。
    • ハッピーパス(通常のユースケース)
    • エッジケース(境界値、空の入力、上限値)
    • エラー処理(無効な入力、失敗シナリオ、権限エラー)
    • 状態遷移(状態を持つ場合は、有効な状態変更をすべて網羅)
  3. 明確で実行可能 - QA エンジニアが曖昧さなく実行できるテストケースにする必要があります
  4. 追跡可能 - 要件とテストケースの対応関係を明確に維持します

ワークフロー

ステップ 1:要件を収集する

まず、要件の情報源を特定します。

  1. ユーザーが PRD のファイルパスを提示した場合は、Read ツールを使用して読み込みます
  2. ユーザーが口頭で要件を説明した場合は、その内容を記録します
  3. 要件が不明確または不完全な場合は、AskUserQuestion を使用して明確にします。
    • 主なユーザーフローは何ですか?
    • 受け入れ基準は何ですか?
    • 考慮すべきエッジケースやエラーシナリオはありますか?
    • 状態遷移やワークフローはありますか?
    • テストが必要なプラットフォームや環境は何ですか?
ステップ 2:テストシナリオを抽出する

要件を分析し、テストシナリオを抽出します。

  1. 機能シナリオ - 要件に基づく通常のユースケース
  2. エッジケースシナリオ - 境界条件、空の状態、上限値
  3. エラーシナリオ - 無効な入力、権限エラー、ネットワークエラー
  4. 状態遷移シナリオ - 機能に状態が関係する場合は、すべての遷移をマッピング

各要件について、次の項目を特定します。

  • 前提条件(テスト前に満たされている必要がある条件)
  • テスト手順(実行する操作)
  • 期待結果(起こるべきこと)
  • 事後条件(テスト完了後の状態)
ステップ 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:テストケースを生成する

特定した各シナリオについて、上記の構成に従って詳細なテストケースを作成します。次の点を確認してください。

  1. 一意の ID - 接頭辞を使用します:TC-F(機能)、TC-E(エッジ)、TC-ERR(エラー)、TC-ST(状態)
  2. 明確なタイトル - テスト対象を説明する具体的なタイトル
  3. 要件とのトレーサビリティ - 各テストケースを特定の要件に紐付けます
  4. 優先度の割り当て - 重要なパスには優先度「高」を設定します
  5. 実行可能な手順 - すべての QA エンジニアが実行できるよう、手順を明確にします
  6. 測定可能な結果 - 期待結果を検証可能なものにします
ステップ 5:カバレッジを検証する

最終化する前に、次の点を確認します。

  1. すべての要件に少なくとも 1 件のテストケースがある
  2. すべてのユーザーフローでハッピーパスが網羅されている
  3. 境界条件に対するエッジケースが特定されている
  4. 失敗モードに対するエラーシナリオが網羅されている
  5. 機能が状態を持つ場合、状態遷移がテストされている

カバレッジに不足がある場合は、テストケースを追加で生成します。

ステップ 6:テストケースを出力する

テストケースを tests/<name>-test-cases.md に書き込みます。<name> は次のいずれかから決定します。

  • PRD に記載された機能名
  • ユーザーが指定した名前
  • 要件のタイトルをサニタイズしたもの

Write ツールを使用して、構造化したテストケースを含むファイルを作成します。

ステップ 7:概要

テストケースを生成した後、中国語で簡潔な概要を提示します:

  • 生成したテストケースの総数
  • カバレッジの内訳(機能、エッジ、エラー、状態)
  • 想定した内容、または確認が必要な項目
  • テストケースを保存したファイルパス

品質チェックリスト

テストケースを確定する前に、次の項目を確認します:

  • すべての要件に対応するテストケースがある
  • 正常系のシナリオが網羅されている
  • エッジケースに境界値、空の入力、最大制限値が含まれている
  • エラー処理で無効な入力や失敗シナリオが網羅されている
  • 該当する場合、状態遷移がテストされている
  • テストケース ID が一意で、命名規則に従っている
  • テスト手順が明確で、実行可能である
  • 期待結果が測定可能で、検証可能である
  • カバレッジマトリクスで完全なカバレッジが示されている
  • ファイルが tests/-test-cases.md に書き込まれている

使用例

ユーザー:「docs/auth-prd.md のユーザー認証機能のテストケースを生成してください」

手順:

  1. docs/auth-prd.md を読む
  2. 要件を抽出する:ログイン、ログアウト、パスワードのリセット、セッション管理
  3. シナリオを特定する:ログイン成功、無効な認証情報、期限切れのセッションなど
  4. すべてのシナリオを網羅するテストケースを生成する
  5. tests/auth-test-cases.md に書き込む
  6. カバレッジを中国語で要約する

参考資料

詳細なテスト手法とベストプラクティスについては、以下を参照してください:

  • references/testing-principles.md - テストの基本原則とパターン

コメント