問題11:デシジョンテーブルテスト(2)モバイルアプリのダウンロード機能
問題 #11
Section titled “問題 #11”あなたはテストアナリストとして、デシジョンテーブルテスト技法を用いて、モバイルアプリケーションのダウンロード機能をテストしています。仕様書には以下のように記載されています:
「ダウンロードを開始する前に、アプリケーションは携帯電話ネットワークの接続強度が少なくともアンテナ2本以上であり、ファイルをダウンロードするのに十分なデータ容量があることを確認する。接続強度がアンテナ2本という境界事例(borderline case)では、少なくとも20KBの追加データ容量(バッファ)が必要である。」
テスト分析中に、以下のデシジョンテーブルを設計し、レビューに成功しました。
| ID | 条件 (Conditions) | R1 | R2 | R3 | R4 | R5 |
|---|---|---|---|---|---|---|
| C1 | 携帯電話の接続強度 | < 2本 | ≥ 2本 | 2本 | 2本 | ≥ 3本 |
| C2 | 利用可能なデータ容量 | N/A | 不足 | バッファ不足 | バッファ十分 | 十分 |
| アクション (Actions) | ||||||
| A1 | ファイルをダウンロードする | N | N | N | Y | Y |
| A2 | メッセージ「データ容量不足」を表示 | N | Y | N | N | N |
| A3 | メッセージ「接続状態不十分」を表示 | Y | N | Y | N | N |
この仕様に基づき、全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)で発生するものとして定義されています。
テストケース
Section titled “テストケース”デシジョンテーブルの各ルール(R1〜R5)に対して、具体的な入力値と期待結果を定義します。
入力パラメータ
Section titled “入力パラメータ”テストケースが持つ入力は以下の3つです。
| パラメータ | 説明 |
|---|---|
| 接続強度 | アンテナ本数(0〜5本) |
| データ容量 | 利用可能なデータ容量(KB) |
| ファイルサイズ | ダウンロード対象ファイルのサイズ(KB) |
境界条件: 接続強度 = 2本の場合、「データ容量 − ファイルサイズ」が 20KB 以上あること(バッファ要件)がダウンロード開始の条件となります。
テストケース一覧
Section titled “テストケース一覧”| TC | 対象ルール | 接続強度 | データ容量 | ファイルサイズ | A1(DL) | A2(容量不足) | A3(接続不十分) |
|---|---|---|---|---|---|---|---|
| TC1 | R1 | 1本 | 200 KB | 100 KB | N | N | Y |
| TC2 | R2 | 3本 | 80 KB | 100 KB | N | Y | N |
| TC3 | R3 | 2本 | 110 KB | 100 KB | N | N | Y |
| TC4 | R4 | 2本 | 125 KB | 100 KB | Y | N | N |
| TC5 | R5 | 4本 | 150 KB | 100 KB | Y | N | N |
各テストケースの設計根拠
Section titled “各テストケースの設計根拠”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)を上回るため、バッファ要件なしでダウンロードを開始します。
R3・R4の境界値の整理
Section titled “R3・R4の境界値の整理”TC3とTC4はどちらも接続強度 = 2本で、バッファ量の境界(20KB)をまたいでいます。
| TC3(R3) | 境界 | TC4(R4) | |
|---|---|---|---|
| バッファ | 10 KB | 20 KB | 25 KB |
| 結果 | DL不可・A3表示 | — | DL開始 |
デシジョンテーブルの設計とテストケース作成において、実務上も重要なポイントがいくつか含まれています。
- 入力値と内部計算の区別: ユーザーや環境から与えられる「直接的な入力」と、プログラムが内部で行う「計算・判定処理」を混同しないようにします。テストケースには「直接的な入力」を記述します。
- ルールの排他性: 適切に設計されたテーブルでは、ルール同士がオーバーラップしてはいけません。1つのテストケースが複数のルールにまたがって該当してしまう場合は、テーブルの条件定義に不備がある可能性があります。
- 境界条件の正確な反映: 「2本のときだけ20KB必要」という仕様上の特殊な境界条件が、特定のルール(R3, R4)として正しく切り出されているかを読み取ることが重要です。