ブラックボックステスト(ぶらっくぼっくすてすと)情報システム用語事典

black-box testing

» 2011年11月07日 00時00分 公開
[@IT情報マネジメント編集部,@IT]

 ソフトウェアプログラムの内部構造を参照することなく、外部からみた機能や性能について検証を行うソフトウェアテスト技法の総称。テスト対象をブラックボックス(内部が見えない箱)とみなすことから、このようにいう。

 コンピュータシステムやソフトウェアプログラムは、設計者や開発者にとっては内部に機能を発揮するためのメカニズムを持つ存在だが、利用者にとっては“任意の入力(操作)に行って、目的の出力(機能や効果)を得る”装置である。このように内部的な実現手段については目をつむり、利用者的な観点で“入力”に対する“出力”が正しいか否かを検証するテスト方法をブラックボックステストという。

 ブラックボックステストが追究する「入力に対する出力の正しさ」の根拠となるのが、テスト対象の「仕様」である。通常、小さな単位ではモジュールを定義する仕様(詳細設計書など)があり、より大きな単位ではシステム全体を定義する仕様(外部仕様書など)がある。ブラックボックステストは、これらの単位で仕様が実現されているかを確認するもので、仕様が定義されている限り、「単体テスト」「結合テスト」「システムテスト」のいずれのレベルでも実施可能である。

 ソフトウェア開発にはさまざまな仕様概念があるが、中心的な存在が機能仕様である。そのため、ブラックボックステストは機能を検証するテストとみなされ、機能テストの同義語と説明されることもある。とはいえ、非機能テストや負荷テストなども一般に内部構造を意識しないブラックボックステストとして行われる。

 実際のブラックボックステストは、テスト対象ソフトウェアに任意の入力(操作や状態、パラメータなど)を与えて、仕様書に添った出力(結果や動作)が得られるかどうかを確認する作業である。わざと不正な入力・過剰な入力を行って、“正しく”異常処理が実行されるかについても検証する。結合テスト以降ではインターフェイスについても動作確認を行う。

 ブラックボックステストにおいても完全網羅テストは現実的ではないため、テストケースを適切に絞り込む必要がある。ブラックボックステストで使われるテストケース設計テクニックとしては、「同値分割」「境界値分析」「原因結果グラフ技法」「エラー推測」が有名である。

 ブラックボックステストは原則として外部仕様に基づいてテストを行うので、仕様に表れない内部的・潜在的不具合についての検証ができない。また、何らかの欠陥が重なって“たまたま”結果が仕様どおりだった場合についても欠陥を検出できない。これらを検証するにはホワイトボックステストが有効である。

 例えば、ブラックボックステストで仕様を満たしていることを確認した状況で、ホワイトボックステストを実施してコードカバレッジが低ければ、仕様に記述されていない冗長な処理や不正なコードが存在する可能性があるということになる。

 従って、ソフトウェアテスト??特に単体テストの基本的な流れとしては、ブラックボックステストで仕様漏れがないことを確認したうえで、ホワイトボックステストを補完的に行うのがよいだろう。ブラックボックステストは仕様さえあればテスト設計できるので、ホワイトボックステストよりも早い段階からテストケースを作成できる。

 このブラックボックステストを実施する段階で、ホワイトボックス指標のコードカバレッジを測定すれば、実行できなかった分岐や経路が分かる。この非実行部分を通るようにテストケースを追加すれば、テストケースの重複作成を防止できる。

 ブラックボックステストの類義語として、「データ依存テスト」「入出力依存テスト」「動作テスト」「仕様ベーステスト」「不透明ボックステスト」「クローズドボックステスト」などが使われる。

参考文献

▼『実践的プログラムテスト入門――ソフトウェアのブラックボックステスト』 ボーリス・バイザー=著/小野間彰、山浦恒央、石原成夫=訳/日経BP社/1997年8月(『Black-Box Testing: Techniques for Functional Testing of Software and Systems』の邦訳)

▼『はじめて学ぶソフトウェアのテスト技法』 リー・コープランド=著/宗雅彦=訳/日経BP社/2005年11月(『A Practitioner's Guide to Software Test Design』の邦訳)

▼『経験ゼロでもできるプログラミング現場の単体テスト』 片桐一宗=著/翔泳社/2009年5月

▼『要求仕様の探検学??設計に先立つ品質の作り込み』 ドナルド・C・ゴーズ、ジェラルド・M・ワインバーグ=著/柳川志津子=訳/共立出版/1993年8月(『Exploring Requirements: Quality Before Design』の邦訳)


Copyright © ITmedia, Inc. All Rights Reserved.

注目のテーマ