1. ホーム
  2. unit-testing

[解決済み】ユニットテスト、インテグレーションテスト、スモークテスト、リグレッションテストとは何ですか?終了

2022-03-23 19:40:02

質問

単体テスト、結合テスト、スモークテスト、回帰テストとは何ですか? また、それぞれのテストに使用できるツールは何ですか?

例えば、私が使っているのは JUnit NUnit に対して ユニットテスト 統合テスト . 最後の2つは何かツールがあるのでしょうか。 スモークテスト または 回帰テスト ?

どのように解決するのですか?

  • 単体テスト : クラスの単一メソッドのコントラクトの1点を指定し、テストする。これは非常に狭く、よく定義された範囲であるべきです。複雑な依存関係や外界との相互作用は スタブまたはモック .

  • 統合テスト : 複数のサブシステムが正しく相互運用されることをテストする。2つのクラス間の統合のテストから、本番環境との統合のテストまで、あらゆる領域がある。

  • スモークテスト(通称 サニティ チェック) : テスト対象のシステムが呼び出されたときに正常に戻り、爆発しないことを確認するだけのシンプルな統合テストです。

    • スモークテストは、電子機器に例えると、回路に電源を入れたときに最初のテストが行われる(煙が出たら不良品!)...といったところでしょうか。
    • ... とする。 らしい とのことです。 配管 これは、パイプのシステムを文字通り煙で満たし、目視でチェックするものです。もし煙が出たら、そのシステムは水漏れしていることになります。
  • リグレッションテスト : あるバグが修正されたときに書かれたテスト。このバグが二度と発生しないことを保証する。正式名称は「無再現性テスト」(non-regression test")。また、アプリケーションを変更する前に、アプリケーションが同じ結果を提供することを確認するために行われるテストである場合もあります。

これに、付け加えることがあります。

  • 受入テスト : ある機能またはユースケースが正しく実装されていることをテストする。統合テストに似ているが、関係するコンポーネントではなく、提供するユースケースに重点を置いている。

  • システムテスト : ブラックボックスとしてシステムをテストする。他のシステムとの依存関係は、テスト中にモックまたはスタブされることが多い (そうでなければ、統合テストの意味合いが強くなる)。

  • 飛行前チェック : 私のマシンではビルドできない」症候群を緩和するために、本番に近い環境で繰り返し行うテスト。多くの場合、本番同様の環境で受け入れテストやスモークテストを行うことで実現される。