778

単体テスト、統合テスト、スモーク テスト、および回帰テストとは何ですか? それらの違いと、それぞれに使用できるツールは何ですか?

たとえば、単体テスト統合テストにはJUnitNUnitを使用します。最後の 2 つのスモーク テストまたはリグレッション テスト用のツールはありますか?

4

17 に答える 17

109
  • 単体テスト: クラスの内部動作をテストするための自動テスト。これは、他のリソースに関連しないスタンドアロンのテストである必要があります。
  • 統合テスト: 環境で実行される自動テスト。単体テストに似ていますが、外部リソース (db、ディスク アクセス) を使用します。
  • 回帰テスト: 新機能またはバグ修正を実装した後、過去に機能したシナリオを再テストします。ここでは、新しい機能が既存の機能を壊す可能性について説明します。
  • スモーク テスト: テスターがテストを継続するかどうかを判断できる最初のテスト。
于 2009-02-06T12:13:56.990 に答える
93

誰もがわずかに異なる定義を持っており、多くの場合、灰色の領域があります。でも:

  • 単体テスト: これは少し (できるだけ分離して) 動作しますか?
  • 統合テスト: これら 2 つ (またはそれ以上) のコンポーネントは連携しますか?
  • スモーク テスト: このシステム全体 (可能な限り実稼働システムに近いシステム) が適切に機能しているか? (つまり、ブラック ホールが作成されないという合理的な確信があるか?)
  • 回帰テスト: 以前に修正したバグを誤って再導入したか?
于 2009-02-06T12:15:07.223 に答える
52

私が最近気付いた新しいテスト カテゴリは、カナリア テストです。カナリア テストは、ライブ環境で定期的に実行される自動化された非破壊テストであり、失敗した場合は非常に悪いことが起こったことを示します。

例は次のとおりです。

  • development/testy でのみ利用できるはずのデータがライブに登場しましたか?
  • バックグラウンド プロセスの実行に失敗しましたか?
  • ユーザーはログオンできますか?
于 2013-09-11T03:47:51.430 に答える
13

ソフトウェア テスト手法に関する最高の Web サイトの 1 つからの回答:

ソフトウェアテストの種類 – 完全なリストはここをクリック

ここに画像の説明を入力してください

これは非常に長い説明なので、ここに貼り付けるつもりはありませんが、すべてのテスト手法を知りたい人にとっては役立つかもしれません。

于 2015-11-26T07:28:31.377 に答える
10

単体テスト: 特定のコンポーネント (つまり、クラス) が設計どおりに関数を作成または変更したことを検証します。このテストは手動または自動で行うことができますが、コンポーネントの境界を超えて移動することはありません。

統合テスト: 特定のコンポーネントの相互作用が設計どおりに機能することを検証します。統合テストは、ユニット レベルまたはシステム レベルで実行できます。これらのテストは、手動または自動で行うことができます。

回帰テスト: 新しい欠陥が既存のコードに導入されていないことを確認します。これらのテストは、手動または自動で行うことができます。

SDLC (ウォーターフォールRUPアジャイルなど) に応じて、特定のテストが「フェーズ」で実行される場合もあれば、多かれ少なかれ同時にすべてが実行される場合もあります。たとえば、単体テストは開発者に限定され、開発者はコードをテスターに​​引き渡して統合および回帰テストを行うことができます。ただし、別のアプローチでは、開発者が単体テストとある程度の統合および回帰テストを行う場合があります (継続的統合および自動化された単体および回帰テストと共にTDDアプローチを使用)。

ツール セットはコードベースに大きく依存しますが、ユニット テスト (JUnit) 用のオープン ソース ツールは多数あります。HP (Mercury) の QTP または Borland のSilk Testは、どちらも自動化された統合および回帰テスト用のツールです。

于 2009-03-04T01:48:41.053 に答える
9

単体テスト: アプリケーション内の個々のモジュールまたは独立したコンポーネントのテストは、単体テストとして知られています。単体テストは開発者が行います。

統合テスト: すべてのモジュールを組み合わせてアプリケーションをテストし、モジュール間の通信とデータ フローが正しく機能しているかどうかを確認します。このテストも開発者によって行われました。

スモーク テスト スモーク テスト では、浅く広い方法でアプリケーションをチェックします。スモーク テストでは、アプリケーションの主な機能をチェックします。アプリケーションにブロッカーの問題がある場合、彼らは開発チームに報告し、開発チームはそれを修正して欠陥を修正し、テスト チームに戻します。テスト チームはすべてのモジュールをチェックして、1 つのモジュールで行われた変更が他のモジュールに影響を与えるかどうかを確認します。スモーク テストでは、テスト ケースがスクリプト化されます。

変更されていないモジュールが不具合を引き起こさないことを確認するために、同じテスト ケースを繰り返し実行する回帰テスト。回帰テストは機能テストの下にある

于 2014-04-26T12:02:23.493 に答える
7

回帰試験-

「回帰テストは、変更されたソフトウェアに対して以前のテストを再実行して、現在のソフトウェアで行われた変更が既存のソフトウェアの機能に影響を与えないことを確認します。」

于 2010-10-21T05:28:26.347 に答える
5

単体テストは、実装の可能な限り最小の部分に向けられています。Java では、これは単一のクラスをテストしていることを意味します。クラスが他のクラスに依存している場合、これらは偽物です。

テストが複数のクラスを呼び出す場合、それは統合テストです。

完全なテスト スイートは実行に時間がかかる可能性があるため、変更後、多くのチームがいくつかの迅速なテストを実行して重大な破損を検出します。たとえば、URI を重要なリソースに分割しました。これらはスモークテストです。

回帰テストはすべてのビルドで実行され、壊れたものをキャッチすることで効果的にリファクタリングできます。あらゆる種類のテストが回帰テストになる可能性がありますが、単体テストが障害の原因を見つけるのに最も役立つことがわかりました。

于 2014-10-12T19:55:36.253 に答える
4
  • 統合テスト: 統合テストは別の要素を統合することです
  • スモーク テスト: スモーク テストはビルド バージョン テストとも呼ばれます。スモーク テストは、テスト対象のソフトウェアがさらなるテストの準備が整っているかどうか、または安定しているかどうかを確認するために実行される初期テスト プロセスです。
  • 回帰テスト: 回帰テストは反復テストです。新しいソフトウェアが別のモジュールで影響を受けるかどうか。
  • 単体テスト: ホワイトボックステストです。開発者のみが関与する
于 2014-06-30T09:50:43.470 に答える
2

単体テスト

単体テストは通常​​、開発者側で行われますが、テスターは、単体でテストが行​​われるこのタイプのテストで部分的に進化しています。Java JUnitテスト ケースでは、記述されたコードが完全に設計されているかどうかをテストすることもできます。

統合テスト:

このタイプのテストは、すべてまたは一部のコンポーネントが統合されている場合の単体テストの後に可能です。このタイプのテストは、コンポーネントが統合されたときに、それらが互いの動作能力または機能に影響を与えるかどうかを確認しますか?

煙試験

このタイプのテストは、システムが正常に統合され、運用サーバーに移行する準備が整ったときに最後に行われます。

このタイプのテストでは、すべての重要な機能が最初から最後まで正常に動作し、システムが運用サーバーにデプロイする準備ができていることを確認します。

回帰試験

このタイプのテストは、開発者がいくつかの問題を修正したときに、意図しない/望ましくない欠陥がシステムに存在しないことをテストするために重要です。このテストでは、すべてのバグが正常に解決され、他の問題が発生していないことも確認します。

于 2014-09-16T10:50:07.040 に答える
1

リグレッション テスト - ソフトウェア テストの一種で、バグ修正をカバーまたはチェックします。バグ修正に関する機能は、提供された修正によって変更または変更されるべきではありません。このような過程で発見された問題を回帰問題と呼びます。

スモーク テスト: ビルド/ソフトウェアをさらに QA テストに受け入れるかどうかを決定するために行われる一種のテストです。

于 2015-07-26T04:23:41.403 に答える