グレーボックステストとは
グレーボックステストは、ブラックボックステストとホワイトボックステストの特定の側面を組み合わせた、コンピューターソフトウェアによく使用される専門的なテストの一種です。 一般的な考え方は、これらの2つの他のタイプを組み合わせて、それぞれの長所を活用しながら、制限または弱点を最小限に抑えることです。 グレーボックステストは、基本的にプロのテストで構成され、テスターはソフトウェアの動作方法の一部を理解しますが、それについてのすべてを理解するわけではありません。
コンピュータソフトウェアを開発およびテストする場合、よく使用されるテストには2つの一般的なモデルがあります。 これらはブラックボックステストとホワイトボックステストであり、グレーボックステストは基本的に両方の組み合わせです。 ブラックボックステストは、ソフトウェアを実行するコードをテスターが理解できない、またはアクセスできないテストで構成されます。 たとえば、誰かがブラックボックステストを利用して、企業にOSのソースコードを提供せずに、コンピューターのオペレーティングシステム(OS)で実行するソフトウェアを開発できるようにします。
このタイプのテストは、多くの異なるソフトウェア会社でよく使用されており、社内テストと社外テストの両方に使用できます。 ただし、このタイプのテストの最大の弱点の1つは、テスターの限られた知識がテストを妨げる可能性があることです。 多くの場合、実行されているテストとテストされているソフトウェアの背後にあるコードの両方を理解しているサードパーティが結果を分析する必要があります。 グレーボックステストは、このタイプのテストをホワイトボックステストの特定の要素と組み合わせることにより、これらの問題の一部を軽減しようとします。
ホワイトボックステストは、テスト対象のソフトウェアを完全に理解し、ソフトウェアのソースコードにアクセスできる人が行うソフトウェアテストで構成されます。 多くの場合、これはソフトウェア開発者の社内で行われ、プログラムが適切に実行されるようにし、テスターがプログラムの背後にあるコードと直接やり取りできるようにします。 ただし、このタイプのテストには潜在的なセキュリティ上の問題があるため、グレーボックステストを使用して、生産的かつ安全な方法で両方のタイプを組み合わせることがよくあります。
グレーボックステストでは、テスターは使用されているソフトウェアの特定の側面を理解しており、ソースコードの一部ではなくすべてを見ることができる場合があります。 これにより、テスターは、ブラックボックステストよりもテスト中のプログラムをより完全に対話して理解できますが、ホワイトボックステストから生じる可能性のある完全なアクセスとセキュリティの問題はありません。 たとえば、新しいOSのソフトウェアでグレーボックステストを実行する人は、すべてのソースコードではなく、プログラムのテストに関連するOSの側面のコードを表示できる場合があります。