bmad-qa-generate-e2e-tests
既存の機能に対して、ユーザーが「〇〇のQA自動テストを作成して」と指示した際に、エンドツーエンドの自動テストを生成し、品質保証の効率化を支援するSkill。
📜 元の英語説明(参考)
Generate end to end automated tests for existing features. Use when the user says "create qa automated tests for [feature]"
🇯🇵 日本人クリエイター向け解説
既存の機能に対して、ユーザーが「〇〇のQA自動テストを作成して」と指示した際に、エンドツーエンドの自動テストを生成し、品質保証の効率化を支援するSkill。
※ jpskill.com 編集部が日本のビジネス現場向けに補足した解説です。Skill本体の挙動とは独立した参考情報です。
下記のコマンドをコピーしてターミナル(Mac/Linux)または PowerShell(Windows)に貼り付けてください。 ダウンロード → 解凍 → 配置まで全自動。
mkdir -p ~/.claude/skills && cd ~/.claude/skills && curl -L -o bmad-qa-generate-e2e-tests.zip https://jpskill.com/download/23702.zip && unzip -o bmad-qa-generate-e2e-tests.zip && rm bmad-qa-generate-e2e-tests.zip
$d = "$env:USERPROFILE\.claude\skills"; ni -Force -ItemType Directory $d | Out-Null; iwr https://jpskill.com/download/23702.zip -OutFile "$d\bmad-qa-generate-e2e-tests.zip"; Expand-Archive "$d\bmad-qa-generate-e2e-tests.zip" -DestinationPath $d -Force; ri "$d\bmad-qa-generate-e2e-tests.zip"
完了後、Claude Code を再起動 → 普通に「動画プロンプト作って」のように話しかけるだけで自動発動します。
💾 手動でダウンロードしたい(コマンドが難しい人向け)
- 1. 下の青いボタンを押して
bmad-qa-generate-e2e-tests.zipをダウンロード - 2. ZIPファイルをダブルクリックで解凍 →
bmad-qa-generate-e2e-testsフォルダができる - 3. そのフォルダを
C:\Users\あなたの名前\.claude\skills\(Win)または~/.claude/skills/(Mac)へ移動 - 4. Claude Code を再起動
⚠️ ダウンロード・利用は自己責任でお願いします。当サイトは内容・動作・安全性について責任を負いません。
🎯 このSkillでできること
下記の説明文を読むと、このSkillがあなたに何をしてくれるかが分かります。Claudeにこの分野の依頼をすると、自動で発動します。
📦 インストール方法 (3ステップ)
- 1. 上の「ダウンロード」ボタンを押して .skill ファイルを取得
- 2. ファイル名の拡張子を .skill から .zip に変えて展開(macは自動展開可)
- 3. 展開してできたフォルダを、ホームフォルダの
.claude/skills/に置く- · macOS / Linux:
~/.claude/skills/ - · Windows:
%USERPROFILE%\.claude\skills\
- · macOS / Linux:
Claude Code を再起動すれば完了。「このSkillを使って…」と話しかけなくても、関連する依頼で自動的に呼び出されます。
詳しい使い方ガイドを見る →- 最終更新
- 2026-05-18
- 取得日時
- 2026-05-18
- 同梱ファイル
- 1
📖 Skill本文(日本語訳)
※ 原文(英語/中国語)を Gemini で日本語化したものです。Claude 自身は原文を読みます。誤訳がある場合は原文をご確認ください。
QA E2Eテスト生成ワークフロー
目標: 実装されたコードに対して、自動化されたAPIテストとE2Eテストを生成します。
あなたの役割: あなたはQA自動化エンジニアです。テストの生成のみを行います。コードレビューやストーリーの検証は行いません(それにはbmad-code-reviewスキルを使用してください)。
規約
- ベアパス(例:
checklist.md)はスキルルートから解決されます。 {skill-root}はこのスキルのインストールディレクトリ(customize.tomlがある場所)に解決されます。{project-root}で始まるパスは、プロジェクトの作業ディレクトリから解決されます。{skill-name}はスキルディレクトリのベース名に解決されます。
アクティベーション時
ステップ1: ワークフローブロックの解決
実行: python3 {project-root}/_bmad/scripts/resolve_customization.py --skill {skill-root} --key workflow
スクリプトが失敗した場合、リゾルバーと同じ構造マージルールを適用して、ベース → チーム → ユーザーの順で以下の3つのファイルを読み込み、workflowブロックを自分で解決してください。
{skill-root}/customize.toml— デフォルト{project-root}/_bmad/custom/{skill-name}.toml— チームによる上書き{project-root}/_bmad/custom/{skill-name}.user.toml— 個人による上書き
ファイルが見つからない場合はスキップされます。スカラは上書き、テーブルはディープマージ、codeまたはidでキー付けされたテーブルの配列は一致するエントリを置き換え、新しいエントリを追加し、その他のすべての配列は追加されます。
ステップ2: 前処理ステップの実行
{workflow.activation_steps_prepend}の各エントリを順に実行してから続行します。
ステップ3: 永続的な事実の読み込み
{workflow.persistent_facts}の各エントリを、ワークフローの残りの実行期間中保持する基礎的なコンテキストとして扱います。file:で始まるエントリは{project-root}下のパスまたはグロブです。参照されたコンテンツを事実として読み込みます。その他のすべてのエントリはそのままの事実です。
ステップ4: 設定の読み込み
{project-root}/_bmad/bmm/config.yamlから設定を読み込み、以下を解決します。
project_name、user_namecommunication_language、document_output_languageimplementation_artifactsdateをシステム生成の現在の日時として- エージェントのコミュニケーションスタイルで、設定された
{communication_language}を使用して、必ず出力を話す必要があります。
ステップ5: ユーザーへの挨拶
{user_name}に、{communication_language}で挨拶します。
ステップ6: 後処理ステップの実行
{workflow.activation_steps_append}の各エントリを順に実行します。
アクティベーションが完了しました。以下のワークフローを開始します。
パス
test_dir={project-root}/testssource_dir={project-root}default_output_file={implementation_artifacts}/tests/test-summary.md
実行
ステップ0: テストフレームワークの検出
プロジェクトに既存のテストフレームワークがあるか確認します。
package.jsonの依存関係(playwright、jest、vitest、cypressなど)を探します。- 既存のテストファイルを確認してパターンを理解します。
- プロジェクトに既に存在するテストフレームワークを使用します。
- フレームワークが存在しない場合:
- ソースコードを分析してプロジェクトタイプ(React、Vue、Node APIなど)を決定します。
- そのスタックに現在推奨されているテストフレームワークをオンラインで検索します。
- メタフレームワークを提案し、それを使用します(またはユーザーに確認を求めます)。
ステップ1: 機能の特定
ユーザーに何をテストするか尋ねます。
- 特定の機能/コンポーネント名
- スキャンするディレクトリ(例:
src/components/) - またはコードベース内の機能を自動検出
ステップ2: APIテストの生成(該当する場合)
APIエンドポイント/サービスの場合、以下のテストを生成します。
- ステータスコード(200、400、404、500)をテストします。
- レスポンス構造を検証します。
- ハッピーパスと1〜2のエラーケースをカバーします。
- プロジェクトの既存のテストフレームワークパターンを使用します。
ステップ3: E2Eテストの生成(UIが存在する場合)
UI機能の場合、以下のテストを生成します。
- ユーザーワークフローをエンドツーエンドでテストします。
- セマンティックロケーター(ロール、ラベル、テキスト)を使用します。
- ユーザーインタラクション(クリック、フォーム入力、ナビゲーション)に焦点を当てます。
- 目に見える結果をアサートします。
- テストを線形でシンプルに保ちます。
- プロジェクトの既存のテストパターンに従います。
ステップ4: テストの実行
テストを実行して、合格することを確認します(プロジェクトのテストコマンドを使用します)。
失敗が発生した場合は、直ちに修正します。
ステップ5: 要約の作成
Markdown形式の要約を出力します。
# テスト自動化の要約
## 生成されたテスト
### APIテスト
- [x] tests/api/endpoint.spec.ts - エンドポイント検証
### E2Eテスト
- [x] tests/e2e/feature.spec.ts - ユーザーワークフロー
## カバレッジ
- APIエンドポイント: 5/10 カバー済み
- UI機能: 3/8 カバー済み
## 次のステップ
- CIでテストを実行する
- 必要に応じてさらにエッジケースを追加する
シンプルに保つ
行うこと:
- 標準的なテストフレームワークAPIを使用します。
- ハッピーパスと重要なエラーに焦点を当てます。
- 読みやすく、保守しやすいテストを作成します。
- テストを実行して、合格することを確認します。
避けること:
- 複雑なフィクスチャの構成
- 過剰な設計
- 不要な抽象化
高度な機能の場合:
プロジェクトが以下を必要とする場合:
- リスクベースのテスト戦略
- テスト設計計画
- 品質ゲートとNFR評価
- 包括的なカバレッジ分析
- 高度なテストパターンとユーティリティ
Test Architect (TEA) モジュールをインストールしてください: https://bmad-code-org.github.io/bmad-method-test-architecture-enterprise/
出力
要約を以下に保存します: {default_output_file}
完了しました! テストが生成され、検証されました。./checklist.mdと照合して検証してください。
完了時
実行: python3 {project-root}/_bmad/scripts/resolve_customization.py --skill {skill-root} --key workflow.on_complete
解決されたworkflow.on_completeが空でない場合、終了する前の最終的な指示としてそれに従います。
📜 原文 SKILL.md(Claudeが読む英語/中国語)を展開
QA Generate E2E Tests Workflow
Goal: Generate automated API and E2E tests for implemented code.
Your Role: You are a QA automation engineer. You generate tests ONLY — no code review or story validation (use the bmad-code-review skill for that).
Conventions
- Bare paths (e.g.
checklist.md) resolve from the skill root. {skill-root}resolves to this skill's installed directory (wherecustomize.tomllives).{project-root}-prefixed paths resolve from the project working directory.{skill-name}resolves to the skill directory's basename.
On Activation
Step 1: Resolve the Workflow Block
Run: python3 {project-root}/_bmad/scripts/resolve_customization.py --skill {skill-root} --key workflow
If the script fails, resolve the workflow block yourself by reading these three files in base → team → user order and applying the same structural merge rules as the resolver:
{skill-root}/customize.toml— defaults{project-root}/_bmad/custom/{skill-name}.toml— team overrides{project-root}/_bmad/custom/{skill-name}.user.toml— personal overrides
Any missing file is skipped. Scalars override, tables deep-merge, arrays of tables keyed by code or id replace matching entries and append new entries, and all other arrays append.
Step 2: Execute Prepend Steps
Execute each entry in {workflow.activation_steps_prepend} in order before proceeding.
Step 3: Load Persistent Facts
Treat every entry in {workflow.persistent_facts} as foundational context you carry for the rest of the workflow run. Entries prefixed file: are paths or globs under {project-root} — load the referenced contents as facts. All other entries are facts verbatim.
Step 4: Load Config
Load config from {project-root}/_bmad/bmm/config.yaml and resolve:
project_name,user_namecommunication_language,document_output_languageimplementation_artifactsdateas system-generated current datetime- YOU MUST ALWAYS SPEAK OUTPUT in your Agent communication style with the config
{communication_language}
Step 5: Greet the User
Greet {user_name}, speaking in {communication_language}.
Step 6: Execute Append Steps
Execute each entry in {workflow.activation_steps_append} in order.
Activation is complete. Begin the workflow below.
Paths
test_dir={project-root}/testssource_dir={project-root}default_output_file={implementation_artifacts}/tests/test-summary.md
Execution
Step 0: Detect Test Framework
Check project for existing test framework:
- Look for
package.jsondependencies (playwright, jest, vitest, cypress, etc.) - Check for existing test files to understand patterns
- Use whatever test framework the project already has
- If no framework exists:
- Analyze source code to determine project type (React, Vue, Node API, etc.)
- Search online for current recommended test framework for that stack
- Suggest the meta framework and use it (or ask user to confirm)
Step 1: Identify Features
Ask user what to test:
- Specific feature/component name
- Directory to scan (e.g.,
src/components/) - Or auto-discover features in the codebase
Step 2: Generate API Tests (if applicable)
For API endpoints/services, generate tests that:
- Test status codes (200, 400, 404, 500)
- Validate response structure
- Cover happy path + 1-2 error cases
- Use project's existing test framework patterns
Step 3: Generate E2E Tests (if UI exists)
For UI features, generate tests that:
- Test user workflows end-to-end
- Use semantic locators (roles, labels, text)
- Focus on user interactions (clicks, form fills, navigation)
- Assert visible outcomes
- Keep tests linear and simple
- Follow project's existing test patterns
Step 4: Run Tests
Execute tests to verify they pass (use project's test command).
If failures occur, fix them immediately.
Step 5: Create Summary
Output markdown summary:
# Test Automation Summary
## Generated Tests
### API Tests
- [x] tests/api/endpoint.spec.ts - Endpoint validation
### E2E Tests
- [x] tests/e2e/feature.spec.ts - User workflow
## Coverage
- API endpoints: 5/10 covered
- UI features: 3/8 covered
## Next Steps
- Run tests in CI
- Add more edge cases as needed
Keep It Simple
Do:
- Use standard test framework APIs
- Focus on happy path + critical errors
- Write readable, maintainable tests
- Run tests to verify they pass
Avoid:
- Complex fixture composition
- Over-engineering
- Unnecessary abstractions
For Advanced Features:
If the project needs:
- Risk-based test strategy
- Test design planning
- Quality gates and NFR assessment
- Comprehensive coverage analysis
- Advanced testing patterns and utilities
Install Test Architect (TEA) module: https://bmad-code-org.github.io/bmad-method-test-architecture-enterprise/
Output
Save summary to: {default_output_file}
Done! Tests generated and verified. Validate against ./checklist.md.
On Complete
Run: python3 {project-root}/_bmad/scripts/resolve_customization.py --skill {skill-root} --key workflow.on_complete
If the resolved workflow.on_complete is non-empty, follow it as the final terminal instruction before exiting.