カテゴリで絞り込む

トレンドワード

テストツール
more
テストケース生成ツール
テスト自動化ツール
実機テストのクラウドサービス
テスト管理ツール
Qbookについて
Facebook x

スモークテストとは?主な目的と実施方法を分かりやすく解説
テスト用語

更新日:

2023.03.09
x hatenabookmark
1

スモークテストとは?主な目的と実施方法を分かりやすく解説

執筆: Qbook編集部

ライター

昨今システム開発におけるソフトウェアテストの重要性は広く知られており、開発の必要不可欠なステップとして認識されるようになりました。
多くのステップからなるシステム開発では、さまざまな段階でさまざまな用途・種類のソフトウェアテストが行われます。
今回は、その中から「スモークテスト」(smoke test)について解説します。

もくじ
  1. スモークテストとは
  2. スモークテストの目的と重要性
  3. スモークテストの実施方法
  4. スモークテストと別の目的を持つ「確認テスト」
  5. まとめ

1.スモークテストとは

スモークテストとは、本格的なテスト実行前に「テスト対象のソフトウェアがテストを行うに値する品質であるか」を確認するテストです。

JSTQBでは以下のように定義されています。

"スモークテスト(smoke test)
定義・計画した全テストケースのサブセット。プログラムの必須機能が正常に動作することを確認するのが目的で、コンポーネントやシステムの主要機能を網羅し、細かな点は無視する。Synonyms: コンフィデンステスト(confidence test), サニティテスト(sanity test)"

出典:ISTQB用語集より

コンパイルやビルドのエラーは出なくなった後、できあがったソフトウェアが機能テストなどの本格的なテストを実施可能か判断するための予備的なテストという位置づけになります。

スモークテストという名称の語源は、電気工作の分野の通電テストにおいて、基板に電流を流して発煙の有無を確認したことに由来すると言われています。
電気工作の回路設計に誤りがあったり、実装をまちがえていたりすると、基板の一部が過熱し、その結果電気部品の固定に利用している「はんだ」に含まれるフラックス(油脂)が気化し、これが煙となります。
工作物を安全に利用するためには、通電しても発煙がないことを確認する必要があり、これがスモークテストと呼ばれていたわけです。

2.スモークテストの目的と重要性

効率.png

スモークテストの目的は、テスト部門・テスト担当者の作業効率を向上させることです。

スモークテストを行わずにソフトウェアテストを実行した場合、テストの早い段階でログインできない、またはそもそもサーバーにアクセスできないといった事象が発生することがあります。(このように開発やテストを進めることができなくなるバグのことを、ブロッキングバグと言います。)

すぐに修正されれば問題はありませんが、時間がかかるようであれば、テスト担当者はテストが始まってすぐに待ち状態になってしまいます。システムがまともに動かなければテストを実施することができず、テスト担当者の工数が無駄になってしまいます。
よって、本格的なテスト開始前に、スモークテストで最低限の動作をするかチェックすることが重要です。

それにより、ソフトウェアテスト、さらにはテストを含んだシステム開発の全工程の効率化を実現できます。

3.スモークテストの実施方法

スモークテストを実施する方法は、システムの規模や、状況によって変わってきます。
具体的には、テストケースを作成せずにアドホックテストで行う方法や、システムテスト用に作成したテストケースからいくつかピックアップしてテストをする方法などです。
本格的なソフトウェアテストを行う前に「システムが起動するか」「基本機能が動作するか」など最低限の確認を行います。

4.スモークテストと別の目的を持つ「確認テスト」

ソフトウェア開発におけるテストには、さまざまな種類や目的があり、それぞれ名前が付けられています。
スモークテストは、ソフトウェアテストを実行する前に、テストを行える状態なのか「確認する」テストですが、他にも各場面で確認テストとして用いられるテストがあります。
「リグレッションテスト」「修正確認テスト」「リリースチェックテスト」の3つを簡単に解説していきます。

リグレッションテスト

リグレッション(レグレッション)テストは、ソースコードの修正・更新を行った際に行うものです。
コードの一部分を修正した結果、他の部分に不具合が発生していないか・機能が劣化(デグレードが発生)していないかを確認します。
regressionには「回帰」という訳語があり、「回帰テスト」もしくは「退行テスト」と呼ばれる場合もあります。

修正確認テスト

修正確認テストは、ソフトウェアを修正・変更した後に、変更箇所や関連する箇所が正しく動作するかを確認するテストです。

リリースチェックテスト

リリースチェックテストは、出荷候補に対して、出荷しても問題ないか動作を確認するテストです。

まとめ

スモークテストは、ブロッキングバグが発生していないことを確認するテストです。
ソフトウェアテストを行う前に、「システムが起動するか」「基本機能が動作するか」など最低限の確認を行います。
実施方法は、システムの規模によってアドホックテストで実施したり、システムテストのテストケースからピックアップして実施したりと状況によって様々です。

スモークテストを行うことで、ソフトウェアの最低限の動作を確認でき、テスト担当者の工数を無駄にすることも防げます。
円滑にソフトウェアテストを進めるために重要なテストだと認識しておきましょう。

関連記事

お役立ち資料

QAエンジニアって何?

QAエンジニアって何?

「QAエンジニア」とは、ソフトウェアやシステムの品質を保証するために、テストや検証を行うエンジニアのことです。 本資料では、QAエンジニアの主な仕事内容や、求められるスキルや資格、キャリアパスについて解説します。 ※こちらの資料は会員登録不要でダウンロードいただけます。

ソフトウェアテスト実施はじめてガイドブック

ソフトウェアテスト実施はじめてガイドブック

実際に「テスト実施」・「不具合報告」をする際の正しい流れを解説したガイドブックです。ソフトウェアテストを初めて実施する人に向けて、その作業内容や用語、心構えをまとめています。

ソフトウェアテスト効率化 カオスマップ(2025年版)

ソフトウェアテスト効率化 カオスマップ(2025年版)

ソフトウェアテスト効率化カオスマップは、ソフトウェアテストに関連するサービスを提供する事業者や、自動化ツールをはじめとしたツール・サービス類について、独自の調査をもとにまとめたものです。 自社のサービス選定のご参考にご利用ください。

テストツール

テストのプロであるQbook監修の講師陣が提供する

Qbookの品質教育サービス

もっと見る

開催中の講座

一般向け

これから学びたい方・スキルアップを目指す方

事前ヒアリングに基づき、品質課題に沿ったカリキュラムを提供します。実務で使える品質管理手法を学べます。

企業向け講座

企業向け

社員教育をご検討中の方

事前ヒアリングに基づき、品質課題に沿ったカリキュラムを提供します。実務で使える品質管理手法を学べます。

eラーニング

一般向け

資格・試験対策をしたい方

事前ヒアリングに基づき、品質課題に沿ったカリキュラムを提供します。実務で使える品質管理手法を学べます。

バルデミー

企業向け

社員教育をご検討中の方

「バルデミー」は、より実践的で質の高いソフトウェアテストのオンライン教育プログラムです。