ホワイトボックステストとは?ほわいとぼっくすてすと
ホワイトボックステストとは、プログラムの制御構造に基づいてテストケースを設計する技法で、評価軸はどこまで網羅したかを示すカバレッジ基準である。基準は弱い順に、命令網羅(C0、全ステートメントを1回以上実行)、判定条件網羅(C1、各判定の真偽を両方通す)、条件網羅(各条件式の真偽を両方通す)、判定条件/条件網羅、複合条件網羅(C2、条件の全組合せ)となり、上位ほどケース数が増える。注意すべきは条件網羅がC1より必ず強いわけではない点で、A and B を (真,偽)(偽,真) の2ケースで試すと各条件の真偽は網羅されるが判定結果は常に偽になり、判定条件網羅を満たさない。安全性が要求される領域ではMC/DC(改良条件判定網羅、各条件が単独で判定結果を反転させることを示す)が要求される。実務ではJaCoCoなどのカバレッジ計測をCIに組み込み、閾値を割ったらビルドを落とす形で運用する。
最終更新:2026-10-06
この語が出る過去問を解く →背景
テストは「どこまでやれば終わりか」を決められない作業であり、放置すれば工数が青天井になる一方、早く出したい要求からは常に圧力がかかる。カバレッジ基準は、この対立に対して「網羅の度合いを数値で示し、水準を合意する」という決着をつけるために整備された。C0からMC/DCへ段階が刻まれているのも、要求される安全性とケース数の増加を天秤にかけられるようにするためで、車載や医療では規格側が水準を指定する。したがって議論の対象は「テストしたか」ではなく「どの基準を満たしたか」になる。試験がC0とC1の差やMC/DCを問うのは、この水準の使い分けを言えるかを見ている。
具体例
車載ソフトウェアの機能安全規格ISO 26262は、ASILの水準に応じて構造カバレッジの目標を求めており、最も厳しい水準ではMC/DCが推奨される。トヨタやデンソーが関わる制御系の開発でカバレッジ計測ツールが標準装備になっているのはこのためで、「テストを書いたか」ではなく「どの基準でどこまで到達したか」を数値で示す必要がある。
試験での引っ掛け
記述式では「なぜC0では不十分か」を書かせる形が出る。命令網羅は全行を通るだけで、if文の偽側の経路(else が無い場合の素通り)を検証しないため、条件の取りこぼしを検出できない、が答えの芯になる。境界として、カバレッジ100%はバグゼロを意味しない。ホワイトボックスは書かれたコードしか見ないので、実装漏れ(仕様にあるのに書かれていない処理)は原理的に検出できず、そこはブラックボックス側の同値分割・限界値分析が担う。両者は代替ではなく補完である、と言い切れるかが分かれ目。
関連用語
出た過去問
出典:平成29年度 春期 応用情報技術者試験 午前 問18(IPA)
ホワイトボックステストにおいて,プログラムの実行された部分の割合を測定するのに使うものはどれか。
正解:テストカバレージ分析ツール
要点:実行された部分の割合はカバレージ分析ツールで測定する
テストカバレージ分析ツールは、テスト実行中にどの命令・分岐が通過したかを記録し、プログラム全体に対する実行済み部分の割合(網羅率)を測定する。ホワイトボックステストの十分性を判断する指標になる。
出典:平成29年度 春期 応用情報技術者試験 午前 問48(IPA)
流れ図において,分岐網羅を満たし,かつ,条件網羅を満たすテストデータの組みはどれか。
正解:(x=1,y=2) と (x=0,y=1) と (x=0,y=2)
要点:分岐網羅は判定の真偽、条件網羅は各条件の真偽を通すこと
分岐網羅は各判定が真になる場合と偽になる場合を通すこと、条件網羅は判定を構成する個々の条件が真と偽の両方を取ることを求める。三つのデータを使うと、一つ目の判定が真と偽の両方を通り、二つ目の判定も真と偽を通り、さらに三つの条件それぞれが真・偽の両方の値を取る組合せになっている。
出典:令和3年度 春期 応用情報技術者試験 午前 問48(IPA)
あるプログラムについて、流れ図で示される部分に関するテストを、命令網羅で実施する場合、最小のテストケース数は幾つか。ここで、各判定条件は流れ図に示された部分の先…
正解:3
要点:命令網羅の最小テスト数は各段の最大分岐数で決まる
命令網羅は、すべての命令(処理)を少なくとも1回実行すればよい基準である。この流れ図は分岐先が3つ、2つ、3つの段が直列に並ぶので、1回のテストで各段から1つずつ処理を通せる。したがって最も多い分岐数である3回のテストで全処理を網羅できる。
出典:令和4年度 秋期 応用情報技術者試験 午前 問48(IPA)
流れ図で示したモジュールを表の二つのテストケースを用いてテストしたとき、テストカバレージ指標であるC0(命令網羅)とC1(分岐網羅)とによる網羅率の適切な組みは…
正解:C0=100%, C1=80%
要点:C0は命令、C1は分岐の網羅率で、C0が満たされてもC1は残る
テストケース1(全て0)は命令1・2・4を、テストケース2(全て1)は命令3・5を通るので、5つの命令は全て実行され、C0は100%です。一方、分岐は5つの判定で計10通りありますが、内側の2つの判定(W・XおよびY・Zがともに0でない場合の判定)は偽側の経路が一度も通らないため、8/10で80%となります。
出典:令和4年度 春期 応用情報技術者試験 午前 問47(IPA)
次の流れ図において、判定条件網羅(分岐網羅)を満たす最少のテストケースの組みはどれか。
正解:(1) A=1, B=0 (2) A=1, B=1
要点:判定条件網羅は各判定の真と偽を1回ずつ通せばよい
判定条件網羅は、各判定について真と偽の両方の結果を少なくとも1回ずつ通せばよい。A=1,B=0では最初の判定が真となり、その結果C=1になるので2つ目の判定も真を通る。A=1,B=1では最初の判定が偽となりC=2になるため、2つ目の判定も偽を通る。この2件で両判定の真偽が網羅でき、これが最少である。
出典・参考
公式シラバスの4 開発技術 > 2. 設計 > (6) ソフトウェア設計に掲載されている用語です。
解説は資格暗記が独自に作成しています。過去問の出典は各問題に記載のとおりです。