qa-test-planner について
QA 自動化エンジニア向けのテスト計画スキルです。要件から手動テストケース、Playwright テスト、回帰スイート、バグ報告を作成し、テンプレートで作業を支援します。Playwright MCP によるブラウザー検証にも対応します。
主な機能
- 01テスト計画と手動ケースの作成
- 02Playwright 自動テストの作成
- 03リスクベースの回帰スイート構築
- 04再現手順を含むバグ報告
- 05Playwright MCP による UI 検証
活用シーン
- 01ログインや購入フローのテスト計画
- 02要件から追跡可能なケースを作成
- 03ブラウザー自動化で UI 要素を確認
- 04優先度別に回帰テストを整理
MCP 対応
Playwright MCP を任意で利用してブラウザー検証を行い、ページ遷移や UI 要素の確認ができます。
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ fugazi/ test-automation-skills-agents --skill qa-test-plannerインストール後、Claude Code で/qa-test-plannerを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
LICENSE.txtreferences/bug_report_templates.mdplaywright_automation.mdregression_testing.mdtest_case_templates.mdtemplates/bug-report.mdplaywright-test.mdtest-case.mdtest-plan.md詳細
QA テストプランナー
QA オートメーションエンジニアがテスト計画を作成し、手動テストケースを生成し、自動化された Playwright テストを構築し、回帰テストスイートを作成し、ブラウザー自動化で UI を検証し、効果的にバグを記録するための包括的なスキルです。
有効化: このスキルは、名前を明示的に指定した場合(例:
/qa-test-planner、qa-test-planner、またはuse the skill qa-test-planner)にのみ起動します。
クイックスタート
テスト計画を作成する:
"Create a test plan for the user authentication feature using the test-plan.md template"
テストケースを生成する:
"Generate manual test cases for the checkout flow using the test-case.md template"
自動化された Playwright テストを作成する:
"Create Playwright automated tests for the login flow using the playwright-test.md template"
ブラウザーで UI を検証する:
"Navigate to the login page and validate all form elements are visible using Playwright MCP"
回帰テストスイートを構築する:
"Build a regression test suite for the payment module using test-case.md templates grouped by priority"
バグレポートを作成する:
"Create a bug report for the form validation issue using the bug-report.md template"
クイックリファレンス
| タスク | テンプレート | 所要時間 |
|---|---|---|
| テスト計画 | templates/test-plan.md | 10~15 分 |
| テストケース | templates/test-case.md | 1 件あたり 5~10 分 |
| 自動テスト | templates/playwright-test.md | 1 件あたり 5~15 分 |
| バグレポート | templates/bug-report.md | 5 分 |
このスキルを使う場面
次のような場合に、このスキルを使います。
- テスト計画やテスト戦略を作成またはレビューする
- 要件やユーザーストーリーからテストケースを生成する
- 再現手順が明確なバグレポートを作成する
- リスクベースで選定した回帰テストスイートを構築する
- ベストプラクティスに沿ってPlaywright による自動化を実装する
- テスト実行と結果を記録する
- 探索的テストセッションを実施する
- ブラウザー自動化でUI 要素を検証する
前提条件
| 要件 | 備考 |
|---|---|
| Node.js 18+ | Playwright による自動化に必要です |
| Playwright | 自動化には npm init playwright@latest を使用します |
| テキストエディター | Markdown ファイルの作成・編集に使用します |
| Git | テストウェアのバージョン管理に推奨されます |
| Playwright MCP | 任意。ブラウザーベースの検証に使用します |
仕組み
Your Request
│
▼
┌─────────────────────────────────────────────────────┐
│ 1. ANALYZE │
│ • Parse feature/requirement │
│ • Identify test types needed (manual/automated) │
│ • Determine scope and priorities │
├─────────────────────────────────────────────────────┤
│ 2. SELECT TEMPLATE │
│ • Choose appropriate template from assets/ │
│ • Review template structure and sections │
│ • Identify placeholders to fill │
├─────────────────────────────────────────────────────┤
│ 3. CUSTOMIZE │
│ • Fill in placeholders with project details │
│ • Add specific test steps and scenarios │
│ • Apply Playwright best practices │
├─────────────────────────────────────────────────────┤
│ 4. EXECUTE (with Playwright MCP) │
│ • Navigate and interact with browser │
│ • Capture screenshots and evidence │
│ • Validate UI elements and behavior │
├─────────────────────────────────────────────────────┤
│ 5. VALIDATE │
│ • Check completeness │
│ • Verify traceability │
│ • Ensure actionable steps │
└─────────────────────────────────────────────────────┘
│
▼
QA Deliverable Ready
ワークフロー
1) テスト計画を作成する
- 出発点として
templates/test-plan.mdを使用します - テストの目的、対象範囲、前提条件、制約を特定します
- テストレベルとテストタイプ(機能、UI、パフォーマンスなど)を定義します
- 環境、テストデータ、ツール、設定の要件を指定します
- 開始/終了基準、成果物、報告頻度を定義します
- リスクマトリックスと緩和策を追加します
- それに応じてテストに優先順位を付けます(リスクベースドテスト)
テンプレート: templates/test-plan.md
2) テストケースを生成する
- 個々のテストケースには
templates/test-case.mdを使用します - 要件をテスト条件(何をテストするか)に変換します
- テスト設計技法を選びます。
- 入力には同値分割と境界値分析
- ルールの組み合わせには決定表
- ライフサイクル/フローには状態遷移
- エンドツーエンドの操作にはユースケース/シナリオテスト
- 独立性があり、曖昧さがなく、追跡可能なテストケースを作成します
- 観察および測定可能な期待結果を追加します
- リスクベースの回帰テストに役立つ優先度とリスクのタグを追加します
- 安定性と価値の基準を使って自動化候補を指定します
テンプレート:
templates/test-case.md- 個別のテストケース
3) 自動テストスクリプトを実装する(Playwright)
- テンプレートとして
templates/playwright-test.mdを使用します - テストの読みやすさを保ち、テストケースに沿わせます
- 壊れやすいセレクターより、安定したロケーター(例:
getByTestId)を優先します - 恣意的な待機時間は避け、Playwright の自動待機と明示的なアサーションを使用します
- テストを独立させます(前提条件を明示的に設定します)
- テストタイトルにタグ(例:
@smoke、@regression)を付けて、テストスイートの実行に活用します - デバッグ時のトリアージ用に、成果物(スクリーンショット/動画/トレース)を取得します
テンプレート: templates/playwright-test.md
4) 回帰テストスイートを構築・維持する
templates/regression-suite.mdを使用してスイートを定義します- スイートの階層を定義します:スモーク(重要なパス)、サニティ(ビルド検証)、回帰(広範囲)、フル(リリース)
- リスク、頻度、重要度、欠陥履歴を基にテストを選択します
- テストに一貫性のあるタグを付け、選択ルールを文書化します
- スイートを定期的に見直します:古くなったカバレッジを削除し、すり抜けた欠陥に対するカバレッジを追加します
テンプレート: 優先度ごとにまとめた個別の test-case.md テンプレートを使用します
5) バグレポートを作成する
templates/bug-report.mdを出発点として使用します- 確実に再現できるようにし、手順を最小限に絞ります
- ばらつき(頻度)と影響範囲を記録します
- 環境の詳細(ビルド/アプリのバージョン、OS、ブラウザー/デバイス、アカウント/ロール)を記録します
- 期待される動作と実際の動作を説明します
- 影響を含め、重大度と優先度を一貫した基準で設定します
- 証拠(スクリーンショット、コンソールログ、ネットワークトレース、Playwright のトレース)を添付します
- ライフサイクルを追跡します:トリアージメモ、担当者、修正バージョン、検証手順
テンプレート: templates/bug-report.md
セキュリティガイドライン
認証情報の取り扱い
テストケースやコードに実際の認証情報を埋め込まないでください。 代わりにプレースホルダーを使用します:
| 代わりに使わないもの | 使用するもの |
|---|---|
[email protected] / Test123! | ${TEST_USER_EMAIL} または process.env.TEST_USER_EMAIL |
password: "actualpassword" | password: "${TEST_PASSWORD}"(環境変数から取得) |
| ハードコードされたシークレット | .env ファイルを介した環境変数 |
テストデータのベストプラクティス:
- API または管理パネルを介してプロビジョニングされたテストアカウントを使用します
- 認証情報を環境変数に保存します
- Faker.js などを使用してテストデータを生成します
- 実際の認証情報をバージョン管理にコミットしないでください
URL ナビゲーションの安全性
Playwright MCP を使用して外部または信頼できない URL を検証する場合:
- ナビゲーションする前に、URL が信頼できるドメインのものか確認します
- 信頼できないソースからの任意の JavaScript の実行は避けます
- サードパーティーアプリケーションのテストでは、サンドボックス環境を使用します
- 検証せずに、信頼できないユーザー入力で提供された URL に移動しないでください
入力のサニタイズ
すべてのユーザー入力は、次の要件を満たす必要があります:
- 期待される形式であることを検証する
- 生成コードで使用する場合はエスケープする
eval()やシェル実行に直接渡さない
アンチパターン
| 避けること | 理由 | 代わりに行うこと |
|---|---|---|
| 曖昧なテスト手順 | 再現できない | 具体的な操作と期待される結果を記載する |
| 前提条件の欠落 | テストが予期せず失敗する | すべてのセットアップ要件を文書化する |
| テストデータがない | テスターが作業できない | サンプルデータまたは生成方法を提供する |
| 汎用的なバグタイトル | 追跡しにくい | 具体的なタイトル:「[Feature] issue when [action]」 |
| エッジケースを省略する | 重大なバグを見逃す | 境界値や null を含める |
| 認証情報を埋め込む | セキュリティリスク | 環境変数を使用する |
検証チェックリスト
テスト計画:
- スコープが明確に定義されている(対象/対象外)
- 開始/終了基準が指定されている
- リスクが軽減策とともに特定されている
- スケジュールが現実的である
テストケース:
- 各ステップに期待結果がある
- 前提条件が文書化されている
- テストデータでプレースホルダーを使用している(認証情報をハードコードしていない)
- 優先度が割り当てられている
自動テスト:
- ロールベースのロケーターを使用している
- Web ファーストのアサーションを実装している
- ページオブジェクトモデルを適用している
- 明確にするために
test.step()でグループ化している - エラーハンドリングとスクリーンショットを含めている
- 認証情報を環境変数から読み込んでいる
バグレポート:
- 再現可能な手順がある
- 環境が文書化されている
- スクリーンショット/証拠が添付されている
- 重要度/優先度が設定されている
テンプレート
利用可能なテンプレート
| テンプレート | 用途 | 形式 |
|---|---|---|
test-plan.md | ISTQB に準拠したテスト計画の構成 | Markdown |
test-case.md | 全セクションを含む個別のテストケース | Markdown |
bug-report.md | 詳細な不具合レポート | Markdown |
playwright-test.md | ベストプラクティスに基づく Playwright テストテンプレート | Markdown |
テンプレートの使用方法
すべてのテンプレートは templates/ にあります。使用するには、次の手順に従ってください。
- テンプレートをコピーして、プロジェクトディレクトリに配置します
- プレースホルダーに入力します(
[brackets]または${VARIABLE}で示されています) - セクションをカスタマイズして、具体的なニーズに合わせます
- 必要に応じてセクションを削除または追加します
- 完成したドキュメントを保存し、バージョン管理します
参考資料
references/test_case_templates.md- すべてのテストタイプに対応する標準フォーマットreferences/bug_report_templates.md- ドキュメントのテンプレートreferences/regression_testing.md- テストスイートの構築と実行references/playwright_automation.md- ブラウザーの自動化とテスト生成
例
例:テストケーステンプレートの使用
リクエスト:
"Create a test case for user login with valid credentials using the test-case.md template"
結果: AI は次の操作を行います。
templates/test-case.mdを開きます- プレースホルダーに具体的な詳細を入力します。
- TC-ID:
TC-LOGIN-001 - タイトル:
正しい認証情報で有効なユーザーログインを検証する - 優先度:
P0 (Critical) - 種類:
Functional - 目的:
ユーザーが有効な認証情報で正常にログインできることを検証する - 前提条件:
テスト環境にユーザーアカウントが存在すること。ブラウザーの Cookie がクリアされていること - テスト手順:具体的なログイン手順を入力します
- テストデータ:
${TEST_USER_EMAIL}と${TEST_USER_PASSWORD}のプレースホルダーを使用します
- TC-ID:
- 入力済みのテストケース Markdown ファイルを提供します
例:バグレポートテンプレートの使用
リクエスト:
"Create a bug report for a login form validation issue using the bug-report.md template"
結果: AI は次の操作を行います。
templates/bug-report.mdを開きます- 一意のバグ ID を生成します(例:
BUG-1715345678) - プレースホルダーに入力します。
- タイトル:
ログインフォームが無効なメールアドレス形式を受け付ける - 重大度:
High - 優先度:
P1 - 環境:実際の OS、ブラウザー、ビルドの詳細を入力します
- 再現手順:具体的で再現可能な手順を追加します
- 期待結果と実際の結果:問題を明確に説明します
- 影響:ユーザーとビジネスへの影響を説明します
- タイトル:
- 入力済みのバグレポート Markdown ファイルを提供します
例:Playwright 仕様テンプレートの使用
リクエスト:
"Create Playwright tests for the login flow using the playwright-test.md template"
結果: AI は次の操作を行います。
templates/playwright-test.mdを開きます- ログイン機能に合わせてテストの describe ブロックをカスタマイズします
- 具体的なテストケースを追加します。
TC-LOGIN-001 @smoke @regression- 有効なログインTC-LOGIN-002 @regression @negative- 無効な認証情報TC-LOGIN-003 @regression @boundary- パスワードの検証
- Playwright のベストプラクティスに従ってテスト手順を実装します。
- ロールベースのロケーター(
getByRole) - Web ファーストのアサーション(
toBeVisible、toHaveText) - 読みやすさのために
test.step()でグループ化
- ロールベースのロケーター(
- 環境変数に関するセキュリティ上の注意事項を追加します
- TypeScript のコード例を含む、完成した Markdown テンプレートを提供します
ベストプラクティス(上記のアンチパターンを避ける)
テストケースの作成
- 具体的かつ明確に記述し、各手順の期待結果を含めます
- 1 ケースにつき 1 つの項目をテストし、すべての前提条件とテストデータを記録します
- エッジケースと境界値を含め、一貫した命名を使用します
バグ報告
- 最小限で正確な再現手順を記載し、環境の詳細を明記します
- スクリーンショットや動画を含め、ユーザーとビジネスへの影響を説明します
- 重大度と優先度を設定し、明確で具体的なタイトルを付けて重複を避けます
回帰テスト
- 繰り返し実行するテストを自動化し、重要なパスを優先します
- スモークテストを頻繁に実行し、テストスイートを定期的に見直して整理します
- 一貫したタグ付けを行い、失敗した回帰テストを決して無視しません
セキュリティ
- 認証情報には環境変数を使用し、シークレットをコミットしないでください
- 移動前に URL を検証し、疑わしいコンテンツを報告します
- ユーザー入力から任意の JavaScript を実行しないでください
品質ゲート(自己チェック)
- テスト計画には、範囲、アプローチ、リスク、環境、開始/終了基準、成果物、メトリクスが含まれています
- テストケースは追跡可能で、独立した単位になっており、決定論的で、明確なオラクルとデータを含んでいます
- 自動化は保守しやすいものです(安定したロケーター、最小限の不安定さ、独立したテスト、明確なアサーション)
- 回帰テストはリスクベースでタグ付けされ、追加/削除の明確なルールに基づいて整理されています
- バグレポートは再現可能で、対応につながる内容になっており、証拠、環境、影響が含まれています
トラブルシューティング
| 問題 | 原因 | 解決策 |
|---|---|---|
| テストケースの追跡可能性がない | 要件 ID が不足しています | requirement_id 列を追加し、ユーザーストーリー/AC にリンクします |
| バグ報告が却下される | 再現手順が不十分です | 最小限の手順を使い、正確なデータと環境を含めます |
| 回帰テストスイートが遅すぎる | テストが多すぎ、優先順位付けがありません | リスクベースの選定を適用し、スモーク/サニティ/完全版に分類します |
| 自動テストが不安定です | ロケーターまたはタイミングが不安定です | data-testid を使用し、スリープを避け、Playwright の自動待機を使用します |
| テストの見積もりが不正確です | スコープの拡大、リスクの見落としです | 予備を追加し、スコープが変わったら再見積もりします |
よくある合理化
テストの品質を損なう、よくある近道や「これで十分」という言い訳と、それぞれの実態を示します。
| 合理化 | 実態 |
|---|---|
| 「テスト計画は書類作りにすぎません」 | 優れたテスト計画は、テスト開始前にスコープの拡大、シナリオの見落とし、期待の不一致を防ぎます。 |
| 「テストケースは進めながら考えればよいです」 | アドホックなテストでは抜け漏れが生じます。体系的なテストケースにより、網羅性と追跡可能性を確保できます。 |
| 「バグ報告は形式ばらなくてもよいです」 | 正確な手順を記した再現可能なバグ報告により、テスターと開発者の間で何時間もやり取りする手間を省けます。 |
| 「見積もりは単なる推測です」 | テストの見積もり手法(ファンクションポイント分析、デルファイ法)により、精度と信頼性が向上します。 |
| 「回帰テストスイートは自動的に維持されます」 | 整理しなければ、テストスイートは肥大化して遅くなります。定期的な見直しと削除は必須です。 |
| 「テンプレートは作業を遅らせます」 | テンプレートにより見落としを防ぎ、チーム全体の品質を標準化できます。 |
「テストはバグの存在を示すものであり、不在を示すものではない。」- エドガー・ダイクストラ
「品質とは行為ではなく、習慣である。」- アリストテレス
検証
このスキルのワークフローを完了したら、次の項目を確認してください。
- テスト戦略ドキュメントを作成済み — スコープ、アプローチ、リソース、スケジュール、リスクを網羅しています
- テストレベルを定義済み — 単体、統合、E2E、受け入れの各レベルと基準を定めています
- 開始/終了基準を文書化済み — テストの開始と終了の条件を明確に定義しています
- リスクベースの優先順位付けを実施済み — 影響度 × 発生可能性に基づいてテストに優先順位を付けています
- 環境要件を一覧化済み — ハードウェア、ソフトウェア、データ、ネットワークの要件を記載しています
- 欠陥管理プロセスを定義済み — バグの報告、追跡、解決方法を定めています
- ステークホルダーの承認を取得済み — 関連するステークホルダーがテスト計画をレビューし、承認しています