ユニットテスト、ブラックボックステスト、ホワイトボックステストとは? 私はグーグルで検索しましたが、私が見つけたすべての説明は非常に技術的でした. この質問に適切な例を挙げて簡単に答えられる人はいますか?
4 に答える
ブラック ボックス テストでは、テスト対象の内部がどのように機能するかは気にしません。公開された API を呼び出して結果を確認します。テストされているものが結果をもたらすために何をしたかは気にしません。
ホワイト ボックス テストでは、テスト対象の内部がどのように機能するかを気にします。そのため、モノの出力をチェックするだけでなく、テスト対象のモノの内部変数が正しいことをチェックできます。
単体テストは、ソフトウェア コンポーネントをテストする方法です。「ユニット」はテストされるものです。単体テストでは、ブラック ボックス テストとホワイト ボックス テストの両方を実行できます。この概念は、ホワイト/ブラック ボックス テストと直交しています。
詳細が欠けている非常に非技術的な説明....ここに来ます..
ブラックボックス テスト : 内部アプリケーションがどのように機能するかを知らずにアプリケーションをテストする
ホワイトボックス テスト: テスト中にソース コードを並べて表示するなど、内部がどのように機能するかを理解した上でアプリケーションをテストします。
単体テスト: ここでは、アプリケーションと直接対話するテストを作成します。アプリケーションの関数をチェック
assert
し、応答が で返されることを確認しますvalue X
。単体テストは通常、必ずしも開発者自身によって作成されるわけではありませんが、企業がホワイトボックス テストとブラックボックス テストを行う場合は、誰でも行うことができます。
これは非常に基本的な説明です。
ブラック ボックス テスト:
- テスターは人間であり、開発者ではありません
- テスターはシステムがどのように実装されたかを知りません*
- テスターは、システムからテストのいずれかのステップへの応答が予期された結果ではない場合、問題を報告します。
ホワイトボックステスト:
- テスターは人間であり、開発者ではありません
- テスターはシステムがどのように実装されたかを知っています *
- テスターは、テストのいずれかのステップに対するシステムからの応答が予期した結果ではなく、予期した結果を受け取ったにもかかわらず、テスト ケース自体またはシステムの問題を検出する可能性が高い場合に、問題を報告します。
単体テスト:
- テスターは通常、システム内の特定のモジュールをテストするコードです。たとえば、Java では、プロジェクトに Student という名前のクラスと StudentTest という名前のテスト クラスが含まれる場合があります。Student の各関数 ( など
getGrades
) について、StudentTest にはそれらをテストするための 0 個以上の関数 ( などgetGradesTest
) がある場合があります。これは、その方法の 1 つにすぎません。 - 通常、テスト コードは、システムの一部に対するさまざまな入力に対して期待される出力しか知りません。
- 多くの場合、単体テストは、コードを送信する前に実行されるか、デプロイするアプリケーションをビルドするときに自動的に実行されます。目標は、機能を追加、変更、または削除するときに、できるだけ多くのバグがシステムに導入されるのを防ぐことです。
* ブラック ボックス テスターとホワイト ボックス テスターの間で知られている知識の量は、組織によって異なります。たとえば、私がユーザビリティ テストと考えるものは、別の会社ではブラック ボックス テストと呼ばれる場合があります。一部の企業のホワイト ボックス テスターは、別の開発者 (開発者 QA) である場合がありますが、別の組織では、開発者がテストのサインオフを完了することを許可していない場合があります。ブラック ボックス テスターは、従う必要のある手順のリストを持っているだけで検証する必要がある人である場合もあれば、システムがどのように機能するかを一般的に知っているが、特に詳細なレベルではない人である場合もあります。例えば:
ブラック ボックス テスターは、ゲスト チェックアウトの配送先住所を収集するステップを省略した e コマースのテスト ケースのように、期待に一致するテスト ケースであっても、問題を特定する場合と特定しない場合があります。
基本的に、ホワイト ボックスとブラック ボックスのテストが厳密に実装されることはめったにありません。ほとんどの組織には、単体テスト、開発者テスト (正式に文書化されている場合とされていない場合があります - 障害の意味によって異なります)、QA テスター (黒、白、およびその間のすべての灰色)、およびユーザー テスト/ビジネス サインがあります。オフ (プロジェクト全体に関与する必要がありますが、運営が不十分な組織では最初と最後にしか現れず、完成したプロジェクトを展開の直前に設計に送り返す人々)。
ブラックボックス テスト: これは、提供された要件に基づいてテストが行われる、常にユーザー ベースまたはクライアント ベースのテストです。このテストはテスターのみが行います。
ホワイトボックステスト:コードベースの流れを検証するものです。条件ステートメント、ループステートメントなどの流れをテストします。これは主に開発者の見込み客からのものです。
単体テスト: これは、テスト データを使用してコード内の各メソッドをテストし、それをアサートするためのホワイト ボックス テストの一部です。現在、これはテスターと企業によって行われ、コードとアルゴリズムを理解できるテスターからこのスキルが見られます。