ホワイトボックステスト【white-box testing】

概要

ホワイトボックステストとは、ソフトウェアテストの手法の一つで、プログラムの内部構造を理解した上でそれら一つ一つが意図した通りに動作しているかを確認するテスト。
ホワイトボックステストのイメージ画像

開発したプログラムの挙動を確かめるテスト手法の一つで、プログラムコードの構造に基づいて命令文や内部状態を網羅するようにテストケースを作成する。コードの理解が前提となるため開発者が実施することが多く、主に単体テストユニットテスト)で用いられる。

テスト対象のソースコードのうち、どの程度の割合のコードがテストされたかを表す尺度を「カバレッジ」(テストカバレッジ/コードカバレッジ)という。何に着目するかによって「命令網羅」「判定条件網羅」「条件網羅」「複数条件網羅」「経路組み合わせ網羅」などの種類がある。

ホワイトボックステストはコードが意図した通りに動作しているかを確かめられるが、コードの内容を前提にテストケースを作成するため、プログラムに与えられた仕様を満たしているかを十分に調べきれない場合がある。特に、コードに記述のない機能の不足・欠損を見逃すことがある。

一方、プログラムの内部構造とは関係なく、外部から見て仕様書通りの機能を持っているか確認するテストを「ブラックボックステスト」(black-box testing)という。また、ホワイトボックステストとブラックボックステストを組み合わせた手法を「グレーボックステスト」(gray-box testing)ということがある。

(2024.2.8更新)

他の用語辞典による「ホワイトボックステスト」の解説 (外部サイト)

資格試験などの「ホワイトボックステスト」の出題履歴

▼ ITパスポート試験
平30秋 問44】 プログラムのテスト手法に関して、次の記述中のa、bに入れる字句の適切な組合せはどれか。 プログラムの内部構造に着目してテストケースを作成する技法を [  a  ] と呼び、 [  b  ] において活用される。
平26春 問34】 開発者Aさんは、入力データが意図されたとおりに処理されるかを、プログラムの内部構造を分析し確認している。現在Aさんが行っているテストはどれか。
平25春 問37】 ホワイトボックステストのテストケース作成に関する記述のうち、適切なものはどれか。
平24秋 問46】 プログラムの品質を検証するために、プログラム内部のプログラム構造を分析し、テストケースを設定するテスト手法はどれか。

▼ 基本情報技術者試験
令6修12 問14】 ホワイトボックステストにおいて,プログラムの実行された部分の割合を測定するのに使うものはどれか。
令5修12 問14】 ホワイトボックステストにおいて,プログラムの実行された部分の割合を測定するのに使うものはどれか。
令3修6 問46】 ホワイトボックステストの説明として,適切なものはどれか。
令1修7 問19】 ホワイトボックステストにおいて,プログラムの実行された部分の割合を測定するのに使うものはどれか。
平28修7 問50】 ホワイトボックステストの説明として,適切なものはどれか。
平27春 問50】 図の構造をもつプログラムに対して,ホワイトボックステストのテストケースを設計するとき,少なくとも実施しなければならないテストケース数が最大になるテスト技法はどれか。
平26修12 問48】 テスト手法の一つであるホワイトボックステストの説明として,適切なものはどれか。
平25修7 問50】 テスト手法の一つであるホワイトボックステストの説明として,適切なものはどれか。
平25春 問22】 ホワイトボックステストにおいて,コード中のどれだけの割合の部分を実行できたかを評価するのに使うものはどれか。
平23修12 問51】 ホワイトボックステストのテストケースを設計する際に使用するものはどれか。
平23修6 問50】 ホワイトボックステストのテストデータを作成するときの注目点として,適切なものはどれか。
平23春 問49】 ホワイトボックステストの説明として,適切なものはどれか。
平23修1 問49】 テスト手法の一つであるホワイトボックステストの説明として,適切なものはどれか。
平22修7 問49】 ホワイトボックステストのテストデータを作成するときの注目点として,適切なものはどれか。
平21修6 問48】 ホワイトボックステスト法によってプログラムをテストする。テストの網羅性の低いものから順に並べたものはどれか。