グレーボックステスト【gray-box testing】

グレーボックステストとは?

ソフトウェアやシステムのテスト手法の一つで、テスト対象の内部構造を考慮した上で、外部から見た機能や振る舞いが正しいかどうかを検証する方式。
グレーボックステストのイメージ画像

プログラム内部の構造に基づいてテストケースなどを決める「ホワイトボックステスト」と、内部構造は考慮に入れずに入力と出力の関係のみに着目する「ブラックボックステスト」の中間的な手法であるため、「灰色」を意味する「グレー」の名が付いている。

ホワイトボックステストでは、ソースコード内部設計・構造を完全に把握した上で、ロジック分岐網羅を意識したテストを行う。一方、ブラックボックステストでは試験者はソフトウェアの内部実装を一切知らず、入力と出力の関係だけを検証する。グレーボックステストはその中間であり、試験者はデータベースの構造、アーキテクチャの概要、主要なアルゴリズムといった一部の内部情報を持ちながら、外部からの操作によって検証を進める。

例えば、Webアプリケーションのセキュリティテストでは、試験者はアプリケーションのデータベース設計やAPI仕様書を参照しながら、SQLインジェクションアクセス制御の不備を確認するが、ソースコードの制御の流れを詳細に追って条件分岐などを意識した細かいテストケースを作ることはしない。システムを完全なブラックボックスとしても、完全なホワイトボックスとしても扱わない試験方法となる。

この手法の特徴として、ブラックボックステストと比べてテストケースの設計精度が高まりやすい点が挙げられる。内部構造の知識があることで、障害が発生しやすい境界条件や特定のコードパスを狙ったテストを組み立てやすくなる。一方、ホワイトボックステストと比べると内部の完全な網羅は難しく、把握していない部分に潜む欠陥を見逃すリスクは残る。

グレーボックステストはシステムテストや受け入れテストの段階で採用されることが多い。開発チームとテストチームが分離している環境において現実的な選択肢となる。試験者が設計書や仕様書にアクセスできる状況であれば、自然とグレーボックステストの形態をとることになる場合も多い。

他の辞典等による「グレーボックステスト」の解説 (外部サイト)

この記事の著者 : (株)インセプト IT用語辞典 e-Words 編集部
1997年8月より「IT用語辞典 e-Words」を執筆・編集しています。累計公開記事数は1万ページ以上、累計サイト訪問者数は1億人以上です。学術論文や官公庁の資料などへも多数の記事が引用・参照されています。