問題15
問題 #15
Section titled “問題 #15”住宅保険ポリシーを提供する会社があります。ポリシーは以下のパラメータに依存します。
| パラメータ | 値 | 値の数 |
|---|---|---|
| 建物タイプ | 一戸建て、半独立住宅、アパート、コテージ | 4 |
| 素材 | 木材、コンクリート、レンガ、複合 | 4 |
| 場所 | 都市、郊外、地方 | 3 |
ペアワイズテストを使用して 100% ペアワイズカバレッジ を達成するには、テストケースは何件必要か?
- a) 16
- b) 12
- c) 64
- d) 4
ペアワイズテストとは
Section titled “ペアワイズテストとは”ペアワイズテスト(Pairwise Testing) は、「任意の2つのパラメータの値の組み合わせが、少なくとも1回はテストされる」ことを保証する組み合わせテスト技法です。
全組み合わせ(フル網羅)に比べてテストケース数を大幅に削減できます。
全組み合わせ数との比較
Section titled “全組み合わせ数との比較”| 方式 | 計算 | テストケース数 |
|---|---|---|
| フル網羅(全組み合わせ) | 4 × 4 × 3 | 48件 |
| ペアワイズ(2-way) | 後述 | 16件 |
ペアワイズに必要なテストケース数の求め方
Section titled “ペアワイズに必要なテストケース数の求め方”ペアワイズカバレッジでは、すべての2パラメータの組み合わせペアを少なくとも1回カバーする必要があります。
ステップ1:全ペアの列挙
Section titled “ステップ1:全ペアの列挙”3つのパラメータからなる2パラメータの組み合わせは 3通りです。
| ペア | カバーすべき組み合わせ数 |
|---|---|
| 建物タイプ × 素材 | 4 × 4 = 16 |
| 建物タイプ × 場所 | 4 × 3 = 12 |
| 素材 × 場所 | 4 × 3 = 12 |
ステップ2:最大ペアが下限を決める
Section titled “ステップ2:最大ペアが下限を決める”1件のテストケースは「建物タイプ × 素材」のペアを 1つしかカバーできません。このペアには16通りの組み合わせがあるため、最低でも 16件のテストケースが必要です。
必要なテストケース数 ≥ max(パラメータペアの組み合わせ数) = max(16, 12, 12) = 16ステップ3:他のペアは16件で網羅できるか確認
Section titled “ステップ3:他のペアは16件で網羅できるか確認”16件のテストケースで「建物タイプ × 素材」の16ペアをすべてカバーしながら、「建物タイプ × 場所(12ペア)」と「素材 × 場所(12ペア)」も同時に網羅できます。良いアルゴリズム(PICT、ACTSなど)を使えば、16件でペアワイズカバレッジを達成できます。
各選択肢の検討
Section titled “各選択肢の検討”| 選択肢 | 件数 | 検討 |
|---|---|---|
| a) | 16 | 建物タイプ×素材の16ペアを全カバーできる最小数 ✓ |
| b) | 12 | 建物タイプ×素材の16ペアに対して4件不足。全カバー不可 ✗ |
| c) | 64 | フル網羅(48件)を超えており、ペアワイズの目的(削減)に反する ✗ |
| d) | 4 | 最も少ないパラメータ値(場所の3値)以下。到底不足 ✗ |
a) 16
ペアワイズカバレッジに必要な最小テストケース数は、最も組み合わせ数が多いパラメータペアの値の積によって決まります。
必要なテストケース数 ≥ max(パラメータペアの組み合わせ数) = 4 × 4 = 16ペアワイズの削減効果
Section titled “ペアワイズの削減効果”この問題での削減効果:
| 方式 | 件数 | 全組み合わせ比 |
|---|---|---|
| 全組み合わせ | 48件 | 100% |
| ペアワイズ | 16件 | 33% |
約3分の1に削減しながら、任意の2パラメータ間の全ペアを網羅できます。
最大ペアの公式
Section titled “最大ペアの公式”複数のパラメータがある場合、ペアワイズに必要な最小テストケース数は:
最も値の多い2つのパラメータの値の数の積
が下限となります。この例では「建物タイプ(4)× 素材(4)= 16」が支配的なペアです。
ペアワイズ生成ツール
Section titled “ペアワイズ生成ツール”実際のプロジェクトでは、PICT(Microsoft)や ACTS(NIST)などのツールを使って効率的にペアワイズテストケースを生成します。これらのツールは、最小のテストケース数で全ペアをカバーする組み合わせを自動計算します。