Facebook x

ジャンル

テスト技法・工程 2023.03.09
x hatenabookmark

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

執筆: Qbook編集部

ライター

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

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

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

1.スモークテストとは

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

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

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

出典:ISTQB用語集より

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

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

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

効率.png

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

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

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

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

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

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

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

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

リグレッションテスト

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

修正確認テスト

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

リリースチェックテスト

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

まとめ

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

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

テスト技法・工程
x hatenabookmark

執筆: Qbook編集部

ライター

バルテス株式会社 Qbook編集部。 ソフトウェアテストや品質向上に関する記事を執筆しています。