境界値分析のテストデータ
整数を入力するプログラムで,1 以上 99 以下の値を有効とし,それ以外を無効として扱う。境界値分析によってテストデータを選ぶ場合の組合せとして,最も適切なものはどれか。
- ア0,1,99,100
- イ−10,50,150
- ウ1,99
- エ−1,0,100,101
正解と解説を見る
正解 ア
この問題の基礎知識
- 同値分割は,入力値を同じ扱いを受けるグループ(有効同値クラスと無効同値クラス)に分け,各クラスから代表値を選んでテストする技法である。
- 境界値分析は,誤りが同値クラスの境界付近で起きやすいことに着目し,境界をはさむ両側の値をテストデータとして選ぶ技法である。
- 同値分割と境界値分析は,どちらもプログラムの内部構造を見ずに仕様から設計するブラックボックステストの技法である。
ア0,1,99,100正解
境界値分析では,有効同値クラスと無効同値クラスの境界をはさむ値を選ぶ。下限の境界をはさむ 0 と 1,上限の境界をはさむ 99 と 100 を選んでいるので最も適切である(内側の 2,98 も加えて境界ごとに 3 点とする方式もある)。
イ−10,50,150
無効クラス(下側),有効クラス,無効クラス(上側)からそれぞれ代表値を選ぶ同値分割の考え方である。境界付近の誤りを検出する境界値分析の選び方ではない。
ウ1,99
有効クラス側の境界値だけを選んでおり,無効クラス側の境界値である 0 と 100 が含まれていない。比較演算子の誤り(<と≦の取り違えなど)を検出できない場合がある。
エ−1,0,100,101
無効クラス側の値だけを選んでおり,有効クラス側の境界値である 1 と 99 が含まれていない。有効な境界値が正しく受け付けられるかを確認できない。
検証用の出典出典照合済み
ISO/IEC/IEEE 29119-4 Software testing — Test techniques / NIST SP 800-142 Practical Combinatorial Testing照合の根拠(3 件)
- ア(正解)/ウ・エ(誤り): 境界値分析は境界とその両側の隣接値を選ぶ。両側(0 と 1,99 と 100)を含むのはアだけで,ウは無効側,エは有効側の境界値を欠く
One common strategy, boundary value analysis, is to select test values at each boundary and at the smallest possible unit on either side of the boundary, for three values per boundary.
NIST SP 800-142 · Section 4.1(新しいタブで開きます) - エ(誤り): 比較演算子の誤りは境界上の有効値で検出でき,境界外の無効値だけでは検出できない
Here, the second condition should have been “amount <= 300”, so a test case that includes the value amount = 300 can detect the error, but a test with amount = 305 would not.
NIST SP 800-142 · Section 4.1(新しいタブで開きます) - イ(誤り): 各区分から代表値を選ぶのは同値分割の考え方であり,境界の値を選ぶ境界値分析ではない
The objective is to partition the input space such that any value selected from the partition will affect the program under test in the same way as any other value in the partition.
NIST SP 800-142 · Section 4.1(新しいタブで開きます)
NIST SP 800-142 は境界値分析を「境界ごとに境界値とその両側の 3 点」と説明している。本問の選択肢では,両側の境界をはさむ値を含むアが最も適切(2,98 を加える 3 点方式もある旨を解説に追記)。