システムを構築する上で各種テストを行うことは非常に重要です。なぜならプログラムは人の手によって書かれるため、間違いは必ず発生してしまうものです。所謂バグは発生するのですが、これを発見し修正するために、各種テストを行います。
テストの種類は単体テストや結合テスト、システムテスト、運用テストなど色々ありますが、今回はその中の結合テストにおいて出てくるスタブとドライバを解説します!
結合テストのポイント
結合テストにおいてはプログラムしたモジュールの間を繋げますが、その際に上位モジュール、下位モジュールに分かれます。ここで、大事なのは、
「上位モジュールから下位モジュールを呼ぶ!」ということです。
ボトムアップ、トップダウンという言葉が出てきますが、テストの順番(流れ)は違えども上位モジュールから下位モジュールを呼び出す動きには変わりがありません(ここ重要です!)。
では、それぞれのモジュールの特徴を見てみましょう。
トップダウンテスト
上位のモジュールから下位のモジュールへ順にテストします。下位にはスタブと呼ばれるダミーモジュールを用意します。ダミーモジュールとは中身が何もなく処理を行わないため、他に影響を及ぼさないモジュールです。
特徴
最上位のモジュールからテストしていくため、システムの中枢部分に致命的なバグがある場合などに早期に発見して取り除くことができるメリットがあります。
一方、プログラミングとテストを並行して行おうとするとスタブを大量に用意しなければならないので、この辺はデメリットになりますね。
ボトムアップテスト
下位のモジュールから上位のモジュールへ順にテストします。上位には、ドライバと呼ばれるダミーモジュールを使用します。
特徴
最下位のモジュールからテストしていくため、一般的な開発手法ではプログラミングと並行してテストを実施し易いメリットがあるのですが、上位側のテストは手薄になりがちになってしまいます。
システムの中核部分や全体の連携などに潜在する問題を十分に洗い出せないこともデメリットですかね。
覚え方
スタブとドライバは正反対の役割なのですが、スタブがどっちで、ドライバがどっちかこんがらがってしまうことがあります(汗)
私の覚え方としてはスタブはバスタブっぽいので、下のモジュールで、ドライバは車の運転手(ドライバー)なので、操作をする、すなわち上のモジュールです。ちょっと強引ですが、参考にしてみてください!
その他のテスト
その他のテスト方法として、上位側と下位側から同時に結合していく手法を「サンドイッチテスト」(折衷テスト)、全モジュールの完成後にすべて結合して一気にテストする手法を「ビッグバンテスト」といいます。
まとめ
今回はシステムのテストで重要になるスタブとドライバに関して調べてみました。
テストの流れによって、メリット・デメリットがあるので、上手に使い分けると良いですね。
情報処理の試験で良く出てくる用語でもありますので、試験勉強する方などはしっかり覚えましょう。
以上です!