一键导入
testcase-generator
QC/QA向けE2Eテストケース自動生成。docs/specs/とコードから網羅的に抽出、Markdown/Excel/JSON出力。リスクベース優先順位付け、Gherkin対応。
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
菜单
QC/QA向けE2Eテストケース自動生成。docs/specs/とコードから網羅的に抽出、Markdown/Excel/JSON出力。リスクベース優先順位付け、Gherkin対応。
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
基于 SOC 职业分类
| name | testcase-generator |
| description | QC/QA向けE2Eテストケース自動生成。docs/specs/とコードから網羅的に抽出、Markdown/Excel/JSON出力。リスクベース優先順位付け、Gherkin対応。 |
| allowed-tools | Read, Write, Glob, Grep, Bash, TodoWrite, AskUserQuestion, mcp__serena__list_dir, mcp__serena__search_for_pattern, mcp__serena__find_symbol, mcp__serena__get_symbols_overview, mcp__serena__read_file |
QC/QA向けの高品質なE2Eテストケースを自動生成します。
絶対に避けること:
正しいアプローチ:
4フェーズワークフロー:
UNDERSTAND → EXTRACT → REVIEW → GENERATE
↓ ↓ ↓ ↓
対象理解 観点抽出 優先順位 TC生成
各フェーズでユーザー承認を求める(--no-verify オプションでスキップ可能)。
引数とオプションの解析:
使用方法:
/testcase-generator <対象> [オプション]
オプション:
--format=md|excel|json # 出力形式(デフォルト: excel + json)
--priority=critical|high|medium|low # 優先度フィルタ
--no-verify # ユーザー承認をスキップ
--dry-run # 生成せず、概要のみ表示
-v, --verbose # 詳細ログ
引数がない場合:
AskUserQuestion で対象を質問:
「どの画面または機能のテストケースを作成しますか?
例:
- 問い合わせフォーム
- ログイン画面
- すべて(全機能)
- (具体的な画面名・機能名)」
Todoリスト作成:
TodoWrite:
- Phase 1: UNDERSTAND - 対象理解
- Phase 2: EXTRACT - テスト観点抽出
- Phase 3: REVIEW - リスク評価と優先順位付け
- Phase 4: GENERATE - テストケース生成(Excel + JSON + Markdown)
出力ディレクトリ作成:
mkdir -p docs/_testcases/{testcases,exports,reports,_context}
目的: ユーザー指定の対象を理解し、テスト対象を明確化する。
処理:
docs/specs/ の存在確認:
if [ ! -d "docs/specs" ]; then
echo "❌ docs/specs/ が見つかりません。"
echo "📝 /mkdocs でドキュメントを生成してください。"
exit 1
fi
対象検索(動的):
mcp__serena__search_for_pattern(
substring_pattern="<ユーザー指定の対象>",
relative_path="docs/specs",
context_lines_before=3,
context_lines_after=3
)
該当ドキュメント特定:
docs/specs/routes/overview.md または routes/*.mddocs/specs/app/controllers/*.mddocs/specs/resources/views/*.md対象の構造化:
{
"target": "<ユーザー指定>",
"endpoints": [],
"controllers": [],
"views": [],
"validations": [],
"business_logic": []
}
ユーザー確認(--no-verify がない場合のみ):
対象理解結果:
- エンドポイント: X件
- 画面: Y件
- バリデーションルール: Z件
- ビジネスロジック: W件
この理解で正しいですか?
(Y: 承認 / N: 中止 / 修正指示を入力)
understand.json 保存:
Write: docs/_testcases/_context/understand.json
目的: テストすべき観点を網羅的に抽出する。
処理:
エンドポイント抽出(動的):
# docs/specs/routes/ から全エンドポイントを抽出
grep -E "^\| .* \| .* \|" docs/specs/routes/overview.md || \
find docs/specs/routes -name "*.md" -exec grep -h "Route::" {} \;
バリデーション抽出(動的):
mcp__serena__search_for_pattern(
substring_pattern="required|email|max|min|regex|numeric|date",
relative_path="docs/specs/app/requests",
paths_include_glob="*.md"
)
UIパーツ抽出(動的):
mcp__serena__search_for_pattern(
substring_pattern="<input|<button|<select|<textarea",
relative_path="docs/specs/resources/views"
)
ビジネスロジック抽出(動的):
mcp__serena__search_for_pattern(
substring_pattern="Auth::|Mail::|DB::|Storage::",
relative_path="docs/specs/app/controllers"
)
テスト観点の分類:
正常系:
異常系:
境界値:
セキュリティ:
ユーザー確認(--no-verify がない場合のみ):
抽出されたテスト観点(合計: XX件):
- 正常系: X件
- 異常系: Y件
- 境界値: Z件
- セキュリティ: W件
追加・削除したい観点はありますか?
(承認 / 追加指示 / 削除指示)
extract.json 保存:
Write: docs/_testcases/_context/extract.json
目的: 各テスト観点にリスクスコアを付与し、優先順位を決定する。
処理:
リスクスコア計算:
cat docs/_testcases/_context/extract.json | \
python3 .claude/skills/testcase-generator/scripts/calculate_risk.py > \
docs/_testcases/_context/review.json
計算式(汎用的):
risk_score = business_impact (1-5) ×
user_visibility (1-3) ×
technical_complexity (1-3)
優先度ラベル付与:
優先順位ソート:
sorted(testcases, key=lambda x: x['risk_score'], reverse=True)
ユーザー確認(--no-verify がない場合のみ):
リスク評価結果(上位10件):
1. [Critical, 30] <機能名> - 正常系
2. [Critical, 28] <機能名> - セキュリティ
3. [High, 15] <機能名> - 異常系
...
この優先順位で問題ありませんか?
(承認 / スコア調整指示)
review.json 更新:
Write: docs/_testcases/_context/review.json
目的: 承認されたテスト観点から、3形式のテストケースを生成する。
処理:
Markdown生成(--format=md または デフォルト):
# assets/testcase.md.template を使用
# 各テスト観点について1ファイル生成
for tc in review.json['testcases']:
output="docs/_testcases/testcases/${tc.feature}/TC_${tc.id}.md"
# テンプレート置換で生成
done
Excel生成(--format=excel または デフォルト):
cat docs/_testcases/_context/review.json | \
python3 .claude/skills/testcase-generator/scripts/generate_excel.py \
docs/_testcases/exports/$(date +%Y%m%d_%H%M%S)_testcases.xlsx
特徴:
JSON生成(--format=json または デフォルト):
cp docs/_testcases/_context/review.json \
docs/_testcases/exports/$(date +%Y%m%d_%H%M%S)_testcases.json
目次生成:
# docs/_testcases/testcases/index.md
# テストケース目次
生成日時: YYYY-MM-DD HH:MM:SS
対象: <ユーザー指定>
総テストケース数: XX件
## 優先度別
### Critical(XX件)
- [TC_XXX_001](xxx/TC_XXX_001.md) - <説明>
## 機能別
### <機能名>(XX件)
- [TC_XXX_001](xxx/TC_XXX_001.md) - <説明>
サマリーレポート生成:
# docs/_testcases/reports/<timestamp>_generation_report.md
# テストケース生成レポート
生成日時: YYYY-MM-DD HH:MM:SS
対象: <ユーザー指定>
オプション: <使用されたオプション>
## 統計
- 総テストケース数: XX件
- 優先度別:
- Critical: XX件
- High: XX件
- Medium: XX件
- Low: XX件
- カテゴリ別:
- 正常系: XX件
- 異常系: XX件
- 境界値: XX件
- セキュリティ: XX件
## 生成ファイル
- Markdown: XX件(docs/_testcases/testcases/)
- Excel: 1ファイル(docs/_testcases/exports/*.xlsx)
- JSON: 1ファイル(docs/_testcases/exports/*.json)
## 次のステップ
1. docs/_testcases/testcases/index.md で全体を確認
2. docs/_testcases/exports/*.xlsx をExcelで開く(日本語対応、色分け、フィルター付き)
3. docs/_testcases/exports/*.json を自動化ツールにインポート
✅ テストケース生成完了
生成結果:
- Markdownテストケース: XX件
- Excel: 1ファイル(.xlsx形式、日本語対応)
- JSON: 1ファイル
- 目次: 1ファイル
- レポート: 1ファイル
出力先:
- docs/_testcases/testcases/
- docs/_testcases/exports/
- docs/_testcases/reports/
次のステップ:
1. docs/_testcases/testcases/index.md で全テストケースを確認
2. docs/_testcases/exports/*.xlsx をExcelで開く(優先度別に色分け済み)
3. Critical優先度のテストケースから実行開始
各フェーズでのユーザー承認をスキップします。
使用例:
/testcase-generator "すべて" --no-verify
動作:
推奨される使用場面:
注意:
--no-verify を使用しないことを推奨自動カウント検証(完了時に実行):
# エンドポイント数検証
endpoint_count=$(grep -c "Route::" docs/specs/routes/*.md 2>/dev/null || echo 0)
testcase_endpoint_count=$(jq '[.testcases[] | select(.type=="endpoint")] | length' docs/_testcases/exports/*.json)
if [ "$endpoint_count" -eq "$testcase_endpoint_count" ]; then
echo "✅ 全エンドポイントがカバーされています"
else
echo "⚠️ カバー率: $testcase_endpoint_count / $endpoint_count"
fi
各テストケースには以下のメタデータを含める:
詳細は assets/testcase.md.template を参照。
含まれる情報:
出力ファイル: .xlsx形式(Microsoft Excel 2007以降)
フォーマット: 1ステップ=1行(実務標準)
1つのテストケースに複数のステップがある場合、各ステップを1行ずつ記載します。 これにより、どのステップで失敗したかを明確に記録できます。
特徴:
列定義:
テストケースID | ステップ番号 | 優先度 | リスクスコア | カテゴリ | サブカテゴリ |
タイトル | 前提 | 操作 | 期待挙動 | 結果 | 実施日 | 実施者 | 備考
データの繰り返しルール:
結果コード:
依存関係:
pip install openpyxl
出力ファイル: .csv形式(UTF-8 BOM付き)
フォーマット: 1ステップ=1行(Excel形式と同じ)
特徴:
列定義: Excel形式と同じ
出力ファイル: .json形式
構造:
{
"meta": {
"generated_at": "ISO 8601",
"target": "ユーザー指定",
"total_testcases": 0,
"by_priority": {
"Critical": 0,
"High": 0,
"Medium": 0,
"Low": 0
}
},
"testcases": [
{
"id": "TC_XXX_001",
"priority": "Critical",
"risk_score": 45,
"category": "正常系",
"subcategory": "基本フロー",
"title": "...",
"description": "...",
"steps": ["操作1", "操作2", ...],
"expected_results": ["期待1", "期待2", ...],
"business_impact": 5,
"user_visibility": 3,
"technical_complexity": 3
}
]
}
用途: 自動化ツール(TestRail、Jira/Xray等)へのインポート
| エラー | 対応 |
|---|---|
| docs/specs/ が存在しない | /mkdocs の実行を提案して終了 |
| 対象が見つからない | 類似キーワードを提案、再入力を促す |
| バリデーションルールが抽出できない | 警告を表示し、正常系のみ生成 |
| スクリプト実行エラー | エラー内容を表示し、手動生成を提案 |
詳細なガイドは references/ を参照:
testcase-best-practices.md: テストケースのベストプラクティスgherkin-guide.md: Gherkin形式の書き方risk-assessment-matrix.md: リスク評価基準qa-terminology.md: QA用語集OpenAI Codex CLIを使用したコードレビュー、分析、コードベースへの質問を実行する。使用場面: (1) コードレビュー依頼時、(2) コードベース全体の分析、(3) 実装に関する質問、(4) バグの調査、(5) リファクタリング提案、(6) 解消が難しい問題の調査。トリガー: "codex", "コードレビュー", "レビューして", "分析して", "/codex"
既存ドキュメントまたはコードベースからExcelファイルを生成します。Cron処理、API仕様、データベース設計、機能仕様などのドキュメントをExcel形式で作成・変換するときに使用。ビジネス文書スタイル(敬語・物語的)、技術仕様書スタイル(構造化・詳細)、ハイブリッドスタイル(両方の長所)の3つから選択可能。
Fix Markdown bold (**text**) spacing by adding half-width spaces before and after bold text when surrounded by Japanese characters. Use when working with Markdown files that need proper bold formatting, especially mixed Japanese/English documents where **強調** patterns need spaces for correct rendering.
複数のMarkdownファイルを美しく安全な単一HTMLダッシュボードに変換する
セッション終了時に振り返りを生成し、学習内容・成功したプロンプト・本音のフィードバックを記録する。個人の知識ベースを構築し、強力で完成度の高いAI協働パターンプロンプトを構築する目的。
コードベースの脆弱性を自律的に発見し、構造化されたマークダウンレポートを生成する