【てすとはーねす】

テストハーネス とは?

最終更新:
💡 テスト対象を動かすための、支援道具セット

テスト対象を呼び出すドライバーや依存先の代わりになるスタブなど、テストを動かすための支援コード・道具。文脈によって準備・実行・結果の確認などの仕組みを広く指すこともある。

📌 このページのポイント
テストハーネス:対象を動かす支えドライバー:呼び出す側テスト用の入力を渡すテスト対象:注文処理スタブ:依存先の代わり決済APIの応答を用意する結果の確認・準備や片付けと組み合わせる
注文処理を試す構成例。矢印は呼び出し方向です。実行を支える道具と、テスト内容・期待結果を区別します。
ひよこ ひよこ
テストフレームワークと同じ?
ペンギン先生 ペンギン先生
重なることはあるけれど、完全に同じ意味ではないよ。ISTQBの用語集では、テストを実行するためのスタブやドライバーの集まりと説明している。準備・実行・結果の確認までの仕組みを広く指す使い方もあるので、文脈を確認しよう。
ひよこ ひよこ
ペンギン先生 ペンギン先生
ドライバーはテスト対象を呼び出す側のコード、スタブは対象が呼ぶ依存先の代わりだよ。たとえば注文処理を試すとき、テストコードから注文を渡し、決済APIの代わりに用意したスタブが決めた応答を返す、といった構成にできるんだ。
ひよこ ひよこ
準備や片付けも自動化できる?
ペンギン先生 ペンギン先生
できるよ。Pythonのunittestなら、setUpやtearDownなどでテスト前後の処理を用意できる。テスト用のデータや一時ファイルなどを管理する。ただし全テストでデータベースや後片付けが必要、という決まりではないんだ。
ひよこ ひよこ
偽物のAPIだけで十分?
ペンギン先生 ペンギン先生
スタブを使うと条件をそろえやすいけれど、本物のAPIとの接続まで確かめたことにはならないよ。成功だけでなく失敗や境界の条件も用意し、必要な範囲は統合テストで確認する。道具をそろえることと、適切なテストを設計することは両方大切なんだ。
ひよこ ひよこ
CIとの違いは?
ペンギン先生 ペンギン先生
CIは変更の統合やビルド、テストなどを実行する流れだよ。テストハーネスは、その中でもテスト対象を動かすための支援の仕組みとして使える。良いハーネスがあっても、期待結果が間違っていれば正しい品質判断にはならないんだ。
ペンギン
まとめ:ざっくりこれだけ覚えればOK!
「テストハーネス」って出てきたら「テスト対象を動かすために用意する、支援コードや道具のセット」と思えばだいたいOK!
📖 おまけ:英語の意味
「Test Harness」 = テストを支える装置・道具
💬 対象を制御して動かすための支え、と考えるとイメージしやすいよ。

参考資料

← 用語集にもどる