mcpField
Q
qe-risk-based-testing

qe-risk-based-testing

github.com/proffesor-for-testingテスト・品質51993 回インストール今日更新
リポジトリ

qe-risk-based-testing について

qe-risk-based-testingは、テスト範囲の計画と限られた工数の配分を支援するテストスキルです。発生確率と影響度でリスクを評価し、新しい情報に応じてテストの深さや優先度を見直します。

主な機能

  1. 01確率と影響度によるリスク評価
  2. 02重大から低までの優先度区分
  3. 03リスクに応じたテスト工数配分
  4. 04新しいデータに基づく再評価
  5. 05CI/CDでのリスクベースのテスト選択

活用シーン

  1. 01スプリントやリリースのテスト戦略立案
  2. 02自動化するテストの優先順位付け
  3. 03限られたテスト時間の配分
  4. 04本番インシデント後の優先度調整

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/proffesor-for-testing/agentic-qe --skill qe-risk-based-testing

インストール後、Claude Code で/qe-risk-based-testingを入力して読み込まれたか確認します。

詳細

リスクベーステスト

<default_to_action> テストの計画やテストリソースの割り当てを行う際は、次の手順に従います。

  1. リスクを特定します。何が起こり得ますか?影響はどの程度ですか?発生する可能性はどの程度ですか?
  2. リスクを算出します。リスク = 発生確率 × 影響度(それぞれ1〜5の尺度を使用)
  3. 優先順位を付けます。クリティカル(20以上)→ 高(12〜19)→ 中(6〜11)→ 低(1〜5)
  4. 労力を割り当てます。クリティカルに60%、高に25%、中に10%、低に5%
  5. 継続的に再評価します。新しい情報、変更、本番環境でのインシデントを考慮します

簡易リスク評価:

  • 発生確率の要因:複雑さ、変更頻度、開発者の経験、技術的負債
  • 影響度の要因:ユーザー数、収益、安全性、評判、規制
  • 動的な調整:本番環境のバグはリスクを高め、安定したコードはリスクを低下させます

成功のための重要な要素:

  • どこでも均等にテストするのではなく、バグによる被害が最も大きい箇所をテストします
  • リスクは変動します。新しい情報に基づいて再評価します
  • 本番環境のデータをリスク評価に活用します(シフトライトがシフトレフトに役立ちます) </default_to_action>

クイックリファレンスカード

使用するタイミング
  • スプリント/リリースのテスト戦略を計画するとき
  • 何から自動化するか決めるとき
  • 限られたテスト時間を割り当てるとき
  • テストカバレッジの判断を正当化するとき
リスクの算出
Risk Score = Probability (1-5) × Impact (1-5)
スコア優先度労力アクション
20-25クリティカル60%包括的なテスト、複数の手法
12-19高25%綿密なテスト、自動化を優先
6-11中10%標準的なテスト、基本的な自動化
1-5低5%スモークテスト、探索的テストのみ
発生確率の要因
要因低(1)中(3)高(5)
複雑さシンプルなCRUDビジネスロジックアルゴリズム、統合
変更率6か月以上安定月次の変更週次/日次の変更
開発者の経験シニア、ドメインの専門家中級ジュニア、コードベースを使い始めたばかり
技術的負債クリーンなコード多少の負債ありレガシー、テストなし
影響度の要因
要因低(1)中(3)高(5)
影響を受けるユーザー管理者のみ部門全ユーザー
収益なし間接的直接的(チェックアウト)
安全性利便性データ損失身体的危害
評判社内業界内公開スキャンダル

リスク評価ワークフロー

ステップ1:機能/コンポーネントを列挙する
Feature | Probability | Impact | Risk | Priority
--------|-------------|--------|------|----------
Checkout | 4 | 5 | 20 | Critical
User Auth | 3 | 5 | 15 | High
Admin Panel | 2 | 2 | 4 | Low
Search | 3 | 3 | 9 | Medium
ステップ2:テストの深さを適用する
await Task("Risk-Based Test Generation", {
  critical: {
    features: ['checkout', 'payment'],
    depth: 'comprehensive',
    techniques: ['unit', 'integration', 'e2e', 'performance', 'security']
  },
  high: {
    features: ['auth', 'user-profile'],
    depth: 'thorough',
    techniques: ['unit', 'integration', 'e2e']
  },
  medium: {
    features: ['search', 'notifications'],
    depth: 'standard',
    techniques: ['unit', 'integration']
  },
  low: {
    features: ['admin-panel', 'settings'],
    depth: 'smoke',
    techniques: ['smoke-tests']
  }
}, "qe-test-generator");
ステップ3:動的に再評価する
// Production incident increases risk
await Task("Update Risk Score", {
  feature: 'search',
  event: 'production-incident',
  previousRisk: 9,
  newProbability: 5,  // Increased due to incident
  newRisk: 15         // Now HIGH priority
}, "qe-regression-risk-analyzer");

MLを活用したリスク分析

// Agent predicts risk using historical data
const riskAnalysis = await Task("ML Risk Analysis", {
  codeChanges: changedFiles,
  historicalBugs: bugDatabase,
  prediction: {
    model: 'gradient-boosting',
    factors: ['complexity', 'change-frequency', 'author-experience', 'file-age']
  }
}, "qe-regression-risk-analyzer");

// Output: 95% accuracy risk prediction per file

エージェント連携のヒント

メモリの名前空間
aqe/risk-based/
├── risk-scores/*        - Current risk assessments
├── historical-bugs/*    - Bug patterns by area
├── production-data/*    - Incident data for risk
└── coverage-map/*       - Test depth by risk level
フリート連携
const riskFleet = await FleetManager.coordinate({
  strategy: 'risk-based-testing',
  agents: [
    'qe-regression-risk-analyzer',  // Risk scoring
    'qe-test-generator',            // Risk-appropriate tests
    'qe-production-intelligence',   // Production feedback
    'qe-quality-gate'               // Risk-based gates
  ],
  topology: 'sequential'
});

CI/CDとの統合

# Risk-based test selection in pipeline
- name: Risk Analysis
  run: aqe risk-analyze --changes ${{ github.event.pull_request.files }}

- name: Run Critical Tests
  if: risk.critical > 0
  run: npm run test:critical

- name: Run High Tests
  if: risk.high > 0
  run: npm run test:high

- name: Skip Low Risk
  if: risk.low_only
  run: npm run test:smoke

関連スキル


覚えておくこと

リスク = 発生確率 × 影響度。 バグによる被害が最も大きい箇所をテストします。クリティカルには60%、低には5%を割り当てます。リスクは変動するため、新しい情報に基づいて再評価します。本番環境でのインシデントはリスクスコアを引き上げます。

エージェントを活用する場合: エージェントは過去のデータに対してMLを使ってリスクを算出し、リスクに応じたテストを選択して、本番環境からのフィードバックに基づいてスコアを調整します。大規模な動的リスクプロファイルの維持には、エージェントを活用します。

コメント