【てすとどらいば】

テストドライバ とは?

最終更新:
💡 テスト対象を、呼び出して試す代役

テスト対象を呼び出して制御する、呼び出し元の代役。スタブとの違いや、テスト実行ツールとテストコードの関係を説明します。

📌 このページのポイント
テストドライバ:対象を呼ぶ側の代役テストドライバ本来の呼出し元の代役対象を呼んで試すテスト対象 Bここを試したい入力と結果を確認スタブ C対象が使う相手の代役応答を用意する対象Bが相手Cを呼ぶドライバ:呼ぶ側スタブ:呼ばれる側
両方の代役を使う説明用の例です。矢印は呼び出す向きで、戻る結果は省略しています。範囲によって実物を使う場合もあり、呼び出せるだけで正しいと判断せず期待結果も確認します。
ひよこ ひよこ
テストドライバは、何を運転するの?
ペンギン先生 ペンギン先生
試したいソフトウェアを呼び出して制御する代役だよ。本来の呼び出し元がまだなくても、対象へ入力を渡して試せるんだ。
ひよこ ひよこ
例えば計算する関数なら?
ペンギン先生 ペンギン先生
テスト用のコードから関数を呼び、値を渡して結果を確かめる例が考えられる。ドライバという言葉は、特定の製品名ではなく、対象を動かす側の役割を表しているよ。
ひよこ ひよこ
スタブも、同じ代役?
ペンギン先生 ペンギン先生
代役になる位置が違う。図ではドライバが対象Bを呼び、Bが必要とする相手Cをスタブが置き換える。ドライバは呼び出す側、スタブは呼び出される側と見ると整理しやすいね。
ひよこ ひよこ
pytestがあれば、自分で呼ばなくてよい?
ペンギン先生 ペンギン先生
pytestはテスト関数を見つけて実行するけれど、対象の関数をどう呼ぶか、何を確かめるかはテストコードにも書くよ。実行ツールがあることと、対象を呼ぶ役割がなくなることは別なんだ。
ひよこ ひよこ
ドライバを作れば、テストは全部終わる?
ペンギン先生 ペンギン先生
呼び出せるだけでは、結果が正しいかまでは分からないよ。入力や期待する結果、どこまで実物を使うかも考える。単体を試す代役と、本来の組み合わせを試すことも区別しよう。
もっと詳しく知りたい人へ

デバイスドライバやテスト駆動開発と同じ?

デバイスドライバはOSから機器を扱うソフトウェア、テスト駆動開発は開発の進め方です。ここでのドライバは、テスト対象を呼び出す側の役割です。

ドライバとスタブは、必ず両方必要?

テストする範囲と、利用できる実際の部品によります。図は両方を使う説明用の例で、すべてのテストに同じ構成が必要という意味ではありません。

ペンギン
まとめ:ざっくりこれだけ覚えればOK!
「テストドライバ」って出てきたら「テスト対象を呼び出して、試すための代役」と思えばだいたいOK!
📖 おまけ:英語の意味
「Test Driver」 = テストを駆動するもの
💬 ここではソフトウェアのテストで、対象を呼び出し・制御する役割のことです。機器のドライバとは区別します。

参考資料

← 用語集にもどる