グレーボックステスト

グレーボックステスト (英: gray-box testing)は、ホワイトボックステストとブラックボックステストを組み合わせたテスト技法のこと。内部構造を把握したうえで、外部からのデータ・仕様に基づきテストをする。アプリケーションの不適切な構造、不適切な使用による欠陥を見つけるのが目的である 。 
概要.
ブラックボックステスターは、テスト対象のアプリケーションの内部構造を認識していないが、ホワイトボックステスターはアプリケーションの内部構造を見ることができる。グレーボックステスターは、内部構造を部分的に知っている。これには、内部データ構造の文書や使用されるアルゴリズムの情報が含まれる。 
グレーボックステスターは、テストケースを定義するために、アプリケーションのハイレベルな説明文書と、詳細文書の両方を必要とする。 
必要性.
グレーボックステストは、ブラックボックステストのストレートな手法を採用し、ホワイトボックステストのコードターゲットシステムと組み合わせるため有益である。
グレーボックステストは、アサーションメソッドを使用してプログラムをテストする前にすべての条件を提示するため、要件テストケースの生成に基づいている。要件仕様言語は、要件を理解し、その正確性を簡単に検証できるようにするために使用される。 
オブジェクト指向ソフトウェアのグレーボックステストの仮定.
オブジェクト指向ソフトウェアは、主にオブジェクトで構成されている。ここで、オブジェクトとは、実行可能コードやデータを持つ単一の分割できないユニットのことである。グレーボックステストを行うアプリケーションに必要なするために必要ないくつかの仮定を以下に示す。
テクニック.
Cem Kanerは、「グレーボックステストは入力と出力をテストするが、テストの設計は、通常はテスターからは見えないコードやプログラム操作の情報に基づいて作成される」と定義している。 グレーボックステストの手法は次の通りである。
将来の展望.
Webサービスの分散性により、グレーボックステストでサービス指向アーキテクチャ（SOA）内の欠陥を検出できます。ご存知のように、ホワイトボックステストは内部構造を直接処理するため、Webサービスには適していません。ホワイトボックステストは、最先端の方法に使用できます。たとえば、大きな配列の自動テストを生成して例外処理状態を支援するメッセージミューテーション、ソースコードやバイナリなしのフロー。このような戦略は、グレーボックステストをホワイトボックステストの結果に近づけるのに役立ちます。