risk-based-testing について
コンポーネントごとのリスクに基づき、テスト範囲と限られた工数を計画するためのテストスキルです。リスクの採点、優先度区分、工数配分を定め、インシデントや安定性に応じて継続的に見直します。
主な機能
- 01発生確率と影響度の採点
- 02リスク区分による優先順位付け
- 03リスクに応じた工数配分
- 04本番のフィードバックによる再評価
活用シーン
- 01スプリントやリリースのテスト計画
- 02自動化するテストの優先順位決定
- 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.yamlschemas/output.jsonscripts/validate-config.json詳細
リスクベーステスト
<default_to_action> テストを計画したり、テストリソースを割り当てたりする場合:
- コンポーネントごとにリスクを特定します(発生確率と影響をそれぞれ1~5で評価)
- 優先順位を付けます:クリティカル(20以上)→ 高(12~19)→ 中(6~11)→ 低(1~5)
- 工数を割り当てます:クリティカルに60%、高に25%、中に10%、低に5%
- 継続的に再評価します:本番インシデントが発生したらリスクを引き上げ、コードが安定していれば引き下げます </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
関連スキル
- agentic-quality-engineering - リスクを考慮するエージェント
- context-driven-testing - コンテキストがリスクに影響
- regression-testing - リスクベースの回帰テスト選定
- shift-right-testing - 本番環境の情報をリスクに反映
覚えておくこと
エージェントを使う場合: エージェントは過去のデータに基づいてMLでリスクを算出し、リスクに適したテストを選び、本番環境からのフィードバックに応じてスコアを調整します。大規模環境で動的なリスクプロファイルを維持するには、エージェントを活用してください。
コメント
Markdown 対応