[ 通常表示 ]  [ 簡易表示 ]  [ シンプル表示 ]

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

ホワイトボックステスト (white box test)

pointこの用語のポイント

pointテストのやり方だよ

pointテスト対象の中身がどうなっているかに着目して行うよ

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

スポンサーリンク

簡単に書くよ

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

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

image piyo

詳しく書くよ

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

ホワイトボックステスト

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

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

このぴよぴよ苺大福製造機がきちんと動くかをテストするとします。

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

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

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

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

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

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


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

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

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

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

ホワイトボックステストの説明はそんなところです。

ついでなので書いておくと、ホワイトボックステストと対になる用語として「ブラックボックステスト」というのもあります。
ブラックボックステストは「プログラムの中身は気にしないで、何を入れると何が出てくるか?を確認するテスト」です。

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

先程のぴよぴよ苺大福製造機の話で言えば

1.苺と大福を入れると苺大福が出てくるか
2.苺とケーキを入れたら何が出てくるか


のように、ぴよぴよ苺大福製造機の中身は気にしないで、入るものと出てくるもののみに着目します。

ホワイトボックステストとブラックボックステストはセットで覚えてあげてください。
大雑把なイメージとしては、ホワイトボックステストは作る人目線で行うテスト、ブラックボックステストは使う人目線で行うテストです。

image piyo2

一言でまとめるよ

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

一番上に戻るよ
スポンサーリンク