Skip to content
Latchkey

スモークスイートとは何か?

スモークスイートとは、最も重要なパスをカバーする高速なテストを厳選した小さな集まりで、buildが有効かどうかを素早く確認するために実行されます。

単一のスモークテストは重要なことを1つ確認します。スモークスイートはそれらを厳選したセット、つまり一握りの高速なテストで、それらを合わせてアプリケーションが根本的に生きていることを確認します。起動する、主要なページが読み込まれる、中核となるフローが応答する、というものです。これは、完全なスイートを実行する価値があるかどうかを判断する安価な最初のゲートです。

スモークスイートに含めるもの

スモークスイートは深さより広さをカバーします。失敗すればbuildが使い物にならなくなる数少ないパスです。アプリが起動する、認証が機能する、主要なAPIが応答する、メインページがレンダリングされる、というものです。エッジケースや徹底的な検証は意図的に省き、それらは完全なスイートに委ねます。

テストの選び方

  • 失敗すれば他のすべてが無意味になるフローを選ぶ。
  • 数秒で完了する程度に小さく保つ。
  • 不安定なものより、安定した高シグナルのチェックを優先する。
  • 重要なパスが変わるたびにセットを見直す。

スモークスイートが実行される場所

スモークスイートは通常、より遅いステージの前に、CIで最初に実行されます。そうすることで、致命的に壊れたbuildを素早く安価に失敗させられます。またデプロイ後にも、リリースをさらに昇格させる前の本番環境の簡易ヘルスチェックとして実行されます。

簡単な例

重要なテストにタグを付けることで、CIはスモークスイートだけを高速な最初のステージとして実行できます。

Running just the smoke suite
pytest -m smoke        # run only tests tagged @smoke
playwright test --grep @smoke

CIにおけるスモークスイート

スモークスイートを最初のステージとして実行することで、pipelineは死んだbuildを数秒で拒否でき、完全なスイートのコストを節約できます。小さいため、高速なrunner上でほぼ瞬時に完了し、開発者にbuildが少なくとも有効であることをほぼ即座に確認させます。

重要なポイント

  • スモークスイートは、高速で重要なパスのテストを集めた小さなセットである。
  • buildが有効かを確認するため、最初またはデプロイ後に実行される。
  • 小さく、安定させ、必ず動作すべきフローに集中させる。

関連ガイド