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

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

公開:
💡 コードの中身を見ながら「すべての道」を通す
📌 このページのポイント
ホワイトボックステスト 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」 = 白箱テスト
💬 箱(プログラム)の中が白く透けて見える=内部構造が見えるテスト。別名:グラスボックステスト、構造テストだよ
← 用語集にもどる