「分かりそう」で「分からない」でも「分かった」気になれるIT用語辞典イメージぴよ画像「分かりそう」で「分からない」でも「分かった」気になれるIT用語辞典

ホワイトボックステスト

pointこの用語のポイント

pointテストのやり方だよ

pointテスト対象の中身に着目してやるよ

point中身のすべてが最低1回は動くようにテスト項目を作るのが基本だよ

スポンサーリンク

簡単に書くよ

ホワイトボックステスト(英:white box test)とは

テストのやり方の分類のひとつ
であり

プログラムの中身がどうなっているかに着目して、プログラム内のそれぞれの処理がきちんと動くかを確認するテストのこと
です。


image piyo

詳しく書くよ

順番に見ていきましょう。
まずは予備知識として「ブラックボックス」と「ホワイトボックス」について説明します。
「そんなの説明されなくても知ってるよ!」な人は適当に読み飛ばしてください。

ブラックボックスは「中身?知らんよ」な状態です。

ホワイトボックステスト

例えば、そうですね。

ここに大きな箱が ありました。

ホワイトボックステスト2

箱にケーキを入れると、お金が出てきます。

ホワイトボックステスト3

箱の中身が一体どうなっているのか、ピヨ太君は知りません。

ホワイトボックステスト4

でも、ケーキを入れるとお金が出てくることは分かっています。
ピヨ太君としては、それで十分です。

ホワイトボックステスト5

ピヨ太君は、おこづかいが欲しくなったらケーキを箱に入れます。

ホワイトボックステスト6

出てきたお金を使って豪遊します。

ホワイトボックステスト7

ピヨ太君は箱の中身を知りません。
でも箱を活用しています。

このような

「中身(内部の構造とか)が分かってないよ~」な状態

がブラックボックスです。

ホワイトボックステスト8

ホワイトボックスはブラックボックスの逆です。
中身が分かっている状態です。

ホワイトボックステスト9

先ほどのブラックボックスの説明で箱が出てきました。
ケーキを入れると、お金が出てくる箱です。

ホワイトボックステスト10

ある日、ピヨ太君は誘惑に負けてしまいました。
箱の中身を覗いてしまったのです。

ホワイトボックステスト11

なんと!
箱の中にはピヨ子さんが入っていました。
ピヨ子さんが箱に入ってきたケーキをパクパク食べて、そのお礼として、お金を放り投げていたのです。

ホワイトボックステスト12

これで謎の箱の中身が分かりました。
もう謎では ありません。

ホワイトボックステスト13

このような

「中身(内部の構造とか)がバッチリ分かってるぜ!」な状態

がホワイトボックスです。

ホワイトボックステスト14

以上を踏まえて

中身をテストするテスト

が「ホワイトボックステスト」です。
ホワイトボックステストでは、対象となるプログラムの内部構造に着目して、それぞれの処理がきちんと動くかを確認します。

ホワイトボックステスト15

例えば、そうですね。
ピヨ太君がピヨピヨ苺大福製造機を作りました。
ピヨピヨ苺大福製造機は、苺と大福を入れると苺大福に加工するのがお仕事の機械です。

ホワイトボックステスト16

このピヨピヨ苺大福製造機がきちんと動くかテストします。

ピヨピヨ苺大福製造機は、苺と大福を入れると苺大福になって出てくる機械です。

ホワイトボックステスト17

……と、口で言うのは簡単ですが、中身は複雑です。
大福を真ん中から真っ二つに割り、そこにヘタを取った苺を突っ込み、また元のようにくっつけるのです。

ホワイトボックステスト18

あれ?中身もそんなに複雑じゃないな。
まぁ、いいや。

とにかく、ピヨピヨ苺大福製造機は、大福を真ん中から真っ二つに割り、そこにヘタを取った苺を突っ込み、また元のようにくっつけることで苺大福を作る機械です。

ホワイトボックステスト19

ホワイトボックステストでは、ピヨピヨ苺大福製造機が「大福を真ん中から真っ二つに割り、そこにヘタを取った苺を突っ込み、また元のようにくっつけることで苺大福を作る機械である」と知っている前提で、それぞれの工程がきちんと行われるかを確認します。
確認項目としては、例えば以下のような内容が考えられるでしょう。

1.大福を真ん中から真っ二つに割れるか
2.大福を真ん中から真っ二つに割れない場合どうなるか
3.苺のヘタを取れるか
4.苺のヘタが取れない場合どうなるか(最初からヘタが付いていない、など)
5.苺を大福の中に入れられるか
6.苺を大福の中に入れられなかった場合どうなるか
7.一度割った大福を元のようにくっつけられるか
8.一度割った大福を元のようにくっつけられない場合どうなるか


これらの確認項目は、ピヨピヨ苺大福製造機の中身がどうなっているかを知っているからこそ用意できる項目ですよね。
ピヨピヨ苺大福製造機の中身を知らなければ「大福を真ん中から真っ二つに割れるか」なんて確認項目は出てこないはずです。
ピヨピヨ苺大福製造機が大福を真ん中から割っているか分からないですからね。
もしかしたら、上の部分をくりぬいて苺を詰めているのかもしれません。

このように、テスト対象の内部構造を把握し、それぞれの処理に対して確認項目を設定するのがホワイトボックステストです。

ホワイトボックステスト20

なお、ホワイトボックステストにおける確認項目の設定は「すべての処理を最低1回は通ること」が基本です。
プログラムというのは処理が一本道とは限りません。
「こんな条件だったらこっちの処理をやる。そうじゃなかったらあっちの処理をやる」のように枝分かれしているのが普通です。
この枝分かれした左の処理と右の処理は両方確認する必要があります。
そのため「こんな条件を設定したら左の処理を通るか」「こんな条件を設定したら右の処理を通るか」のような確認項目を用意し、テストが全部終わった時点で1回も動いていない処理がないように確認項目を設定するのです。

本当は処理の全パターンを網羅するのが理想ですけどね。
プログラムの内容によっては膨大な数になってしまうので「取りあえず、1回は動くようにしようね」と妥協されています。


image piyo2

一言でまとめるよ

まぁ「ホワイトボックステスト」って単語が出てきたら「プログラムの中身に着目して、それぞれの処理がきちんと動くか確認するテストなんだな~」と お考えください。

一番上に戻るよ
スポンサーリンク
書籍画像007
書籍画像049

おまけ

■訳してみるよ

「white(ホワイト)」の意味は「白」とか「白い」とかです。
「box(ボックス)」の意味は「箱」とか「(拳で)殴る」とかです。
「test(テスト)」はカタカナで「テスト」で分かりますよね。
何となく くっつけると

白い箱テスト

となります。



■検索してみる?




書籍画像
わわわ説明術コラム
宣伝だよ
「分かった!」と思わせる説明の技術 知識ゼロの相手にも伝わるようになる本【Audible】
サイバー忍者入門 忍者・スパイ・軍隊・ハッカーに学ぶ フルスタック・ハッキング
「技術書」の読書術 達人が教える選び方・読み方・情報発信&共有のコツとテクニック