用語集 · テストの基礎
スモークテスト(Smoke Testing)
英語: Smoke testing
別名: smoke test, スモークスイート, smoke suite, ビルド検証テスト
定義
新しいビルドの最も重要な機能をすばやく浅く確認し、そもそもより深いテストに進めるほど安定しているかを判断するテストです。
スモークテストは、新しいビルドに対して実行する小さく高速なチェックの集合で、「このビルドはさらにテストする価値があるか?」という 1 つの問いに答えます。最も重要な経路を広く、しかし浅くカバーします。スモークテストが失敗すればビルドは却下され、根本的に壊れているものの詳細なテストに誰も時間を費やさずに済みます。
名前の由来はハードウェアです。ほかの確認をする前に、まず機器の電源を入れて煙が出ないかを見る、というものです。
例
オンラインショップの場合、スモークスイートは次のようになります。
- トップページが読み込まれ、HTTP 200 を返す。
- ユーザーがログインできる。
- 検索で結果が返る。
- 商品をカートに追加できる。
- 決済ページが開く。
割引ルール、バリデーションメッセージ、エッジケースは確認しません。それらは回帰テストのスイートで扱います。
スモークテストとサニティテストの違い
この 2 つは、面接で最も混同されやすい用語です。
| スモークテスト | サニティテスト | |
|---|---|---|
| 範囲 | 広い:アプリケーション全体を浅く | 狭い:1 つの領域を少し深く |
| タイミング | 新しいビルドのたび | 特定の修正や小さな変更の後 |
| 問い | 「ビルドはテストできるほど安定しているか?」 | 「この修正は機能し、妥当に見えるか?」 |
| 一般的な形 | スクリプト化・自動化されている | スクリプトなしの手早い手動確認が多い |
簡単な覚え方:スモークは広く浅く、サニティは狭く集中的に。
CI パイプラインでの位置づけ
スモークテストは通常、テスト環境やステージング環境へのデプロイ直後に実行し、本番リリース後にもデプロイ後チェックとして再度実行します。所要時間は数分に収めましょう。失敗した場合、パイプラインは時間のかかる回帰テストや E2E テストの段階に進む前に停止します。40 分かかるスモークスイートは、もはやスモークスイートではありません。