← メディア一覧

テストの基本:ホワイトボックス_vs_ブラックボックス

4分59秒 | テスト品質FE

基本情報技術者試験の頻出テーマを解説した動画コンテンツです。

トランスクリプト(字幕テキスト)

どうも、ソフトウェアのテストってどうやってるんだろうと考えたことありますか?今日はその基本中の基本、 ホワイトボックステストとブラックボックステストっていう2つの大きな考え方について、サクッと解説していきます。さっそく行きましょう! まずは、皆さんにちょっとしたクイズです。目の前に箱が2つあるとします。1つは真っ黒で中が全然見えない、 もう1つは透明で中が全部丸見え。さあ、もしどっちかの箱の欠陥を見つけてって言われたら、どっちが楽だと思います? ですよね。もちろん透明な箱。だって中の仕組みとか何がどうなってるか全部見えるんだから、どこがおかしいかすぐわかりそうですもんね。 実はこのごく当たり前の感覚が、1つ目のテスト方法を理解する上でめちゃくちゃ大事な鍵になるんです。 はいというわけで、まずはこちら。中を見る:ホワイトボックスアプローチです。さっきの透明な箱っていうのが、まさにこの考え方そのものなんですよ。 じゃあ、ホワイトボックステストって具体的に何かっていうと、ソフトウェアの中身、つまりソースコードを直接覗き込んで、 その設計図通りにちゃんと動いてるかなって確認するやり方なんです。ポイントは、プログラムの内部にがっつり注目するところですね。 そうそう。だから、ホワイトボックス、白い箱っていうよりは、もう透明な箱とかガラスの箱といったほうがイメージしやすいかもしれないですね。 中身がスケスケの状態。開発者から見ると、まさにこんな感じで自分の書いたコードをチェックしていくわけです。 じゃあ、これ誰がいつやるのって話なんですけど、これは主に、プログラムを作っている開発者自身がやります。 タイミングとしては、機能ごととか部品ごとみたいな小さい単位でテストする、単体テストの時が多いですね。 もしこの条件だったら、こっちの処理に進むはずだよな、よし、オッケー。みたいに、コードの細かいロジックを1つ1つ潰していく感じなんです。 さて、ホワイトボックスは中を見るアプローチでした。でも、もし箱の中が全く見えなかったらどうします? ここからが、もう1つの大事な考え方、ブラックボックスアプローチのお話です。この、ブラックボックステストっていうのは、さっきのホワイトボックスとはもう真逆の発想です。 プログラムの中身、つまりコードがどうなってるかなんて一切気にしません。全く見ない。じゃあ、何を見るかっていうと、外側から見た機能だけ。 何かを入力したら期待した通りの出力が返ってくるか、もうそれだけをチェックするんです。この例え、すごくよくないですか?まさに魔法の箱。 箱の中でどんなすごい魔法が使われてるかなんて知る必要はないんですよ。大事なのは、リンゴを入れたらちゃんと美味しいジュースが出てくるかっていうその結果だけ。 これがブラックボックステストの心臓部なんです。じゃあ、こっちはどういう場面で使われるんでしょう。これはですね、ユーザーの視点を持ったテスト担当者が、 開発の後半、例えばシステム全体をテストする段階なんかでやることが多いです。大事なのは、ユーザーと同じように、中身は知らないよっていう立場で、 このボタンを押したらこの画面が出るみたいな、仕様書通りの動きをするかを確認するってことなんです。 さあ、ここまでで2つのアプローチを見てきました。じゃあ、ここらで、この2つの手法を並べてみて、どこがどう違うのか、バシッと比較してみましょうか。 この表を見ればもう一発でわかりますよね。まず焦点。方や内部のコード、方や外から見た機能。 視点も作る側の開発者と使う側のユーザーで違います。タイミングも開発の初期と後期。 で、とどめは比喩ですね。透明な箱と魔法の箱。この4つのポイントを抑えておけば、もうごちゃごちゃになることはないはずです。 さて、そろそろまとめに入っていきましょう。今日お話しした中で、これだけは絶対に押さえておいてほしい、 っていう重要なポイントを最後にもう一度確認しておきましょう。要するにこういうことです。 ホワイトボックスは料理でいうレシピが正しいかをチェックするようなもの。で、ブラックボックスは完成した料理を味見して、 ちゃんとお品書き通りの味になってるかを確認する感じ。 だから、開発者が部品を作る時はホワイトボックスが活躍して、システム全体が出来上がったらブラックボックスの出番。 これどっちかが優れてるって話じゃなくて、お互いに足りない部分を補い合う、車の両輪みたいな関係なんですね。 さて、今回の話はここまでなんですが、最後に一つこんな疑問湧いてきませんか?いや待てよ。 ブラックボックスと言ったって、考えられる入力のパターンなんて無限にあるんだから、全部試すなんて絶対に無理じゃないって。 ええ、その通りです。鋭いですね。で、実は、その課題をクリアするための賢いテクニックっていうのがちゃんとあるんですよ。 そのお話はまたの機会に。

このコンテンツは Web society で視聴・学習できます。