【ほわいとぼっくすてすと】

ホワイトボックステスト とは?

💡 コードの中身を見ながら「すべての道」を通す
📌 このページのポイント
ホワイトボックステスト vs ブラックボックステスト ホワイトボックステスト 内部構造を見てテスト if (x > 0) { return "正"; } else { return "零以下"; } ← 分岐1 ← 分岐2 ブラックボックステスト 外部の動作だけを確認 中身は見えない ??? 入力→ →出力 入力と出力の組み合わせでテスト ※ ホワイトボックスはコードの分岐・ループをすべて通るかを確認する
ホワイトボックステストのイメージ
ひよこ ひよこ

ブラックボックステストとどう違うの?

ペンギン先生 ペンギン先生

ブラックボックスは「入力と出力だけ」を見てテストする。中身は気にしない。ホワイトボックスは「コードの中身を見て」テストする。if文の分岐が全部通るか、ループが正しく回るかなど、内部ロジックを検証するんだよ

ひよこ ひよこ

カバレッジってどういう基準があるの?

ペンギン先生 ペンギン先生

主に4段階あるよ。①命令網羅(C0):全ての命令文を最低1回実行、②分岐網羅(C1):全ての分岐の真偽を最低1回通る、③条件網羅(C2):全ての条件式の真偽を網羅、④経路網羅:全ての実行パスを通る。実務ではC1(分岐網羅)80%以上が一般的な目標だね

ひよこ ひよこ

100%カバレッジなら完璧?

ペンギン先生 ペンギン先生

残念ながらそうとは限らないよ。カバレッジはコードを通ったかどうかだけで、「正しい値か」は検証しない。例えば「1+1=3」というバグも、その行を通れば100%カバレッジにカウントされる。カバレッジはあくまで「テストの網羅性の目安」であって品質の保証ではないんだ

ひよこ ひよこ

IPA試験ではどう出題されるの?

ペンギン先生 ペンギン先生

基本情報でも応用情報でも定番の出題テーマだよ。「次のフローチャートで分岐網羅を達成するために必要なテストケースの最小数を求めよ」のような問題が出る。命令網羅と分岐網羅の違いを理解して、テストケースを設計できれば確実に得点できるよ

ペンギン
まとめ:ざっくりこれだけ覚えればOK!
「ホワイトボックステスト」って出てきたら「コードの内部構造を見てテストする手法」と思えればだいたいOK!
📖 おまけ:英語の意味
「White-Box Testing」 = 白箱テスト
💬 箱(プログラム)の中が白く透けて見える=内部構造が見えるテスト。別名:グラスボックステスト、構造テストだよ
← 用語集にもどる