問題10
問題 #10
Section titled “問題 #10”以下のトレーサビリティ情報が与えられています。実装済み機能(F1〜F5)、識別されたリスク(R1〜R5)、リグレッションテストケース(TC1〜TC6)のトレーサビリティマトリクスです。
機能×リスク トレーサビリティマトリクス
Section titled “機能×リスク トレーサビリティマトリクス”| 機能 \ リスク | R1 | R2 | R3 | R4 | R5 |
|---|---|---|---|---|---|
| F1 | ✓ | ||||
| F2 | ✓ | ✓ | |||
| F3 | ✓ | ✓ | ✓ | ||
| F4 | ✓ | ✓ | ✓ | ||
| F5 | ✓ | ✓ |
リスク×テストケース トレーサビリティマトリクス
Section titled “リスク×テストケース トレーサビリティマトリクス”| リスク \ TC | TC1 | TC2 | TC3 | TC4 | TC5 | TC6 |
|---|---|---|---|---|---|---|
| R1 | ✓ | ✓ | ||||
| R2 | ✓ | ✓ | ||||
| R3 | ✓ | |||||
| R4 | ✓ | ✓ | ||||
| R5 | ✓ | ✓ |
リスクレベル
Section titled “リスクレベル”| リスク | リスクレベル(金額) |
|---|---|
| R1 | $15,000 |
| R2 | $10,000 |
| R3 | $2,000 |
| R4 | $5,000 |
| R5 | $20,000 |
前回のテストサイクルで TC1〜TC6 のすべてが実行されました。その後、F3 の実装が変更されたことが通知されました。
リスクベーステストを適用し、前回のテスト実行以降のコード変更に影響されるテストケースのみを実行する影響分析を行います。
次のリグレッションテストスイート実行で、最後に実行すべきテストケースはどれか?
- a) TC4
- b) TC5
- c) TC1
- d) TC3
ステップ1:影響分析(Impact Analysis)
Section titled “ステップ1:影響分析(Impact Analysis)”変更された機能 F3 がどのリスクに関連しているかを、機能×リスクマトリクスで確認します。
F3 → R2、R4、R5
次に、R2・R4・R5 に関連するテストケースをリスク×TC マトリクスで特定します。
| リスク | 関連テストケース |
|---|---|
| R2 | TC1、TC3 |
| R4 | TC3、TC5 |
| R5 | TC1、TC6 |
影響を受けるテストケース:TC1、TC3、TC5、TC6
TC2・TC4 は F3 の変更と無関係なリスクのみをカバーしているため、今回の実行対象外です。
ステップ2:リスクベースの優先順位付け
Section titled “ステップ2:リスクベースの優先順位付け”影響を受ける TC1、TC3、TC5、TC6 について、それぞれがカバーするリスクの総額を算出し、優先順位を決定します。
各テストケースのリスクカバレッジ
Section titled “各テストケースのリスクカバレッジ”TC1:R1($15,000)、R2($10,000)、R3($2,000)、R5($20,000)を対象 $$合計 = $15,000 + $10,000 + $2,000 + $20,000 = $47,000$$
TC3:R2($10,000)、R4($5,000)を対象 $$合計 = $10,000 + $5,000 = $15,000$$
TC5:R4($5,000)を対象 $$合計 = $5,000$$
TC6:R5($20,000)を対象 $$合計 = $20,000$$
優先順位(高リスク順に実行)
Section titled “優先順位(高リスク順に実行)”| 実行順 | テストケース | カバーするリスク総額 |
|---|---|---|
| 1番目(最初) | TC1 | $47,000 |
| 2番目 | TC6 | $20,000 |
| 3番目 | TC3 | $15,000 |
| 4番目(最後) | TC5 | $5,000 |
b) TC5
TC5 がカバーするのは R4($5,000)のみであり、影響を受けるテストケースの中で最もリスクレベルが低いため、最後に実行します。
影響分析とリスクベーステストの組み合わせ
Section titled “影響分析とリスクベーステストの組み合わせ”この問題では2段階のアプローチを取ります。
- 影響分析:変更された機能(F3)→ 関連リスク(R2、R4、R5)→ 対象テストケース(TC1、TC3、TC5、TC6)の順に追跡し、実行すべき TC を絞り込む
- リスクベース優先順位付け:絞り込まれた TC を、カバーするリスクの総額が高い順に並べる
トレーサビリティマトリクスの読み方
Section titled “トレーサビリティマトリクスの読み方”2つのマトリクスを連結して「機能 → リスク → テストケース」のつながりを追うことで、コード変更がどのテストケースに影響するかを体系的に特定できます。この追跡可能性(トレーサビリティ)の確保が、効率的なリグレッションテスト選択の基盤となります。
最後に実行する TC の意味
Section titled “最後に実行する TC の意味”リスクベーステストでは「高リスクを先に」テストします。これは、時間やリソースが制約される場合でも重大な欠陥を早期に発見できるようにするためです。TC5 は唯一のカバーリスクが $5,000(最小)であるため、他の TC が完了した後に回せるテストケースとなります。