Skip to content

問題8:同値分割テスト

ある会社が従業員向けウェルネスプログラムを健康保険の支払いと組み合わせて導入しました。プログラムのルールは以下のとおりです。

  1. 1週間あたりのアルコール摂取量が20単位以下の従業員は、支払いから $30 の割引を受ける
  2. 「健康リスク評価」に記入した従業員は、支払いから $25 の割引を受ける
  3. 会社の健康管理プログラムに参加している従業員には以下が適用される:
    1. BMI が 27.5 以下の場合 $50 の割引、BMI が 30 未満の場合 $25 の割引を受ける
    2. 非喫煙者はさらに $50 の割引を受ける
    3. 禁煙クラスに参加している喫煙者は $25 の割引を受ける
    4. 禁煙クラスに参加していない喫煙者は $75 の追加保険料を支払う

同値分割テスト技法を適用して、この仕様の有効な入力パラメータの同値パーティションを100%カバーするために必要な最小テストケース数はいくつか?

  • a) 3テストケース
  • b) 4テストケース
  • c) 5テストケース
  • d) 12テストケース

入力パラメータと有効同値パーティションの特定

Section titled “入力パラメータと有効同値パーティションの特定”

各入力パラメータとその有効同値パーティションを整理します。

P1:アルコール摂取量(週)

パーティション範囲適用ルール
P1a≤ 20単位$30 割引あり
P1b> 20単位割引なし

P2:健康リスク評価の記入

パーティション適用ルール
P2a記入あり(Yes)$25 割引あり
P2b記入なし(No)割引なし

P3:健康管理プログラムへの参加

パーティション適用ルール
P3a参加あり(Yes)サブルール(3.1〜3.4)が適用
P3b参加なし(No)サブルール適用外

P4:BMI(P3=Yes の場合のみ有効)

パーティション範囲適用ルール
P4a≤ 27.5$50(3.1前半)+ $25(3.1後半)= $75 割引
P4b27.5 < BMI < 30$25 割引(3.1後半のみ)
P4c≥ 30割引なし

P5:喫煙状況(P3=Yes の場合のみ有効)

パーティション適用ルール
P5a非喫煙者$50 割引
P5b喫煙者・禁煙クラス参加あり$25 割引
P5c喫煙者・禁煙クラス参加なし$75 追加保険料

有効パーティション合計:2 + 2 + 2 + 3 + 3 = 12

100% カバレッジには全12パーティションを少なくとも1回ずつ網羅する必要があります。1つのテストケースで各パラメータの1パーティションを同時にカバーできますが、P4・P5は P3=Yes のときのみ有効という依存関係が制約となります。

  • P4とP5はそれぞれ3パーティションを持つため、P3=Yesのテストケースが最低3件必要
  • P3=No(P3b)は P4・P5 と同じテストケースに含められない
  • よって P3=No をカバーするテストケースが別途1件必要

最小テストケース数 = 3件(P3=Yes)+ 1件(P3=No)= 4件

TCP1P2P3P4P5カバーするパーティション
TC1≤20YesYes≤27.5非喫煙P1a, P2a, P3a, P4a, P5a
TC2>20NoYes(27.5,30)禁煙クラス参加P1b, P2b, P3a, P4b, P5b
TC3≤20YesYes≥30禁煙クラス未参加P3a, P4c, P5c
TC4>20NoNoN/AN/AP3b
パーティションTC1TC2TC3TC4
P1a(≤20)
P1b(>20)
P2a(Yes)
P2b(No)
P3a(参加)
P3b(不参加)
P4a(≤27.5)
P4b(27.5-30)
P4c(≥30)
P5a(非喫煙)
P5b(禁煙クラス参加)
P5c(禁煙クラス未参加)

全12パーティションが4件のテストケースでカバーされます。

P4(BMI)とP5(喫煙)のパーティションをすべてカバーするにはP3=Yesのテストケースが最低3件必要です。しかしP3=No(P3b)はP4・P5が適用されないため、P3=Yesのテストケースに混在させることができません。したがって4件未満にはできません。


b) 4テストケース


同値分割では、あるパラメータの値によって別のパラメータが「有効か否か」が変わる場合(依存関係)に注意が必要です。この問題では P3=No のとき P4・P5 が適用されないため、P3=No のテストケースは独立して設計する必要があります。依存パラメータを持つ仕様では、階層的なパーティション構造を意識することが重要です。

ルール 3.1 は「BMI ≤ 27.5 で $50」「BMI < 30 で $25」という2つの独立した割引条件を定義しています。BMI ≤ 27.5 はどちらの条件も満たすため両方の割引を受け(合計 $75)、27.5 < BMI < 30 は後者のみ($25)、BMI ≥ 30 は割引なしとなり、3つの有効パーティションが生じます。こうした複合的な境界条件は境界値分析と組み合わせて検証することが有効です。

パラメータ間に依存関係がない場合、最小テストケース数は「最もパーティション数が多いパラメータのパーティション数」と等しくなります。ただし依存関係がある場合は、依存パラメータのカバレッジに加えて、条件を満たさない場合のテストケースを別途計上する必要があります。