【てすとどらいば】

テストドライバ とは?

💡 テスト対象を「運転」して動かす指示役
📌 このページのポイント
テストドライバとスタブの役割 テストドライバ (上位モジュールの代役) 呼び出し テスト対象モジュール (検証したいプログラム) 呼び出し テストスタブ (下位モジュールの代役) 引数を渡して 結果を検証 固定値を返す ダミー応答 結果 ボトムアップテストではドライバで上位を代替する
テストドライバのイメージ
ひよこ ひよこ

テストドライバって何をするものなの?

ペンギン先生 ペンギン先生

テスト対象のモジュールを呼び出して、ちゃんと動くか確認するためのプログラムだよ。たとえば計算モジュールをテストするとき、「3と5を足して」と指示を出して「8が返ってくるか」を確認する、その指示を出す側がテストドライバなんだ

ひよこ ひよこ

なんで「ドライバ」って呼ぶの?

ペンギン先生 ペンギン先生

車のドライバー(運転手)と同じイメージだよ。テスト対象のモジュールを「運転して動かす」役割だから。アクセルを踏んだりハンドルを切ったりするように、関数を呼び出して引数を渡して結果を受け取るんだ

ひよこ ひよこ

テストスタブとはどう違うの?

ペンギン先生 ペンギン先生

テストドライバは「上から呼び出す側」、テストスタブは「下から呼ばれる側」の代役だよ。たとえばモジュールA→B→Cという構造で、Bをテストするとき、Aの代わりにBを呼び出すのがドライバ、Cの代わりに応答を返すのがスタブなんだ

ひよこ ひよこ

今のテストフレームワークでもドライバは使うの?

ペンギン先生 ペンギン先生

JUnitpytestなどのテストフレームワーク自体が、実はドライバの役割を果たしているんだよ。テストメソッドを書けばフレームワークが自動的にテスト対象を呼び出してくれる。昔は毎回手書きしていたドライバが、今はフレームワークのおかげで不要になったんだね

ひよこ ひよこ

じゃあ今はテストドライバを自分で書くことはないの?

ペンギン先生 ペンギン先生

フレームワークがない環境や、組み込みシステムのテストでは今でも手書きすることがあるよ。あと情報処理試験ではボトムアップテストの説明でドライバとスタブの違いがよく出題されるから、概念として知っておくのは大事だよ

ペンギン
まとめ:ざっくりこれだけ覚えればOK!
「テストドライバ」って出てきたら「テスト対象を呼び出して動かす側のプログラム」と思えればだいたいOK!
📖 おまけ:英語の意味
「Test Driver」 = テスト駆動プログラム
💬 driver は「運転手」という意味。テスト対象モジュールを「運転する(駆動する)」役割だから、テストドライバと呼ばれるんだよ
← 用語集にもどる