テスト技法
ソフトウェアのテスト技法に関する記述として,適切なものはどれか。
- ア境界値分析は,プログラムの内部構造に着目し,全ての分岐を少なくとも 1 回実行するようにテストケースを設計するホワイトボックステストの技法である。
- イ同値分割は,入力条件と出力される動作の組合せを表の形に整理し,その表の各列をテストケースとする技法である。
- ウ判定条件網羅(分岐網羅)では,プログラム中の各判定について,結果が真となる場合と偽となる場合がそれぞれ少なくとも 1 回実行されるようにテストケースを設計する。
- エファジングは,仕様書に基づいて期待される正常な入力値だけを網羅的に与え,ソフトウェアが仕様どおりに動作することを確認する技法である。
正解と解説を見る
正解 ウ
この問題の基礎知識
- ブラックボックステストは仕様に基づいて入力と出力の関係を確かめる技法,ホワイトボックステストはプログラムの内部構造(命令や分岐)に着目してテストケースを設計する技法である。
- ブラックボックステストの技法には,入力を同じ処理が行われるクラスに分ける同値分割,クラスの境界付近の値を使う境界値分析,条件と動作の組合せを表に整理するデシジョンテーブル(決定表)などがある。
- ホワイトボックステストのカバレッジ基準には,全命令を 1 回以上実行する命令網羅,各判定の真と偽を 1 回以上実行する判定条件網羅(分岐網羅),各条件の真と偽を網羅する条件網羅などがある。
- ファジングは,問題を引き起こしそうな異常なデータを大量に入力し,異常終了や応答停止などの挙動を観察して脆弱性を見つける技法である。
ア境界値分析は,プログラムの内部構造に着目し,全ての分岐を少なくとも 1 回実行するようにテストケースを設計するホワイトボックステストの技法である。
境界値分析は,仕様から導いた同値クラスの境界付近の値をテストデータとするブラックボックステストの技法である。全ての分岐の実行を目標とするのは判定条件網羅である。
イ同値分割は,入力条件と出力される動作の組合せを表の形に整理し,その表の各列をテストケースとする技法である。
入力条件と動作の組合せを表に整理してテストケースを導くのはデシジョンテーブルテストである。同値分割は,入力値を同じ処理が行われるクラスに分け,各クラスの代表値でテストする技法である。
ウ判定条件網羅(分岐網羅)では,プログラム中の各判定について,結果が真となる場合と偽となる場合がそれぞれ少なくとも 1 回実行されるようにテストケースを設計する。正解
判定条件網羅はホワイトボックステストのカバレッジ基準の一つであり,各判定の真と偽の両方の分岐を少なくとも 1 回ずつ通過させる。全命令を 1 回以上実行する命令網羅よりも強い基準である。
エファジングは,仕様書に基づいて期待される正常な入力値だけを網羅的に与え,ソフトウェアが仕様どおりに動作することを確認する技法である。
ファジングは,問題を引き起こしそうな異常な入力データ(ファズ)を大量に与え,異常終了や応答停止などを観察して脆弱性を検出する技法であり,正常値だけを与えるものではない。
検証用の出典出典照合済み
ISO/IEC/IEEE 29119-4 Software and systems engineering - Software testing - Part 4: Test techniques / JSTQB Foundation Level シラバス / NIST IR 8397 Guidelines on Minimum Standards for Developer Verification of Software / NBS SP 500-93 Software Validation, Verification, and Testing Technique and Tool Reference Guide / NIST SP 800-142 Practical Combinatorial Testing照合の根拠(9 件)
- ウ(正解): 分岐網羅は全ての分岐(判定の真と偽)を通過させる
“Branch coverage” requires that every branch is taken.
NIST IR 8397 · Section 3.3(新しいタブで開きます) - ウ(正解)の解説: 命令網羅は最も弱い基準であり,分岐網羅の方が強い
Statement coverage is the weakest criterion widely used.
NIST IR 8397 · Section 3.3(新しいタブで開きます) - ア(誤り): 境界値分析(input boundary analysis)は内部構造に基づかないブラックボックステストの技法である(同節で例示)
“Black box” tests are not based on the implementation or the particular code.
NIST IR 8397 · Section 2.6(新しいタブで開きます) - エ(誤り): ファジングは大量の入力を自動生成して与える
fuzzers create huge numbers of inputs during testing.
NIST IR 8397 · Section 2.9(新しいタブで開きます) - エ(誤り): 非常に長い入力や空の入力,特殊文字など不具合を起こしやすい入力を与えるので,正常値だけを与えるものではない
The tools can be programmed with inputs that often reveal bugs, such as very long or empty inputs and special characters.
NIST IR 8397 · Section 2.9(新しいタブで開きます) - ウ(正解): 分岐網羅は各判定の全ての分岐(真と偽)を少なくとも 1 回実行する基準である
BRANCH TESTING: a test method satisfying coverage criteria that require, for each decision point, each possible branch be executed at least once.
NBS SP 500-93 · Glossary (p.129)(新しいタブで開きます) - ア(誤り): 境界値分析は入力領域(出力範囲)のクラスの境界の値をテストデータとする技法であり,内部構造に基づく分岐網羅ではない
BOUNDARY VALUE ANALYSIS: a selection technique in which test data is chosen to lie along "boundaries" or extremes of input domain (or output range) classes
NBS SP 500-93 · Glossary (p.129)(新しいタブで開きます) - イ(誤り): 入力条件の組合せを表(デシジョンテーブル)に整理し,各列をテストケースとするのはデシジョンテーブル(原因結果グラフ)の技法である
Each column in the table represents a test case.
NBS SP 500-93 · 4.6.5 Outline of method(新しいタブで開きます) - イ(誤り): 同値分割は変数の取り得る値を少数の同値クラスにまとめる技法である
Practical testing often requires abstracting the possible values of a variable into a small set of equivalence classes.
NIST SP 800-142 · 4.4 Chapter Summary(新しいタブで開きます)
NBS SP 500-93 は OCR されたテキストのため,誤字のない箇所を引用した。