qe-risk-based-testing について
qe-risk-based-testingは、テスト範囲の計画と限られた工数の配分を支援するテストスキルです。発生確率と影響度でリスクを評価し、新しい情報に応じてテストの深さや優先度を見直します。
主な機能
- 01確率と影響度によるリスク評価
- 02重大から低までの優先度区分
- 03リスクに応じたテスト工数配分
- 04新しいデータに基づく再評価
- 05CI/CDでのリスクベースのテスト選択
活用シーン
- 01スプリントやリリースのテスト戦略立案
- 02自動化するテストの優先順位付け
- 03限られたテスト時間の配分
- 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〜5の尺度を使用)
- 優先順位を付けます。クリティカル(20以上)→ 高(12〜19)→ 中(6〜11)→ 低(1〜5)
- 労力を割り当てます。クリティカルに60%、高に25%、中に10%、低に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を使ってリスクを算出し、リスクに応じたテストを選択して、本番環境からのフィードバックに基づいてスコアを調整します。大規模な動的リスクプロファイルの維持には、エージェントを活用します。
コメント
Markdown 対応