Skip to content

問題11:デシジョンテーブルテスト(2)モバイルアプリのダウンロード機能

あなたはテストアナリストとして、デシジョンテーブルテスト技法を用いて、モバイルアプリケーションのダウンロード機能をテストしています。仕様書には以下のように記載されています:

「ダウンロードを開始する前に、アプリケーションは携帯電話ネットワークの接続強度が少なくともアンテナ2本以上であり、ファイルをダウンロードするのに十分なデータ容量があることを確認する。接続強度がアンテナ2本という境界事例(borderline case)では、少なくとも20KBの追加データ容量(バッファ)が必要である。」

テスト分析中に、以下のデシジョンテーブルを設計し、レビューに成功しました。

ID条件 (Conditions)R1R2R3R4R5
C1携帯電話の接続強度< 2本≥ 2本2本2本≥ 3本
C2利用可能なデータ容量N/A不足バッファ不足バッファ十分十分
アクション (Actions)
A1ファイルをダウンロードするNNNYY
A2メッセージ「データ容量不足」を表示NYNNN
A3メッセージ「接続状態不十分」を表示YNYNN

この仕様に基づき、全5つのルールをカバーするテストスイートに関する記述のうち、正しいものはどれですか?

  • a) テストケースは、「携帯電話の接続強度」と「利用可能なデータ容量とファイルサイズの差」の2つの入力を持つべきである。
  • b) テストデータには、サイズが異なる少なくとも2つのファイル(20KB以上と20KB未満)が含まれている必要がある。
  • c) テストスイートには、接続強度=2本で、それぞれA1、A2、A3の3つの期待結果をカバーする、少なくとも3つの異なるテストケースが含まれている必要がある。
  • d) 接続強度、利用可能なデータ容量、およびダウンロードするファイルサイズで構成される入力を持つテストケースは、デシジョンテーブルの正確に1つのルールのみをカバーする。

d)


デシジョンテーブルの構成要素と、テスト入力の定義に関する理解を問う問題です。

  • d) が正しい理由: デシジョンテーブルが正しく(矛盾なく)設計されている場合、特定の入力セット(この場合は強度、容量、サイズ)を与えると、必ず特定の1つのルールにのみ合致し、そのアクションが実行されます。これがデシジョンテーブルの論理的な性質です。

他の選択肢が誤りである理由:

  • a) 利用可能なデータ容量とファイルサイズの「差」は、システムが内部で判断するために使用する計算結果であり、外部からの「入力」ではありません。入力はあくまで「接続強度」「データ容量」「ファイルサイズ」の個別の値です。
  • b) 仕様における「20KB」は、ファイルそのもののサイズではなく、利用可能な容量との「差分(バッファ)」を指しています。そのため、ファイルサイズだけで条件が決まるわけではありません。
  • c) テーブルを確認すると、接続強度=2本の場合に関係するルールは R3(A3を表示)と R4(A1を実行)の2つだけです。A2(データ容量不足メッセージ)は、アンテナ2本以上の一般的なケース(R2)で発生するものとして定義されています。

デシジョンテーブルの各ルール(R1〜R5)に対して、具体的な入力値と期待結果を定義します。

テストケースが持つ入力は以下の3つです。

パラメータ説明
接続強度アンテナ本数(0〜5本)
データ容量利用可能なデータ容量(KB)
ファイルサイズダウンロード対象ファイルのサイズ(KB)

境界条件: 接続強度 = 2本の場合、「データ容量 − ファイルサイズ」が 20KB 以上あること(バッファ要件)がダウンロード開始の条件となります。

TC対象ルール接続強度データ容量ファイルサイズA1(DL)A2(容量不足)A3(接続不十分)
TC1R11本200 KB100 KBNNY
TC2R23本80 KB100 KBNYN
TC3R32本110 KB100 KBNNY
TC4R42本125 KB100 KBYNN
TC5R54本150 KB100 KBYNN

TC1(R1:接続強度 < 2本)

接続強度が1本(最低基準の2本未満)のため、データ容量の確認すら行わずダウンロードを拒否します。データ容量は N/A ですが、実際のテストでは任意の値を設定できます(200KB)。

TC2(R2:接続強度 ≥ 3本、データ容量 不足)

接続強度は3本で基準を満たしますが、データ容量(80KB)がファイルサイズ(100KB)を下回るため不足。「データ容量不足」メッセージを表示します。

TC3(R3:接続強度 = 2本、バッファ不足)

接続強度が境界値の2本。データ容量(110KB)はファイルサイズ(100KB)を上回りますが、差分が 10KB(< 20KB の必要バッファ)のため、「接続状態不十分」メッセージを表示してダウンロードを拒否します。

確認項目計算判定
容量 ≥ ファイルサイズ110 ≥ 100
バッファ = 容量 − ファイルサイズ110 − 100 = 10 KB< 20 KB → ✗

TC4(R4:接続強度 = 2本、バッファ十分)

接続強度が境界値の2本。データ容量(125KB)からファイルサイズ(100KB)を引いた差分が 25KB(≥ 20KB の必要バッファ)のため、ダウンロードを開始します。

確認項目計算判定
容量 ≥ ファイルサイズ125 ≥ 100
バッファ = 容量 − ファイルサイズ125 − 100 = 25 KB≥ 20 KB → ✓

TC5(R5:接続強度 ≥ 3本、データ容量 十分)

接続強度が4本で基準を十分満たし、データ容量(150KB)がファイルサイズ(100KB)を上回るため、バッファ要件なしでダウンロードを開始します。

TC3とTC4はどちらも接続強度 = 2本で、バッファ量の境界(20KB)をまたいでいます。

TC3(R3)境界TC4(R4)
バッファ10 KB20 KB25 KB
結果DL不可・A3表示DL開始

デシジョンテーブルの設計とテストケース作成において、実務上も重要なポイントがいくつか含まれています。

  1. 入力値と内部計算の区別: ユーザーや環境から与えられる「直接的な入力」と、プログラムが内部で行う「計算・判定処理」を混同しないようにします。テストケースには「直接的な入力」を記述します。
  2. ルールの排他性: 適切に設計されたテーブルでは、ルール同士がオーバーラップしてはいけません。1つのテストケースが複数のルールにまたがって該当してしまう場合は、テーブルの条件定義に不備がある可能性があります。
  3. 境界条件の正確な反映: 「2本のときだけ20KB必要」という仕様上の特殊な境界条件が、特定のルール(R3, R4)として正しく切り出されているかを読み取ることが重要です。