質問の歴史
グレー ボックス メソッドは、ブラック ボックスとホワイト ボックスの間の妥協として登場し、これらの手法の制限を排除することを目的としています。これは、入力および出力データを確認する際にシステムの内部構造について部分的な知識を持ち、両方の技術の利点を得ることを前提としています。
問題
多くの場合、タスクにはユーザーインターフェイスが許可する以上の知識が必要ですが、完全なソースコードへのアクセスはありません。リスクは、ホワイト ボックスのようにアーキテクチャの詳細に入らずに、内部メカニズムに関連する重要なシナリオをテストしきれないことです。
解決策
ドキュメント、アーキテクチャ、API、またはサービスへの部分的なアクセスがある場合に適用されます。これにより、フロントエンドとバックエンドの接続部分でのエラーを特定し、モジュール内のデータ処理を調査できます。
主な特徴:
ドキュメントまたはコードへのアクセスがまったくない場合、グレー ボックス メソッドでテストを実行できますか?
いいえ。グレー ボックス メソッドは、テスターがアプリケーションの内部構造に関する少なくとも部分的な情報を持っていることを前提としています。完全に「目を閉じて」作業する場合は、むしろブラック ボックス メソッドが使用されます。
ログを表示することは、グレー ボックス メソッドによるテストの一形態と見なされますか?
はい、システムがどのように受信データを処理するかを理解するためにログを調査している場合、それは「グレー ボックス」アプローチの要素と見なすことができます。ユーザー インターフェイスだけに制限されないためです。
ユニットテストにグレー ボックス メソッドを使用できますか?
いいえ。ユニット テストは、完全なコードへのアクセスが必要なホワイト ボックスエリアであり、テスターは内部関数のレベルで作業します。
テスターは、APIを調査したり、アーキテクチャ ダイアグラムを要求したりせずに、単に仮定とユーザー インターフェイスのテストに基づいて「グレー ボックス」を適用しようとしました。
利点:
欠点:
統合シナリオのテストの前に、テスターはチームにアーキテクチャ ダイアグラムを要求し、API エンドポイントを調査し、ログを分析し、バックエンドとフロントエンドの相互作用レイヤーで問題を発見することができました。
利点:
欠点: