スモーク テストのガイドライン

更新 : 2007 年 11 月

ソフトウェアでいう、スモーク テストとは、コードの変更を製品のソース ツリーにチェック インする前に、変更を検証する過程を指します。コードを見直した後にソフトウェアの不具合を確認し修正する作業として、スモーク テストは最も費用効率の高い方法です。スモーク テストは、コードの機能の変更が予測どおりであり、ビルド全体を不安定にしないことを確認できるように設計されています。

ms182613.alert_note(ja-jp,VS.90).gifメモ :

スモーク テストという用語は、ハードウェア業界で生まれました。この用語は、ハードウェアやハードウェアのコンポーネントを変更したり修復した後に、機器の電源を入れたことが起源となっています。この時点で煙が立たなければ、コンポーネントはテストを通過したことになります。

次のガイドラインでは、スモーク テストにおける最良の方法を説明しています。次のガイドラインがもたらす効果は、チーム メンバ間のコミュニケーション向上から、テスト ツールおよびデバッグ ツールを使用する特定の方法の開発まで、さまざまな範囲に及びます。

開発者との作業

スモーク テストはコードの変更に焦点を当てているため、コードを記述した開発者と作業する必要があります。そのため次について理解しておく必要があります。

  • コード内で何が変更になったのか。変更を理解するには、使用されている技術も理解する必要があります。開発者はそれを説明する手助けができます。

  • 変更によって機能にどんな影響があるのか。

  • さまざまなコンポーネントの相互依存に変更がどう影響するか。

スモーク テストの前にコードの見直しをする

スモーク テストを実行する前に、コード内のすべての変更に焦点を当ててコードの見直しをします。コードの見直しは、コードの質を確認し、コードの不具合と間違った動作を防ぐための、最も効果的で効率的な方法です。スモーク テストは、コードの見直し、またはリスク評価で発見された最も重要な部分や脆弱な部分が第一に検証されたことを確認するものです。これが確認できない場合は、テストを継続することはできません。

クリーン デバッグ ビルドにプライベート バイナリをインストールする

スモーク テストでは、更新されたバイナリの機能変更のみを検証することに焦点を当てる必要があるため、テストはクリーンなテスト環境のもとで、テストするファイルのデバッグ バイナリを使用して、実行する必要があります。

ms182613.alert_note(ja-jp,VS.90).gifメモ :

スモーク テストでありがちな間違いは、適合しないバイナリでテストすることです。この間違いを避けるには、2 つ以上の更新されたバイナリ間で依存関係がある場合に、テスト ビルド内のすべての更新されたバイナリを含めます。これを実行しない場合、テストの結果が正しくない可能性があります。

デイリー ビルドを作成する

デイリー ビルドは、チーム メンバが共に作業する必要があり、開発者間の作業の同期を促進します。新しいビルドの反復処理が遅れた場合、その遅れによって、製品が複数の依存関係を伴って同期しなくなります。毎日ビルドを行い、変更されたバイナリや新しいバイナリをスモーク テストすることによって、品質の高さが約束されます。

反復的なビルドの設定方法の詳細については、「Team Foundation ビルドでビルドを実行する」を参照してください。ビルドの認証方法の詳細については「方法 : ビルド検証テスト (BVT) を構成および実行する」を参照してください。 

ms182613.alert_note(ja-jp,VS.90).gifメモ :

質の高いデイリー ビルドの作成をチームの最優先事項にするチェックインしたコードがスモーク テストされていなかったためにビルドが壊れている場合、開発者とテスタは、不具合が解消されるまで他の作業をすべて停止する必要があります。ビルドを壊した場合の罰則は厳しくする必要はありませんが、罰則によって、正しくデイリー ビルドをすることがチームの最優先事項であることを強調する必要があります。

徹底的なテストを実行する必要はありません。バイナリが 100% エラーなしであることを確認することがスモーク テストの目的ではありません。これには、膨大な時間が必要となります。スモーク テストを実行するのは、高水準を保ってビルドを検証するためです。このテストでは、バイナリの変更によって全般的なビルドが不安定になったり、機能面で破壊的なエラーが起こったりしないことを確認してください。

Web テストとロード テスト

Web テストおよびロード テストをビルドするときは、時間を要する重いテストを実行する前にスモーク テストを実行することが推奨される方法です。Web テストおよびロード テストでは、スモーク テストは短く軽いテストになります。パフォーマンス テストやストレス テストを実行する前に、スモーク テストですべてが正しく構成され予想どおりに実行されるか検証します。

参照

処理手順

方法 : ビルド検証テスト (BVT) を構成および実行する

その他の技術情報

Web テストの操作

ロード テストの操作

Team Foundation ビルドでビルドを実行する

単体テストの操作

ツール タスクのテスト