Skip to content

問題9:境界値分析

あなたはレストランの顧客ロイヤリティアプリケーションの開発に取り組んでいます。顧客は食事にお金を使うことでポイントを獲得します。獲得したポイント数に基づいて、特典のカテゴリが4つあります。

  • カジュアル(Casual):1〜40ポイント
  • レギュラー(Regular):41〜150ポイント
  • フリークエント(Frequent):151〜300ポイント
  • エリート(Elite):300ポイント超

既存のテストケースでは、すでに「12」、「150」、「151」、「152」、「301」のポイント値がカバーされています。

既存のテストケースですでに達成されている「境界値カバレッジ(網羅率)」の割合はどれですか?

  • a) 37.5%
  • b) 42.8%
  • c) 50%
  • d) 62.5%

a) 37.5%


この問題は、**2値境界値(Two-value boundary values)**の概念を用いて、正確なカバレッジを計算できるかを問うています。

【ステップ1:必要な境界値をすべて洗い出す】 100%のカバレッジを達成するためには、各パーティション(同値クラス)の境界となる値をオン・オフの2値で特定する必要があります。

  1. 無効値とカジュアルの境界: 0, 1
  2. カジュアルとレギュラーの境界: 40, 41
  3. レギュラーとフリークエントの境界: 150, 151
  4. フリークエントとエリートの境界: 300, 301

これにより、テストすべき「真の境界値」は全部で 8個 (0, 1, 40, 41, 150, 151, 300, 301)であることが分かります。これが計算の分母になります。

【ステップ2:既存のテストケースと照らし合わせる】 既存のテストケース(5個)が、洗い出した8個の境界値に該当するかを判定します。

  • 12 : 境界値ではない(カジュアルクラスの単なる代表値) ❌
  • 150 : 境界値に該当する(カバー済み) ⭕️
  • 151 : 境界値に該当する(カバー済み) ⭕️
  • 152 : 境界値ではない(フリークエントクラスの代表値) ❌
  • 301 : 境界値に該当する(カバー済み) ⭕️

【ステップ3:カバレッジを計算する】 8個の境界値のうち、カバーされているのは3個です。 計算式: $3 \div 8 = 0.375$ (37.5%


この問題の最大の罠は、既存のテストケースの中に**「12」や「152」といった、境界値ではないダミーの値(同値クラスの代表値)が混ざっている**ことです。

現場のテストエンジニアがやりがちなミスとして、用意されたテストケースの数(5個)をそのまま分母や分子にして計算してしまうことが挙げられます。テストアナリストとしては、提示されたテストケース群に惑わされることなく、まず「仕様から導き出される真の境界値は何か(分母の確定)」を冷静に見極める力が必要です。