テストフィクスチャ
テストフィクスチャは、あるアイテム、デバイス、またはソフトウェアの一部を一貫してテストするために使用されるものです。電子機器、ソフトウェア、物理デバイスをテストするときに、テストフィクスチャを見つけることができます。
エレクトロニクス
回路基板、電子部品、チップなどの電子機器のテストにおいて、 テストフィクスチャは、 テスト対象のデバイスを所定の位置に保持し、制御された電子テスト信号にさらすことでテストできるように設計されたデバイスまたはセットアップです。
例は、ネイルテスターまたはSmartFixtureのベッドです。
ソフトウェア
ソフトウェアテストフィクスチャは、システムを初期化するために必要なすべてのコードを提供することにより、テストプロセス用のシステムをセットアップし、それにより、前提条件を満たします。例として、テストを実行する前に、顧客サイトから既知のパラメーターを使用してデータベースをロードすることができます。 Ruby on Rails Webフレームワークは、テストを実行する前にYAMLを使用してデータベースを初期化します。これにより、テストを再現可能にすることができます。これは、効果的なテストフレームワークの重要な機能の1つです。
セットアップ
テストフィクスチャは、インライン、デリゲート、および暗黙の3つの異なる方法で設定できます。
- インラインセットアップは、残りのテストと同じ方法でテストフィクスチャを作成します。インラインセットアップは、作成するのが最も簡単なテストフィクスチャですが、複数のテストで同じ初期データが必要な場合、重複が発生します。
- デリゲートセットアップは、テストフィクスチャを、複数のテストメソッドによってアクセスされる独立したスタンドアロンヘルパーメソッドに配置します。
- 暗黙的なセットアップでは、複数のテストメソッドをセットアップするために使用されるセットアップメソッドにテストフィクスチャが配置されます。これは、各テストメソッドが独自のセットアップ手順を持ち、外部テストフィクスチャにリンクするのではなく、複数のテストのセットアップ全体がテストフィクスチャが作成される単一のセットアップメソッドであるという点で、デリゲートセットアップとは異なります。
長所と短所
テストフィクスチャの利点は、常に同じセットアップで開始するため、テストを繰り返し実行できることです。また、テストフィクスチャを使用すると、開発者はメソッドを異なる機能に分離し、各機能を他のテストに再利用できるため、テストコードの設計が容易になります。また、前回のテスト実行で残されたものを操作する代わりに、テストを開始時に既知の状態に事前構成します。欠点は、インラインセットアップを使用する場合、テストフィクスチャの重複につながる可能性があることです。
避けるべき慣行
暗黙的なセットアップでテストフィクスチャが一般的すぎる場合、またはテストメソッドがテストフィクスチャをセットアップしてテスト中に使用しない場合、これは悪い習慣と見なされます。より微妙な問題は、テストメソッドがテストフィクスチャ内の特定のフィールドを無視する場合です。別の悪い習慣は、テストに必要なよりも多くのステップを含むテストのセットアップです。これはインラインセットアップで見られる問題です。
テストケースは、セットアップフェーズ中にフィクスチャを変更する場合、安全ではないと見なされます。これは、インラインセットアップ以外のフィクスチャセットアップでより顕著です。安全でないテストケースは深刻な問題であり、フィクスチャを予期しない状態のままにしておくと、後続のテストが役に立たなくなる可能性があります。また、テストの順序が重要になるため、フィクスチャのセットアップを再実行する必要があるかどうかがわかります。安全でないテストの後に安全なテストが実行される場合、フィクスチャーが両方に共通であるがフィクスチャのセットアップが再実行されますが、逆も同様です。
例
フィクスチャの例には、特定の既知のデータセットをデータベースにロードする、ハードディスクを消去する、既知のクリーンなオペレーティングシステムインストールをインストールする、特定の既知のファイルセットをコピーする、または入力データの準備とモックオブジェクトのセットアップ/作成が含まれます。
テスト対象のソフトウェアに対して再現性のあるテストを体系的に実行するために使用されるソフトウェアは、テストハーネスと呼ばれます。その仕事の一部は、適切なテストフィクスチャをセットアップすることです。
汎用xUnitでは、 テストフィクスチャは、テストを実行して特定の結果を期待するために配置する必要があるすべてのものです。
多くの場合、フィクスチャは、ユニットテストフレームワークのsetUp()およびtearDown()イベントを処理して作成されます。 setUp()では、テストに期待される状態を作成し、 tearDown()では、 セットアップされたものをクリーンアップします。
テストの4つのフェーズ:
- セットアップ
- テスト中のシステムとやり取りする運動
- 検証し、期待される結果が得られたかどうかを判断します
- 分解して元の状態に戻す
身体検査
物理テストでは、フィクスチャは、テスト中にテスト標本を保持またはサポートするデバイスまたは装置です。テスト結果に対するテストフィクスチャの影響は重要であり、現在進行中の研究テーマです。
多くのテスト方法では、テストフィクスチャの要件をドキュメントのテキストで詳しく説明しています。
- 三点曲げ試験用の万能試験機の試験治具
- 治具の油圧システムのテスト
- 運用テスト用のジェットエンジンフィクスチャ
一部のフィクスチャでは、クランプ、ウェッジグリップ、ピンサーグリップが採用されています。
- はさみクランプ最大50 kNスプリングバイアス
- オフセット補正ウェッジグリップ最大50 kN
- ドイツのメーカーの異なるバイスとネジグリップ
他のタイプの構造には、偏心ローラー固定具、スレッドグリップ、ボタンヘッドグリップ、ロープグリップが含まれます。
- 対称ローラーグリップ、自動閉鎖および自動調整
- シリーズの迅速なテストのための複数ボタンヘッドグリップ
- 細いワイヤーをテストする小さなロープグリップ200N
- 極端な温度を提供する温度チャンバー用の非常にコンパクトなウェッジグリップ
機械的保持装置は、アーム、ウェッジまたは偏心ホイールを介してジョーにクランプ力を提供します。さらに、引張試験用の空気圧および油圧治具があり、非常に速いクランプ手順と非常に高いクランプ力が可能です。
- 空気圧グリップ、対称、クランプ力2.4 kN
- ヘビーデューティ油圧クランプ、クランプ力700 kN
- 引張試験機の曲げ装置
- 最大10 kNの剥離力をテストする装置