What is White Box Testing?

ホワイトボックステストは、ソースコードや設計ドキュメントへのアクセスなど、テスト対象のアプリケーションに関する完全な知識をテスターに提供するアプリケーションテストの一種です。 この詳細な可視性により、ホワイトボックステストでは、グレーボックステストやブラックボックステストでは見えない問題を特定できます。

詳細はこちら Cyber Security Risk Assessment

What is White Box Testing?

ホワイトボックステストは何に焦点を当てていますか?

ホワイトボックステストでは、アプリケーションの内部に関する幅広い知識を活用して、ターゲットを絞ったテストケースを開発します。 ホワイトボックステスト中に実行される可能性のあるテストの例には、次のものがあります。

  • パスチェック: ホワイトボックステストは、アプリケーション内のさまざまな実行パスを調べて、すべての条件ステートメントが正しく、必要で、効率的であることを確認できます。
  • 出力検証: これにより、関数へのさまざまな潜在的な入力が列挙され、それぞれが期待どおりの結果を生成するようになります。
  • セキュリティテスト: 静的コード分析やその他のホワイトボックステスト手法は、アプリケーション内の潜在的な脆弱性を特定し、安全な開発のベストプラクティスに従っていることを検証するために使用されます。
  • ループテスト: アプリケーション内のループをテストして、ループが正しく、効率的で、スコープ内の変数を適切に管理していることを確認します。
  • データフローテスト: プログラムの実行パス全体で変数を追跡し、変数が宣言、初期化、使用、および適切に操作されていることを確認します。

ホワイトボックステストの種類

ホワイトボックステストは、いくつかの異なる目的で実行できます。 ホワイトボックステストには、次の3つのタイプがあります。

  • 単体テスト: 単体テストは、アプリケーションの各コンポーネントまたは機能が正しく動作することを確認するように設計されています。 これにより、開発プロセス全体を通じて、アプリケーションが設計要件を満たしていることを確認できます。
  • 統合テスト: 統合テストでは、アプリケーション内のさまざまなコンポーネント間のインターフェイスに重点が置かれます。 単体テストの後に実行することで、各コンポーネントが単独で適切に機能するだけでなく、効果的に連携できることも保証されます。
  • リグレッションテスト: 変更により、アプリケーション内の問題が中断される可能性があります。 回帰テストでは、アプリケーションに対して機能またはセキュリティの更新が行われた後も、コードが既存のテスト ケースに合格することが保証されます。

ホワイトボックステストの手法

ホワイトボックステストの主な利点の1つは、アプリケーションのあらゆる側面を確実にテストできることです。 完全なコードカバレッジを実現するには、ホワイトボックステストで次の手法を使用できます。

  • ステートメントカバレッジ: ステートメント カバレッジ テストでは、アプリケーション内のすべてのコード行が少なくとも 1 つのテスト ケースによってテストされます。 ステートメント カバレッジ テストは、コードの一部が未使用または到達不能であるかどうか (プログラミング エラー、更新などによって引き起こされる可能性があるかどうか) を特定するのに役立ちます。このデッドコードを特定することで、開発者は誤った条件ステートメントを修正したり、冗長なコードを削除したりして、アプリケーションのパフォーマンスとセキュリティを向上させることができます。
  • ブランチカバレッジ: 条件ステートメントは、異なる入力が異なる実行パスをたどることができるため、アプリケーションの実行コード内に分岐を作成します。 ブランチ カバレッジ テストでは、アプリケーション内のすべてのブランチが単体テストでカバーされます。 これにより、ほとんど使用されていないコードパスでも適切に検証されます。
  • パス カバレッジ: 実行パスは、アプリケーションが起動してから終了するまで実行できる命令のシーケンスを記述します。 パスカバレッジテストでは、アプリケーションを通るすべての実行パスがユースケースでカバーされていることを確認します。 これにより、すべての実行パスが機能し、効率的で、必要であることを確認することができます。

ブラックボックス vs ホワイトボックス vs グレーボックステスト

ブラックボックス、ホワイトボックス、グレーボックスは、テストの3つのアプローチです。 この 3 つの主な違いには、次のようなものがあります。

  • 入手可能な情報: ホワイトボックステストは、評価者にターゲットシステム(ソースコード、ドキュメントなど)の完全な知識を提供します。 ブラックボックステストは内部情報なしで実施され、グレーボックステストは、評価者が設計文書へのアクセスはあるがソースコードへのアクセスなど、何らかの情報を持っている混合テストです。
  • Test Coverage: さまざまな評価で入手できる情報のレベルが異なると、テストカバレッジを保証する能力に影響します。 ソースコードへのフルアクセスにより、ホワイトボックステストは完全なカバレッジを確保できますが、他の手法では不可能です。
  • 分析時間: ホワイトボックステストはソースコードに対して行われるため、早い段階で適用できます。 CI/CD パイプライン.グレーボックスとブラックボックスのテストには、ソフトウェア開発ライフサイクル(SDLC)の後半に位置する実行中のアプリケーションが必要です。
  • ツールの使用法: ソースコードにアクセスすることで、ホワイトボックステスターは静的コード分析ツールを使用して、アプリケーションのコードの脆弱性やその他の問題を特定できます。 グレーボックスとブラックボックスのテスターは、 動的解析ツールなど、 脆弱性スキャナーを使用して、実行中のアプリケーションと対話します。
  • Tester Mindset: ホワイトボックスエバリュエーターは、アプリケーションのソースコードと対話し、開発者のような役割を担います。 グレーボックスとブラックボックスのテスターは、ユーザーと同じようにアプリケーションと対話します。 これにより、アプリケーションが実際にどのように機能するかに、アプリケーションが設計されていることよりも集中できます。

Check Point CRT

Check Point’s プロフェッショナル・サービス 組織のアプリケーションセキュリティニーズをさまざまな方法でサポートできます。 サイバーセキュリティレジリエンス/ペネトレーションテストサービス.これには、ホワイトボックス、グレーボックス、ブラックボックスのセキュリティ評価が含まれます。

チェック・ポイントの 専門的な試験サービス 組織のDevSecOpsプログラムを強化できます。 また、自由に お問い合わせ ビジネス内のセキュリティ問題の発見と修正を支援する方法については、こちらをご覧ください。

×
  Feedback
このウェブサイトは、機能性と分析およびマーケティングの目的でクッキーを使用しています。 このウェブサイトを引き続きご利用いただくことで、クッキーの使用に同意したことになります。 詳細については、 Cookie に関する通知をお読みください。
OK