web-dev-qa-db-ja.com

ユニットテスト、ブラックボックステスト、ホワイトボックステスト

ユニットテスト、ブラックボックステスト、ホワイトボックステストとは何ですか?私はグーグルで検索しましたが、私が見つけたすべての説明は非常に技術的でした。誰かが適切な例で簡単な方法でこの質問に答えることができますか?

17
software

ブラックボックステストでは、テスト対象の内部がどのように機能するかは気にしません。公開されたAPIを呼び出し、結果を確認します。テストされていることが結果を出すために何をしたかは気にしません。

ホワイトボックステストでは、doは、テスト対象の内部がどのように機能するかを気にします。したがって、Thingの出力をチェックするだけでなく、テスト対象のThingの内部変数が正しいことを確認することもできます。

単体テストは、ソフトウェアコンポーネントをテストする方法です。 「ユニット」はテストされているものです。単体テストでは、ブラックボックステストとホワイトボックステストの両方を実行できます。概念は、ホワイト/ブラックボックステストと直交しています。

30
hvgotcodes

詳細が欠けている非常に非技術的な説明....ここに来る..

  • ブラックボックステスト:内部アプリケーションがどのように機能するかを知らずにアプリケーションをテストする

  • ホワイトボックステスト:テストの実行中にソースコードを並べて配置するなど、内部がどのように機能するかを知った状態でアプリケーションをテストします。

  • 単体テスト:ここで、アプリケーションと直接対話するテストを作成します。アプリケーションの関数とassertをチェックして、応答がvalue Xで返されることを確認します。単体テストは通常​​、開発者自身によって作成されるとは限りませんが、企業がホワイトボックステストとブラックボックステストを行う場合は、誰でも行うことができます。

これは非常に基本的な説明です。

10
Layke

ブラックボックステスト:これは常にユーザーまたはクライアントベースのテストであり、提供された要件に基づいてテストが行​​われます。このテストはテスターのみが行います。

ホワイトボックステスト:これは、コードベースのフローを検証するためのものです。条件ステートメント、ループステートメントなどのフローをテストします。これは主に開発者の見通しによるものです。

単体テスト:これは、テストデータを使用してコード内の各メソッドをテストし、それをアサートするホワイトボックステストの一部です。現在、テスターと会社によってこれが行われている日は、コードとアルゴリズムを理解できるテスターからこのスキルを見ています。

1
Venki

ブラックボックステスト:

  1. テスターは人間であり、開発者ではありません
  2. テスターしませんシステムがどのように実装されたかを知っています*
  3. テスターは、システムからテストのいずれかのステップへの応答が期待される結果ではない場合に問題を報告します。

ホワイトボックステスト:

  1. テスターは人間であり、開発者ではありません
  2. テスターしますシステムがどのように実装されたかを知っています*
  3. テストのいずれかのステップに対するシステムからの応答が期待される結果ではなくが問題を検出する可能性が高い場合、テスターは問題を報告します。期待される結果を受け取ったにもかかわらず、テストケース自体またはシステムを使用します。

ユニットテスト:

  1. テスターは通常、システム内の特定のモジュールをテストするコードです。たとえば、Javaでは、プロジェクトにStudentという名前のクラスとStudentTestという名前のテストクラスがある場合があります。 Studentの関数(getGradesなど)ごとに、StudentTestにはそれらをテストするための0個以上の関数(getGradesTestなど)がある場合があります。これは、そのような方法の1つにすぎません。
  2. テストコードは通常、システムの一部のさまざまな入力に対して期待される出力のみを認識します。
  3. 単体テストは、コードを送信する前に実行されるか、デプロイするアプリケーションを構築するときに自動的に実行されることがよくあります。目標は、機能を追加、変更、または削除するときに、システムに多くのバグが導入されるのを防ぐことです。

*ブラックボックステスターとホワイトボックステスターの間で知られている知識の量は、組織によって異なります。たとえば、私がユーザビリティテストと考えているのは、別の会社がブラックボックステストと呼ぶかもしれません。一部の企業のホワイトボックステスターは、別の開発者(開発者QA)である場合がありますが、別の組織では、開発者によるテストのサインオフの完了を許可していない場合があります。ブラックボックステスターは、従う必要のある指示のリストを持っているだけの人、またはシステムがどのように機能するかを一般的に知っているが、特に詳細なレベルではない人の場合があります。例えば:

ブラックボックステスターは、ゲストのチェックアウト配送先住所を収集するステップを省略したeコマーステストケースのように、期待に一致するテストケースにもかかわらず、問題を特定する場合としない場合があります。

基本的に、ホワイトボックステストとブラックボックステストが厳密に実装されることはめったにありません。ほとんどの組織には、単体テスト、開発者テスト(正式に文書化されている場合とされていない場合があります-障害の影響によって異なります)、QAテスター(黒、白、およびその間のすべての灰色の色合い)、およびユーザーテスト/ビジネスサインがあります-オフ(プロジェクト全体に関与する必要があるが、組織の運営が不十分な場合は、最初と最後にのみ表示され、完成したプロジェクトを展開の直前に設計に送り返します)。

0
jmclaughlin