Skip to content

問題10

以下のトレーサビリティ情報が与えられています。実装済み機能(F1〜F5)、識別されたリスク(R1〜R5)、リグレッションテストケース(TC1〜TC6)のトレーサビリティマトリクスです。

機能×リスク トレーサビリティマトリクス

Section titled “機能×リスク トレーサビリティマトリクス”
機能 \ リスクR1R2R3R4R5
F1
F2
F3
F4
F5

リスク×テストケース トレーサビリティマトリクス

Section titled “リスク×テストケース トレーサビリティマトリクス”
リスク \ TCTC1TC2TC3TC4TC5TC6
R1
R2
R3
R4
R5
リスクリスクレベル(金額)
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 マトリクスで特定します。

リスク関連テストケース
R2TC1、TC3
R4TC3、TC5
R5TC1、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段階のアプローチを取ります。

  1. 影響分析:変更された機能(F3)→ 関連リスク(R2、R4、R5)→ 対象テストケース(TC1、TC3、TC5、TC6)の順に追跡し、実行すべき TC を絞り込む
  2. リスクベース優先順位付け:絞り込まれた TC を、カバーするリスクの総額が高い順に並べる

トレーサビリティマトリクスの読み方

Section titled “トレーサビリティマトリクスの読み方”

2つのマトリクスを連結して「機能 → リスク → テストケース」のつながりを追うことで、コード変更がどのテストケースに影響するかを体系的に特定できます。この追跡可能性(トレーサビリティ)の確保が、効率的なリグレッションテスト選択の基盤となります。

リスクベーステストでは「高リスクを先に」テストします。これは、時間やリソースが制約される場合でも重大な欠陥を早期に発見できるようにするためです。TC5 は唯一のカバーリスクが $5,000(最小)であるため、他の TC が完了した後に回せるテストケースとなります。