ホワイトボックステスト
ホワイトボックステストには大きな利点がありますが、完全ではなく、いくつかの欠点があります。
ホワイトボックステストは、テスターがプログラムの知識を持っている必要があるため、またはテストチームがコードレベルでプログラムを理解できる非常に優れたプログラマーを少なくとも1人持つ必要があるため、テストを複雑にします。ホワイトボックステストでは、実行する必要のあるテストレベルが複雑であるため、高度な知識を持つプログラマーが必要です。
場合によっては、アプリケーションの既存のすべての条件をテストできることが現実的ではなく、一部の条件はテストされません。
テストは、存在するソフトウェアに焦点を合わせており、不足している機能が発見されない場合があります。
結果として得られるテストは、テスト対象の特定の実装と緊密に結合されているため、脆弱になる可能性があります。テスト対象のコードは、テストに組み込まれた仮定を無効にする別の方法で同じ機能を実装するように書き直すことができます。これにより、テストが不必要に失敗したり、最悪の場合、テストで誤検知が発生したり、コードでエラーがマスクされたりする可能性があります。
ペネトレーションテストでは、ホワイトボックステストとは、ホワイトハットハッカーが攻撃対象のシステムを完全に把握している方法を指す。ホワイトボックス侵入テストの目標は、ターゲットシステムの知識と、場合によっては基本的な資格情報を持っている悪意のあるインサイダーをシミュレートすることです。
より現代的な見方は、ホワイトボックステストとブラックボックステストの二分法が曖昧になり、関連性が低くなっているというものです。 「ホワイトボックス」は元々ソースコードを使用することを意味し、ブラックボックスは要件を使用することを意味していましたが、テストは現在、さまざまな抽象化レベルの多くのドキュメントから派生しています。本当のポイントは、テストは通常、入力スペース、グラフ、論理述語などの抽象構造から設計されているということです。問題は、その抽象構造をどのレベルの抽象化から導き出すかです。 これは、ソースコード、要件、入力スペースの説明、または数十種類の設計モデルの1つです。したがって、「ホワイトボックス/ブラックボックス」の区別はそれほど重要ではなく、用語の関連性も低くなります。