スモークテストとサニティテスト
あまり聞かないテストだったのでメモがてら。
スモークテスト
配管工事の分野で行われたテスト。
工事後に煙を流し込んで漏れ出る箇所がないかを確認するテストとのこと。
ITの世界では「主要機能を網羅」するテストのようです。
サニティテスト
健全性テスト。
計算結果が正しいかどうかを素早く評価するための基本的なテストとのこと。
アプリケーション機能のサブセットの結果を評価して
アプリケーション全体のさらなるテストを続行することが合理的かを判断する。
サニティテストは、スモークテストと同じ意味で使用される場合がある。
厳密に言うと
スモークテストはプログラムの最も重要な機能が機能するかどうかを確認
さらにテストを進める非網羅的なテスト
サニティテストは特定のバグ修正がソフトウェアの幅広い機能をテストしなくても
期待どおりに動作するかどうかを指す場合もある
比較表
@kz_suzuki さんの「スモークテストとサニティテストとは何なのか」の表が分かりやすかったのでお借りします。
項目 | スモークテスト | サニティテスト |
---|---|---|
目的 | プログラムの機能の主要な部分が正しく動作するかを確認するために行われる。 | 新しい機能の追加やバグの改修後が適切に行われたかを確認するために行われる。 |
特徴 | 浅く広いテスト。 | (スモークテストに比べて)深く狭いテスト。 |
範囲 | システム全体のEnd to Endが対象である。 | システム全体の特定の部分が対象である。 |
対象 | 各ビルドに対して行われる。 | 比較的安定したビルドに対して行われる。 |
タイミング | リグレッションテストの前に行われる。 | スモークテストの後、リグレッションテストの前に行われる。 |
実施者 | 開発者、またはテスターによって行われる。 | テスターによって行われる。 |
他のテストとの関係 | 受入れテストのサブセットである。 | リグレッションテストのサブセットである。 |