基本情報や応用情報技術者試験でよく問われる「スタブ」と「ドライバ」。
実際に開発現場でもたびたび使われる言葉です。
これらの意味について理解を深めていきましょう!
開発工程は順序がある
まず前提として、システム開発には順番があります。
どんな開発手法でも「要件定義」から始め、「設計」を行い「製造(実装)」に着手します。
実際にプログラミングする工程は、様々な呼ばれ方があります。
- 製造工程
- 開発工程
- 実装工程
- コーディング
そして、開発したもの(成果物)を「テスト」します。
このときに必要になるのが「スタブ」と「ドライバ」なのです。
スタブとは
「stub」は「切り株」を意味する言葉です。
本番で使用する際に動作に支障がないように代替品として使うものを指します。
つまり、呼び出し先が未完成の場合に使われるモジュールのことをスタブと言います。
トップダウンテストで使用されます。
トップダウンテストとは、結合テスト(複数のモジュールを組み合わせたテスト)の1種です。
上位モジュールから下位モジュールへ向かってテストを行う形式を指します。
トップダウンテスト(で使用するのがスタブ)と覚えておけばOKです。
ドライバとは
「driver」は「操縦士、運転手」を意味する言葉です。
結合テスト(複数のソフトウェア部品=モジュールの動作確認)を行う際に、呼び出し側のモジュールが未完成であったり、テストのために実行するための手間がかかる場合に、代替となるテスト用呼び出しプログラムのことを指します。
つまり、呼び出し元が未完成の場合に使われるモジュールのことをドライバと言います。
ボトムアップテストで使用されます。
ボトムアップテストとは、結合テスト(複数のモジュールを組み合わせたテスト)の1種です。
下位モジュールから上位モジュールへ向かってテストを行う形式を指します。
ボトムアップテスト(で使用するのがドライバ)と覚えておけばOKです。
なぜスタブとドライバを使うのか
モジュール(コンポーネント)のテストや開発を円滑にするために使用します。
開発を行なっていると、いくつもの要因が絡んでテストしにくい場面に遭遇します。
- ユーザ新規登録のテストで、テストアカウントの作成が他社に依頼しなければ出来ない。
- その作成に1週間ほどかかってしまう……。
- 8つの手順を経て、やっとテストしたいデータが返却されるモジュールがある
- 8月の手順をやると、1回のテストに5分ほどかかってしまう……。
- サーバ側のレスポンスの値に応じて、アプリ側の処理を切り替える(サーバ側からトークンが発行され、内容に誤りがあればエラーを表示するなど)
- サーバ側の実装に遅れが生じているため、未完成である
- 設計資料をもとに、返却される予定のレスポンス値を仮に入れて、アプリ側の実装やテストを進める