ホワイト Box テスト – とは何か、手法、例、種類

ホワイト Box テスト

ホワイト Box テスト ソフトウェアの内部構造、設計、コーディングをテストして入出力フローを検証し、設計、使いやすさ、セキュリティを向上させるテスト手法です。ホワイト ボックス テストでは、コードがテスターに​​見えることから、クリア ボックス テスト、オープン ボックス テスト、透明ボックス テスト、コードベース テスト、グラス ボックス テストとも呼ばれます。

これは、次の XNUMX つの部分のうちの XNUMX つです。 Box ソフトウェア テストへのテスト アプローチ。その対極にあるブラック ボックス テストでは、外部またはエンド ユーザーの視点からのテストが行​​われます。一方、ソフトウェア エンジニアリングにおけるホワイト ボックス テストは、アプリケーションの内部動作に基づいており、内部テストを中心に行われます。

「白」という言葉Box”は、シースルーボックスのコンセプトのため使用されました。クリアボックスまたはホワイトBox 名前はソフトウェアの外殻(または「ボックス」)を通して内部の仕組みを見る能力を象徴しています。同様に、「ブラック Box テスト」は、ソフトウェアの内部動作を見ることができないため、エンドユーザーのエクスペリエンスのみをテストできることを象徴しています。

ホワイト Box ビデオのテスト

クリック こちら ビデオにアクセスできない場合

ホワイトでは何を確認しますか Box テスト中?

ホワイト ボックス テストには、次のソフトウェア コードのテストが含まれます。

  • 内部セキュリティホール
  • コーディングプロセスにおけるパスが壊れているか構造が不十分である
  • コードを通じた特定の入力の流れ
  • 期待される出力
  • 条件ループの機能
  • 各ステートメント、オブジェクト、関数を個別にテストする

テストは、ソフトウェア開発のシステム、統合、ユニットの各レベルで実行できます。ホワイトボックス テストの基本的な目標の 1 つは、アプリケーションの動作フローを確認することです。ホワイトボックス テストでは、一連の定義済み入力を期待される出力または望ましい出力に対してテストします。特定の入力が期待される出力を生成しない場合は、バグが発生したことになります。

ホワイトをどのように実行しますか Box テスト中?

ホワイト ボックス テストを簡単に説明するために、これを 2 つの基本的なステップに分けました。ホワイト ボックス テスト手法を使用してアプリケーションをテストする場合、テスターは次のように行います。

ステップ 1) ソースコードを理解する

テスターが最初に行うことは、多くの場合、アプリケーションのソース コードを学習して理解することです。ホワイト ボックス テストにはアプリケーションの内部動作のテストが含まれるため、テスターはテスト対象のアプリケーションで使用されるプログラミング言語に精通している必要があります。また、テスト担当者は安全なコーディング プラクティスを十分に理解している必要があります。セキュリティは、多くの場合、ソフトウェア テストの主な目的の 1 つです。テスターは、セキュリティの問題を見つけ、故意にまたは無意識にアプリケーションに悪意のあるコードを挿入する可能性のあるハッカーや素人ユーザーからの攻撃を防止できなければなりません。

ステップ 2) テスト ケースを作成して実行する

ホワイトボックステストの2番目の基本的なステップは、アプリケーションのソースコードが適切なフローと構造を持っているかどうかをテストすることです。1つの方法は、アプリケーションのソースコードをテストするためにさらにコードを記述することです。テスターは、アプリケーション内の各プロセスまたは一連のプロセスに対して小さなテストを作成します。この方法では、テスターがコードについて深い知識を持っている必要があり、開発者が行うことがよくあります。他の方法には、次のものがあります。 手動テスト、試行錯誤によるテスト、およびテスト ツールの使用については、この記事で詳しく説明します。

ホワイトBox テスト

ホワイトBox テスト例

次のコードを検討してください

Printme (int a, int b) {                       ------------  Printme is a function 
    int result = a+ b; 
    If (result> 0)
    	Print ("Positive", result)
    Else
    	Print ("Negative", result)
    }                                        -----------   End of the source code

ホワイトの目標Box ソフトウェアエンジニアリングにおけるテストは、コード内のすべての意思決定分岐、ループ、およびステートメントを検証することです。

上記のホワイトボックステストの例のステートメントを実行するには、ホワイトBox テストケースは次のようになります

  • A = 1、B = 1
  • A = -1、B = -3

ホワイト Box テスト技術

主要なホワイトボックステスト手法はコードカバレッジ分析です。コードカバレッジ分析は、 テストケース スイート。 これは、一連のテスト ケースによって実行されないプログラムの領域を識別します。 ギャップが特定されたら、テスト ケースを作成してコードの未テスト部分を検証することで、ソフトウェア製品の品質を向上させることができます。

実行できる自動ツールがあります コードカバレッジ分析以下は、ボックス テスターが使用できるカバレッジ分析手法の一部です。

声明の対象範囲:- この手法では、コード内のすべての可能なステートメントを、テスト プロセス中に少なくとも XNUMX 回テストする必要があります。 ソフトウェア工学.

支店のカバー範囲 – この手法では、ソフトウェア アプリケーションの考えられるすべてのパス (if-else およびその他の条件ループ) をチェックします。

上記以外にも、条件カバレッジ、複数条件カバレッジ、パス カバレッジ、関数カバレッジなど、多数のカバレッジ タイプがあります。それぞれの手法には独自のメリットがあり、ソフトウェア コードのすべての部分をテスト (カバー) しようとします。 ステートメントとブランチ カバレッジを使用すると、通常は 80 ~ 90% のコード カバレッジが得られますが、これは十分な値です。

以下は重要なホワイトBox テスト手法:

  • 声明の対象範囲
  • 決定事項の範囲
  • 支店のカバレッジ
  • 条件の適用範囲
  • 複数の条件をカバー
  • 有限状態マシンの適用範囲
  • パスのカバレッジ
  • 制御フローのテスト
  • データフローテスト

白の種類 Box テスト

ホワイトボックステスト アプリケーション、コードのブロック、または特定のソフトウェア パッケージの使いやすさを評価するために使用されるいくつかのテスト タイプが含まれます。 以下にリストされています—

  • 単体テスト: 多くの場合、これはアプリケーションに対して実行される最初のタイプのテストです。 単体テスト 開発時にコードの各ユニットまたはブロックに対して実行されます。 単体テストは基本的にプログラマによって行われます。 ソフトウェア開発者は、数行のコード、単一関数、またはオブジェクトを開発し、継続する前にテストして動作することを確認します。単体テストは、ソフトウェア開発ライフサイクルの初期段階でバグの大部分を特定するのに役立ちます。 この段階で特定されたバグは、安価で簡単に修正できます。
  • メモリリークのテスト: メモリ リークは、アプリケーションの実行速度が低下する主な原因です。 ソフトウェア アプリケーションの実行が遅い場合には、メモリ リークの検出に経験のある QA スペシャリストが不可欠です。

上記以外にも、ブラックボックステストとホワイトボックステストの両方に含まれるテストの種類がいくつかあります。以下にリストします。

  • ホワイト Box 侵入テスト: このテストでは、テスター/開発者は、アプリケーションのソース コード、詳細なネットワーク情報、関連する IP アドレス、およびアプリケーションが実行されるすべてのサーバー情報に関する完全な情報を持っています。 目的は、さまざまな角度からコードを攻撃してセキュリティ上の脅威を明らかにすることです。
  • ホワイト Box 突然変異テスト: 突然変異テスト ソフトウェア ソリューションを拡張するために使用する最適なコーディング手法を見つけるためによく使用されます。

ホワイト Box テストツール

以下は、トップのホワイト ボックス テスト ツールのリストです。

白の利点 Box テスト

  • 隠れたエラーを見つけてコードを最適化します。
  • ホワイト ボックス テスト ケースは簡単に自動化できます。
  • 通常、すべてのコード パスがカバーされるため、テストはより徹底的になります。
  • テストは早い段階で開始できる SDLC GUI が利用できない場合でも。

白のデメリットBox テスト

  • ホワイト ボックス テストは非常に複雑で、コストもかかります。
  • 通常、ホワイト ボックス テスト ケースを実行する開発者は、これを嫌います。開発者によるホワイト ボックス テストは詳細ではなく、製造エラーにつながる可能性があります。
  • ホワイト ボックス テストには、プログラミングと実装を詳細に理解している専門的なリソースが必要です。
  • ホワイト ボックス テストは時間がかかり、大規模なプログラミング アプリケーションでは完全なテストに時間がかかります。

まとめ

  • ホワイト ボックス テストは非常に複雑になることがあります。その複雑さは、テスト対象のアプリケーションに大きく関係します。単純な操作を 1 つ実行する小さなアプリケーションであれば、ホワイト ボックス テストは数分で完了しますが、大規模なプログラミング アプリケーションの場合は、完全なテストに数日、数週間、さらにはそれ以上の時間がかかります。
  • ソフトウェア テストにおけるホワイト ボックス テストは、ソフトウェア アプリケーションの作成後、開発中、および変更のたびに実行する必要があります。