test-design
リスクに基づいた優先順位付け、テストレベル、モック戦略、CI/CD連携を考慮し、包括的なテスト戦略を設計し、受け入れ基準に対するシナリオ作成や外部依存関係のモック戦略、CI/CD実行計画を立て、実装前にテストの網羅性を確保するSkill。
📜 元の英語説明(参考)
Design comprehensive test strategies with risk-informed prioritization (P0/P1/P2), test levels (unit/integration/E2E), mock strategies, and CI/CD integration. Creates Given-When-Then scenarios for all acceptance criteria, develops mock strategies for external dependencies, and plans CI/CD execution stages. Use during task planning before implementation to ensure comprehensive test coverage.
🇯🇵 日本人クリエイター向け解説
リスクに基づいた優先順位付け、テストレベル、モック戦略、CI/CD連携を考慮し、包括的なテスト戦略を設計し、受け入れ基準に対するシナリオ作成や外部依存関係のモック戦略、CI/CD実行計画を立て、実装前にテストの網羅性を確保するSkill。
※ jpskill.com 編集部が日本のビジネス現場向けに補足した解説です。Skill本体の挙動とは独立した参考情報です。
下記のコマンドをコピーしてターミナル(Mac/Linux)または PowerShell(Windows)に貼り付けてください。 ダウンロード → 解凍 → 配置まで全自動。
mkdir -p ~/.claude/skills && cd ~/.claude/skills && curl -L -o test-design.zip https://jpskill.com/download/9713.zip && unzip -o test-design.zip && rm test-design.zip
$d = "$env:USERPROFILE\.claude\skills"; ni -Force -ItemType Directory $d | Out-Null; iwr https://jpskill.com/download/9713.zip -OutFile "$d\test-design.zip"; Expand-Archive "$d\test-design.zip" -DestinationPath $d -Force; ri "$d\test-design.zip"
完了後、Claude Code を再起動 → 普通に「動画プロンプト作って」のように話しかけるだけで自動発動します。
💾 手動でダウンロードしたい(コマンドが難しい人向け)
- 1. 下の青いボタンを押して
test-design.zipをダウンロード - 2. ZIPファイルをダブルクリックで解凍 →
test-designフォルダができる - 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 自身は原文を読みます。誤訳がある場合は原文をご確認ください。
品質スキル: テスト設計戦略
リスクに基づいた優先順位付け、テストレベルの推奨事項(ユニット/統合/E2E)、依存関係のモック戦略、および CI/CD 統合計画を使用して、実装前に包括的なテスト戦略を設計します。
目的
以下を指定するテスト設計ドキュメントを作成します。
- すべての受け入れ基準に対する Given-When-Then 形式のテストシナリオ
- テスト対象に基づくテストレベル(ユニット、統合、E2E)
- リスクスコアと重要度に基づくテスト優先度(P0/P1/P2)
- 実装ガイダンスを含む外部依存関係のモック戦略
- 実行ステージとカバレッジ要件を含む CI/CD 統合
主要なイノベーション (BMAD パターン):
- 実装前のテスト設計は、記述するテストをガイドします
- リスクに基づいた優先順位付けにより、重要なテストの欠落を防ぎます
- レベルの推奨事項は、テスト実行速度を最適化します
- モック戦略により、複雑なシステムの効果的なテストが可能になります
このスキルを使用するタイミング
最適な使用:
- タスク仕様の作成後、実装前
- リスクプロファイリング後(優先順位付けにリスクスコアを使用)
- 複数のテストレベルを必要とする複雑な機能の場合
- 新しいコンポーネントのテストインフラストラクチャを計画する場合
スキップできる場合:
- 明らかなテストケース(1〜2個のテスト)を含む単純なバグ修正
- 既存のテストパターンを使用した簡単な変更
- 緊急ホットフィックス(安定化後にテスト設計を追加)
トリガー:
- ユーザーが「テストを設計する」、「テスト戦略を作成する」、「テストケースを計画する」ように依頼した場合
- 複雑な機能を実装する前(積極的に提案する)
- リスクプロファイルが完了した後(自然な次のステップ)
テストレベル
ユニットテスト
目的: 個々の関数、メソッド、クラスを分離してテストする
特徴:
- 高速な実行(各 < 50ms)
- 外部依存関係なし(完全にモック化)
- ビジネスロジック、アルゴリズム、検証ルールをテストする
- 高いカバレッジが期待される(> 80%)
使用するタイミング: ビジネスロジック、データ変換、検証ルール、ユーティリティ関数、エラー処理
統合テスト
目的: コンポーネント/モジュール間の相互作用をテストする
特徴:
- 適度な実行時間(各 < 500ms)
- テストデータベース、テスト API を使用する場合があります
- コンポーネントの相互作用と統合ポイントをテストする
- サービス境界に焦点を当てる
使用するタイミング: API エンドポイント、データベース操作、サービス間通信、認証フロー、外部 API 相互作用(モック化)
E2E (エンドツーエンド) テスト
目的: システム全体を通して完全なユーザー体験をテストする
特徴:
- 遅い実行(テストあたり数秒)
- 実際の環境またはほぼ実際の環境を使用する
- 重要なユーザーワークフローをエンドツーエンドでテストする
- テスト数は少ないが高価値(クリティカルパスに焦点を当てる)
使用するタイミング: 重要なユーザー体験、複数ステップのワークフロー、UI + バックエンド統合、ビジネスクリティカルパス、リグレッション防止
テスト優先度レベル
P0 (クリティカル) - 必須
要件:
- 重要な機能(認証、支払い、データ整合性)をテストする
- セキュリティ要件(インジェクション、XSS、認証バイパス)を検証する
- データ損失または破損を防ぐ
- リスクの高い領域(リスクプロファイルからのスコア≥6)をカバーする
- マージ前に合格する必要がある(P0 が失敗した場合、CI はマージをブロックする)
例: 認証/認可、支払い処理、データ整合性操作、セキュリティ脆弱性防止
P1 (高) - あるべき
要件:
- 重要な機能(コア機能)をテストする
- 中リスク領域(スコア 3〜5)をカバーする
- 主要なユーザー機能を検証する
- マージ前に合格する必要がある(正当な理由があれば例外は許可される)
例: コア機能の機能、エラー処理パス、パフォーマンス要件、ユーザーエクスペリエンス機能
P2 (中) - あると良い
要件:
- エッジケースとまれなシナリオをテストする
- 低リスク領域(スコア 1〜2)をカバーする
- あると良い検証
- 時間制約がある場合は延期できる(主な作業の後に実装する)
例: まれなエッジケース、マイナーな UI バリエーション、オプション機能、将来の機能強化
順次スキル実行
重要: 現在のステップが完了するまで、次のステップに進まないでください
ステップ 0: 構成とコンテキストのロード
目的: テスト要件を理解するために、タスク仕様、リスクプロファイル、および構成をロードする
アクション:
-
.claude/config.yamlから構成をロードする:- テストカバレッジターゲット(全体、クリティカルパス、新しいコード)を抽出する
- テストタイムアウト制限を抽出する
- 品質設定を抽出する
-
ユーザーからタスクファイルのパスを取得する:
- 例:
.claude/tasks/task-006-user-signup.md - ファイルが存在し、読み取り可能であることを確認する
- 例:
-
タスク仕様を読み取る:
- 目的と受け入れ基準をロードする
- コンテキスト(データモデル、API、コンポーネント)をロードする
- タスクの内訳をロードする
-
リスクプロファイルを確認する(オプションだが推奨):
.claude/quality/assessments/{task-id}-risk-*.mdを探す- 存在する場合: 優先順位付けのためにリスクスコアをロードする
- 存在しない場合: 続行できるが、ユーザーに警告する(最初に risk-profile を実行することを推奨)
出力: カバレッジターゲット/タイムアウトでロードされた構成、理解されたタスクコンテキスト、利用可能な場合はロードされたリスクプロファイル、要件を分析する準備が完了
停止条件: 構成ファイルが見つからない | タスクファイルが見つからない/読み取り不可
参照: 完全な形式については references/templates.md#step-0-output を参照してください
ステップ 1: テスト要件の分析
目的: 各受け入れ基準について、何をテストする必要があるかを特定する
アクション:
-
各受け入れ基準について:
- 何を検証する必要がありますか?(テスト可能な結果)
- エッジケースは何ですか?(境界、制限)
- 何がうまくいかない可能性がありますか?(エラーシナリオ)
- セキュリティに関する考慮事項は何ですか?(インジェクション、認証バイパス)
-
テストカテゴリを特定する:
- ハッピーパス: 通常の、予想される使用法(最も一般的なシナリオ)
- エラーケース: 無効な入力、失敗、例外
- エッジケース: 境界、制限、異常な入力
- セキュリティ: 認証、認可、インジェクション、XSS
- パフォーマンス: 応答時間、リソース使用量、スケーラビリティ
- **インテグ
📜 原文 SKILL.md(Claudeが読む英語/中国語)を展開
Quality Skill: Test Design Strategy
Design comprehensive test strategies before implementation using risk-informed prioritization, test level recommendations (unit/integration/E2E), mock strategies for dependencies, and CI/CD integration planning.
Purpose
Create test design documents that specify:
- Test scenarios with Given-When-Then format for all acceptance criteria
- Test levels (unit, integration, E2E) based on what's being tested
- Test priorities (P0/P1/P2) based on risk scores and criticality
- Mock strategies for external dependencies with implementation guidance
- CI/CD integration with execution stages and coverage requirements
Key Innovation (BMAD Pattern):
- Test design BEFORE implementation guides what tests to write
- Risk-informed prioritization prevents missing critical tests
- Level recommendations optimize test execution speed
- Mock strategies enable effective testing of complex systems
When to Use This Skill
Best Used:
- After task spec creation, before implementation
- After risk profiling (uses risk scores for prioritization)
- For complex features requiring multiple test levels
- When planning test infrastructure for new components
Can Skip For:
- Simple bug fixes with obvious test cases (1-2 tests)
- Trivial changes with existing test patterns
- Emergency hotfixes (add test design after stabilization)
Triggers:
- User asks to "design tests", "create test strategy", "plan test cases"
- Before implementing complex features (proactively suggest)
- After risk profile completed (natural next step)
Test Levels
Unit Tests
Purpose: Test individual functions, methods, classes in isolation
Characteristics:
- Fast execution (< 50ms each)
- No external dependencies (fully mocked)
- Test business logic, algorithms, validation rules
- High coverage expected (>80%)
When to use: Business logic, data transformations, validation rules, utility functions, error handling
Integration Tests
Purpose: Test interactions between components/modules
Characteristics:
- Moderate execution time (< 500ms each)
- May use test database, test APIs
- Test component interactions and integration points
- Focus on service boundaries
When to use: API endpoints, database operations, service-to-service communication, authentication flows, external API interactions (mocked)
E2E (End-to-End) Tests
Purpose: Test complete user journeys through the system
Characteristics:
- Slower execution (seconds per test)
- Use real or near-real environment
- Test critical user workflows end-to-end
- Fewer tests, higher value (focus on critical paths)
When to use: Critical user journeys, multi-step workflows, UI + backend integration, business-critical paths, regression prevention
Test Priority Levels
P0 (Critical) - Must Have
Requirements:
- Tests critical functionality (authentication, payment, data integrity)
- Validates security requirements (injection, XSS, auth bypass)
- Prevents data loss or corruption
- Covers high-risk areas (score ≥6 from risk profile)
- Must pass before merge (CI blocks merge if P0 fails)
Examples: Authentication/authorization, payment processing, data integrity operations, security vulnerability prevention
P1 (High) - Should Have
Requirements:
- Tests important functionality (core features)
- Covers medium-risk areas (score 3-5)
- Validates key user features
- Should pass before merge (exceptions allowed with justification)
Examples: Core feature functionality, error handling paths, performance requirements, user experience features
P2 (Medium) - Nice to Have
Requirements:
- Tests edge cases and rare scenarios
- Covers low-risk areas (score 1-2)
- Nice-to-have validations
- Can defer if time-constrained (implement after main work)
Examples: Rare edge cases, minor UI variations, optional features, future enhancements
SEQUENTIAL Skill Execution
CRITICAL: Do not proceed to next step until current step is complete
Step 0: Load Configuration and Context
Purpose: Load task specification, risk profile, and configuration to understand test requirements
Actions:
-
Load configuration from
.claude/config.yaml:- Extract test coverage targets (overall, critical paths, new code)
- Extract test timeout limits
- Extract quality settings
-
Get task file path from user:
- Example:
.claude/tasks/task-006-user-signup.md - Verify file exists and is readable
- Example:
-
Read task specification:
- Load objective and acceptance criteria
- Load context (data models, APIs, components)
- Load task breakdown
-
Check for risk profile (optional but recommended):
- Look for:
.claude/quality/assessments/{task-id}-risk-*.md - If exists: Load risk scores for prioritization
- If missing: Can proceed but warn user (recommend running risk-profile first)
- Look for:
Output: Configuration loaded with coverage targets/timeouts, task context understood, risk profile loaded if available, ready to analyze requirements
Halt Conditions: Config file missing | Task file missing/unreadable
See: references/templates.md#step-0-output for complete format
Step 1: Analyze Test Requirements
Purpose: Identify what needs to be tested for each acceptance criterion
Actions:
-
For each acceptance criterion:
- What needs to be validated? (testable outcomes)
- What are the edge cases? (boundaries, limits)
- What could go wrong? (error scenarios)
- What are the security considerations? (injection, auth bypass)
-
Identify test categories:
- Happy path: Normal, expected usage (most common scenarios)
- Error cases: Invalid inputs, failures, exceptions
- Edge cases: Boundaries, limits, unusual inputs
- Security: Authentication, authorization, injection, XSS
- Performance: Response time, resource usage, scalability
- Integration: Component interactions, service boundaries
-
Map to test levels:
- What needs unit tests? (Logic, validation, algorithms)
- What needs integration tests? (API, database, service interactions)
- What needs E2E tests? (User journeys, critical workflows)
-
Consider technical constraints:
- External dependencies to mock (APIs, payment, email)
- Database interactions (test DB or mock?)
- Async operations (promises, callbacks)
- File I/O (temp directories)
- Network calls (mock or test endpoints?)
Output: Test requirements identified per AC, categories mapped (happy path/error/edge/security/performance/integration), test levels determined (unit/integration/E2E), technical considerations noted
Halt Conditions: ACs too vague to test | Missing context
See: references/templates.md#step-1-output for complete format with detailed examples
Step 2: Design Test Scenarios
Purpose: Create specific test scenarios with Given-When-Then format, priorities, and test data
Actions:
For each test requirement from Step 1:
-
Write test scenario description:
- Use Given-When-Then format for clarity (not BDD code, just format)
- Specify exact inputs and expected outputs
- Define clear pass/fail criteria
- Include test data samples
-
Assign test level:
- Unit, Integration, or E2E
- Based on what's being tested (logic vs interaction vs journey)
-
Assign priority (risk-informed):
- P0 if: Critical functionality, security, high-risk (score ≥6), data integrity
- P1 if: Important functionality, medium-risk (score 3-5), core features
- P2 if: Edge cases, low-risk (score 1-2), optional features
-
Specify test data requirements:
- Valid samples (normal inputs)
- Invalid samples (error scenarios)
- Edge case values (boundaries, limits)
- Security payloads (injection, XSS)
-
Identify dependencies:
- What needs to be mocked? (external APIs, payment, email)
- What requires real services? (database, file system)
- What fixtures needed? (test data, mocks)
Output: Test scenarios with Given-When-Then format, test level assigned, priority assigned (P0/P1/P2 with risk linkage), test data specified, dependencies identified
Halt Conditions: Cannot define clear pass/fail criteria | Scenarios too ambiguous
See: references/templates.md#step-2-output for complete scenario examples (valid signup, SQL injection, duplicate email, E2E flow)
Step 3: Develop Mock Strategies
Purpose: Define mocking approach for external dependencies to enable effective testing
Actions:
-
Identify external dependencies:
- Third-party APIs (Stripe, SendGrid, etc.)
- External services (email, payment, SMS, etc.)
- Database (Postgres, MongoDB, etc.)
- File system (uploads, logs, temp files)
- Network resources (HTTP calls, websockets)
-
For each dependency, decide mocking approach:
Option A: Full Mock
- Replace with test double (jest.fn(), sinon stub)
- Predictable, fast, isolated
- Use for: Third-party APIs, external services
Option B: Test Instance
- Use real implementation with test data
- More realistic, slower
- Use for: Database (test DB), file system (temp dirs)
Option C: Partial Mock
- Real implementation, mock specific parts
- Balance realism and speed
- Use for: Service with mostly local logic but external call
-
Specify mock data/fixtures:
- What responses to mock? (success, failure, timeout)
- What fixtures to create? (test data, sample files)
- What edge cases to simulate? (errors, delays)
-
Document mock configuration:
- How to set up mocks? (jest.mock, setup files)
- What libraries to use? (jest, sinon, nock)
- How to verify mock interactions? (expect calls, spy on methods)
Output: Mock strategy for each dependency (full mock/test instance/partial mock), mock data/fixtures specified (success/failure/edge cases), configuration documented (setup/libraries/verification)
Halt Conditions: Cannot determine appropriate mock strategy | Dependency too complex to mock
See: references/templates.md#step-3-output for complete mock strategies (email service, database, JWT, payment API)
Step 4: Plan CI/CD Integration
Purpose: Define test execution strategy for CI/CD pipeline with stages, parallelization, and coverage
Actions:
-
Define test execution strategy:
- When do different test types run? (pre-commit, PR, pre-deploy, production)
- What's the trigger for each? (git hook, PR event, deployment event)
- What's the failure policy? (block merge, alert, rollback)
-
Specify test environments:
- Local development (fast feedback)
- CI pipeline (comprehensive validation)
- Pre-deployment (staging verification)
- Production (smoke tests only)
-
Configure test parallelization:
- What can run in parallel? (unit tests - fully parallel)
- What must run sequentially? (E2E tests - shared state)
- Resource requirements? (CPU, memory, database)
-
Define coverage requirements:
- Minimum coverage percentage (overall, new code)
- Critical paths requiring 100% (security, payment, data integrity)
- Coverage failure policy (block merge, warning)
-
Plan test data management:
- How to seed test data? (global setup, fixtures)
- How to clean up after tests? (global teardown, beforeEach)
- How to handle shared resources? (isolated databases per worker)
Output: Test execution strategy (stages/triggers/failure policy), environment configuration, parallelization plan, coverage requirements, data management approach
Halt Conditions: Cannot determine CI/CD strategy | Environment requirements unclear
See: references/templates.md#step-4-output for complete CI/CD examples (GitHub Actions, GitLab CI, pre-commit hooks)
Step 5: Calculate Test Summary
Purpose: Calculate test counts, priorities, and execution time estimates
Actions:
-
Count tests by level:
- Total unit tests
- Total integration tests
- Total E2E tests
- Total all tests
-
Count tests by priority:
- P0 (Critical) - must pass before merge
- P1 (High) - should pass before merge
- P2 (Medium) - can defer if needed
-
Estimate execution time:
- Unit: 50ms average × count
- Integration: 500ms average × count
- E2E: 5s average × count
- Total execution time
-
Calculate expected coverage:
- Based on scenarios vs acceptance criteria
- Critical path coverage (should be 100%)
- Overall coverage estimate (based on scope)
Output: Test count summary (by level and priority), priority breakdown (P0/P1/P2 counts), estimated execution time (by level and total), expected coverage (overall and critical paths)
Halt Conditions: None (calculation always possible)
See: references/templates.md#step-5-output for complete summary examples
Step 6: Generate Test Design Document and Present Summary
Purpose: Generate complete test design document and present concise summary to user
Actions:
-
Load test design template:
- Read
.claude/templates/test-design.md(if exists) - Use default structure if template missing
- Read
-
Populate all sections:
- Test summary (from Step 5)
- Test scenarios by acceptance criterion (from Step 2)
- Mock strategies (from Step 3)
- CI/CD integration plan (from Step 4)
- Risk-test mapping (if risk profile available)
-
Generate file path:
- Format:
.claude/quality/assessments/{taskId}-test-design-{YYYYMMDD}.md - Example:
.claude/quality/assessments/task-006-test-design-20251029.md - Create directory if needed
- Format:
-
Write test design file
-
Present concise summary to user:
- Test counts and priorities
- Key test scenarios (security, functionality, performance)
- Mock strategy summary
- CI/CD integration summary
- Risk-test mapping (if available)
- Next steps guidance
Output: Complete test design document written to file, concise summary presented to user with test counts/priorities/mock strategy/CI-CD/risk mapping, clear next steps guidance
Halt Conditions: File write fails
See: references/templates.md#step-6-output for complete user-facing summary example and test design document template
Integration with Other Skills
After risk-profile: Risk profile identifies high-risk areas with P×I scores → test-design uses scores for prioritization (critical risks → P0 tests, high → P0/P1, medium/low → P2)
Before implementation: Test design complete with scenarios/mocks/CI-CD → Implementation writes tests following scenarios, uses mock strategies, achieves P0 tests first, targets 80%+ coverage
With trace-requirements: Test design provides scenarios mapped to ACs → trace-requirements verifies all scenarios implemented, all ACs covered by passing tests, coverage gaps identified
See: references/templates.md#integration-examples for complete workflows with data flow
Best Practices
Test-first approach (design before code) | Risk-informed prioritization (critical risks → P0 tests) | Appropriate test levels (unit for logic, integration for interactions, E2E for critical journeys) | Realistic mock strategies (mock external APIs, real DB test instances) | CI/CD integration (fast feedback loops) | Coverage vs quality (focus on meaningful scenarios, 100% for critical paths)
Common Pitfalls
Avoid: Too many E2E tests (slow/brittle) | Under-mocking (hitting real APIs) | Brittle tests (hard-coded values) | Ignoring test performance (slow suites) | Testing implementation details (private methods) | No CI/CD integration (manual only)
Instead: Unit test logic, E2E for critical journeys | Mock external dependencies | Use factories/fixtures | Keep unit <50ms, integration <500ms | Test public API/behavior | Automate in CI/CD
Configuration
Configure in .claude/config.yaml: Test coverage targets (overall/criticalPaths/newCode), test timeouts (unit/integration/e2e), assessment location
See: references/templates.md#configuration-examples for complete config.yaml, package.json scripts, jest.config.js
Reference Files
Detailed documentation in references/:
-
templates.md: All output formats (Step 0-6), complete test scenario examples (Given-When-Then), mock strategies (email service, database, JWT, payment API), CI/CD examples (GitHub Actions, GitLab CI, pre-commit hooks), complete test design document template, configuration examples, JSON output format
-
test-scenarios.md: Test scenario patterns (currently placeholder - see templates.md)
-
mock-strategies.md: Mock strategy patterns (currently placeholder - see templates.md)
-
cicd-integration.md: CI/CD integration patterns (currently placeholder - see templates.md)
-
test-examples.md: Test design examples (currently placeholder - see templates.md)
Version: 2.0 (Refactored for skill-creator compliance and Minimal V2 architecture) Category: Quality Depends On: risk-profile (optional but recommended for risk-informed prioritization) Used By: trace-requirements (verifies test coverage of acceptance criteria)