mcpField
R
risk-based-testing

risk-based-testing

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

risk-based-testing について

コンポーネントごとのリスクに基づき、テスト範囲と限られた工数を計画するためのテストスキルです。リスクの採点、優先度区分、工数配分を定め、インシデントや安定性に応じて継続的に見直します。

主な機能

  1. 01発生確率と影響度の採点
  2. 02リスク区分による優先順位付け
  3. 03リスクに応じた工数配分
  4. 04本番のフィードバックによる再評価

活用シーン

  1. 01スプリントやリリースのテスト計画
  2. 02自動化するテストの優先順位決定
  3. 03限られたテスト時間の配分

インストール

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

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

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

同梱ファイル

SKILL.md と一緒にインストールされる参考資料やスクリプト。

evals/
risk-based-testing.yaml
schemas/
output.json
scripts/
validate-config.json

詳細

リスクベーステスト

<default_to_action> テストを計画したり、テストリソースを割り当てたりする場合:

  1. コンポーネントごとにリスクを特定します(発生確率と影響をそれぞれ1~5で評価)
  2. 優先順位を付けます:クリティカル(20以上)→ 高(12~19)→ 中(6~11)→ 低(1~5)
  3. 工数を割り当てます:クリティカルに60%、高に25%、中に10%、低に5%
  4. 継続的に再評価します:本番インシデントが発生したらリスクを引き上げ、コードが安定していれば引き下げます </default_to_action>

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

使用する場面
  • スプリント/リリースのテスト戦略を計画するとき
  • 最初に自動化する対象を決めるとき
  • 限られたテスト時間を割り当てるとき
  • テストカバレッジの判断根拠を示すとき
リスクスコア別の工数配分
スコア優先度工数アクション
20-25クリティカル60%包括的なテストを複数の手法で実施
12-19高25%徹底的にテストし、自動化を優先
6-11中10%標準的なテストを実施し、基本的な自動化を行う
1-5低5%スモークテストと探索的テストのみ

リスクに応じたテストの深度

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

関連スキル


覚えておくこと

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

コメント