COLUMN
コラム
Column 22

ホワイトボックステストとブラックボックステストについて

システム開発を行ううえでテストは必要な工程になりますが、その中でホワイトボックステストとブラックボックステストはシステム開発を進める中で必要なテストとなります。
今回は、ホワイトボックステストとブラックボックステストのメリット・デメリットについて考えてみたいと思います。

1. ホワイトボックステストとは

ホワイトボックステストとは、テスト対象の中身(モジュール内の処理フロー)や作り(プログラムの構造や仕組み)について検証し、主に開発者向けのテストとなります。

① ホワイトボックステストのメリット

ホワイトボックステストは開発者向けのテストになるため、テストできるパスやデータの組み合わせなどを導き出しコードカバレッジとしての網羅度を確保します。
この際にあらゆる状況下でもテストを行うことが可能となり、実際の製品において、設定できないような状況下を作り出してテストすることも可能となるため、想定外の事態に対応できることの確認やシステムの耐久性などを把握することができます。

また、開発者がコーディング後の開発段階でテストを行うため、初期段階で不具合が見つかることも多く、システム開発全体でコスト削減にも繋がることになります。

② ホワイトボックステストのデメリット

システムにおいて、ユーザーは不具合が少ないことを求めていると思いますが、実際にシステムを使用した際の使いやすさも求めていると思います。
ホワイトボックステストは、プログラム内部のコードカバレッジを評価するテストであるため、UIとしての使いやすさまでは評価できないことがデメリットとなります。
このテストでは、全体的なプログラムの連携処理などが問題なく出来ているかの評価を行うので、使いやすさよりも性能面を重視して評価していくことになります。

2. ブラックボックステストとは

ブラックボックステストとは、ホワイトボックステストとは対照的にテスト対象の中身(モジュール内の処理フロー)には着目せず、システムが仕様通りの動作をしているか、ユーザーが使用しやすいかや画面内のレイアウトが崩れていないかなどを確認するテストとなります。
実際のテスト工程としては、最終工程で行うことが一般的には多いです。

① ブラックボックステストのメリット

システムを実際に使用するユーザーにとって、そのシステムが要求通りに動作するか、実際に使った時の使用感は重要になります。
ホワイトボックステストで評価する処理の正確さも必要ですが、実際に使用するのはユーザーになりますので、ブラックボックステストとして、そのシステムが仕様通りに動作するか、画面レイアウトや画面遷移/各ボタンの位置などにおける使いやすさも評価できるメリットがあります。

② ブラックボックステストのデメリット

ブラックボックステストではユーザー観点のテストとなるため、システムを使用した際に正しい結果で動作していれば問題になることはありませんが、プログラム内部における処理上の不具合を発見することは困難です。
システムが正しい動作をしていた場合でも内部的に処理が誤っていたり、不要な処理の影響で結果が出るまでのスピードが遅くなっていたりすることを見つけ出すのは難しいです。
これにより、システムが世に出てから不具合(俗にいう市場不具合)が発見されてしまう可能性が高まってしまいます。

3. まとめ

今回はホワイトボックステストとブラックボックステストのメリット・デメリットについてまとめさせて頂きましたが、システム開発におけるテストを行ううえで、どちらのテストも重要であることが言えます。
システム開発時においてシステムの規模や開発期間、予算や人員のリソースにより、テストを行う工数も限られてくると思いますが、効率的なテストを行い世に出るシステムの品質を高めていければと思います。

ページトップへ戻る