48

プロジェクトのパフォーマンスとテストカバレッジを測定するための継続的インテグレーションには、スモークサーバーが使用されていることを理解したと思います。これは基本的に正しいですか?プログラムのスモークテストとはどういう意味ですか?単に、スモークサーバーで定義されたテストを継続的に適用して、特定の時間枠でのパフォーマンスの低下を特定できるようにすることを意味しますか?

この他の質問は、健全性テストとスモークテストの違いを説明していますが、スモークテストを定義することを求めていません。この質問は、参照質問よりも何年も古いものです。

4

9 に答える 9

69

スモークテストは、実際のテストに先行する基本的な安価なテストのセットです。これは、ビルドが正常にデプロイされ、すべての環境がテストされていることを確認することを目的としています。アスペクトが実行され、実際のテストプロセスの準備ができています。これにより、テストの怒りの全範囲を障害のあるビルドに落とし込み、悪い環境でテストしていることに気付くのを防ぐことができます。または、誤ってデプロイされたビルドが遅すぎる可能性があります。

于 2009-04-13T20:16:49.760 に答える
32

電源を入れて、煙が出ないか確認してください。

于 2013-04-02T14:22:34.837 に答える
25

この用語はハードウェアの修理に由来し、ソフトウェアに適用されています。これは、アプリケーションを初めて実行したときに「発火」するかどうかを確認するための簡単なテストを目的としています。上で述べたように、それは明らかに壊れているものに彼らを緩めることによってあなたがたくさんの人々の時間を無駄にしないことを確実にするためだけです。

于 2009-04-13T20:31:32.690 に答える
4

スモークテストは、パフォーマンステストや回帰防止テストではありません。

スモークテストは、最も優先度の高い完全自動テストのセットです。通常のビルドが成功したとしても、製品が非常に根本的な方法で壊れて、100%使用できなくなる可能性があります。スモークテストは、そのレベルのコア機能をテストするように設計されています。スモークテストに合格しないビルドは、すべての自動テストの大部分に失敗する可能性が非常に高くなります。

スモークテストが失敗した場合、それは通常、ビルドが使用できない、テストできないなどの理由で生産性が低下していることを意味します。スモークテストの失敗は、数日ではなく数時間程度の即時修正が必要になる傾向があります。

スモークテストの重要な側面は、スモークテストをすばやく実行できることです。常に何らかのスモークテストを実行する必要があります。多くのグループには、毎日または継続的インテグレーションビルドでより大きな一連のテストを実行するのに十分なリソースがありますが(これは良いことです)、スモークテストは最低限と見なす必要があります。

于 2009-04-13T20:20:06.820 に答える
4

スモークテストに関するウィキペディアのページは、実際には非常に優れています。これには、1996年のIEEE Software 13(4)の「DailyBuild and SmokeTest」というタイトルのベストプラクティスセクションにあるSteveMcConnel(「CodeComplete」)の論文へのポインタが含まれています。

スモークテストは、ユニットテストやその他の形式のテストの前提条件だと思います。スモークテストが失敗した場合、ユニットテストを開始しても意味がありません。

于 2009-09-07T07:21:52.213 に答える
2

スモークテストという用語は、アプリケーションまたは製品に対して迅速な基本テストを実行して、統合テストや機能テストなどのさらなるテストの対象となるテストを指すために使用されます。アプリケーションがこれらの高度なテストに必要な基本的なことのいくつかを実行できない場合、統合テストやその他の高度なテストを実行することはほとんど役に立ちません。たとえば、Webベースのアプリケーションがあり、すべてのWebページをロードできること、ユーザーがログイン/ログアウトできることなどを確認するためにスモークテストを実行します。これらは、アプリケーションをテスト可能にするためにアプリケーションで機能する必要がある基本的なことです。ページが読み込まれない場合、またはユーザーがログインすることさえできない場合、機能や統合テストで多くのことを行うことはできません。すべてのビルドでスモークテストを行い、続いて機能テストと統合テストを行います。

于 2009-04-13T20:21:54.287 に答える
1

スモークテストは、統合テストの最初のステップです。開発者は、すべてのパーツをまとめ、「実際の」テストのためにアプリをQAチームに渡す前にアプリが実行されることを確認します。

もっと書きたかったのですが、MahdeToが私を正解に打ち負かしました... :)

于 2009-04-13T20:20:50.017 に答える
0

*テストを続行する前にアプリケーションの基本的かつ重要な機能をチェックすることは、スモークテストと呼ばれます。*スモークテストでは、基本機能と重要機能のポジティブフローをチェックして、ビルドがテスト可能かどうかを確認します。

于 2014-11-26T03:16:29.130 に答える
0

私は以前の答えのいくつかに同意します。私にとって、スモークテストは、X千のサブページとリダイレクトがすべて機能しているかどうかを確認するだけです。

動作中とは、各サブページのステータスコードが「200OK」であることを意味します。

私はできるだけ遅くスモークテストを実行します。コードをサーバーにデプロイした後、このサーバーをアクティブにする前。

今日、私のために仕事をしているオンラインサービス(SaaS)さえあります。https://www.smest.itは、スモークテストに役立ちます。私は自分のプライベートドメインを彼らのホームページに一度入力したばかりで、それ以来、毎日自分のWebサイトをチェックしています。ストレスは一切ありません。

于 2019-01-13T19:14:58.797 に答える