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