単体テストが終わったら、次は複数のモジュールを組み合わせて、モジュール間の連携部分を含めた確認をする結合テストを行います。結合テストには、トップダウンテストと、ボトムアップテストとの2つがあります。

トップダウンテスト
 モジュールの上位からテストを実施するのがトップダウンテストです。最近では開発の方式が多様化しているので一概には言えませんが、階層構造の上位モジュールから開発する場合が分かりやすい例です。上位モジュールから開発していますから、単体テストおよび結合テストも、それに応じて上位から行われます。下位モジュールはまだ完成していないと、十分なテストが行えない場合があります。そこで、スタブと呼ばれる下位モジュールの代替となるテスト用モジュールを準備して補います。
b
ボトムアップテスト
 モジュールの下位からテストを実施します。上位のモジュールの代替えとなるのがドライバです。
a
 
では、スタブやドライバは具体的にはどんな役割をするのでしょうか。具体例で説明します。以下は、検索画面で、たとえば「network」という文字を入力して「検索」ボタンを押すと、該当するデータを表示する機能とします。

a

モジュール構造ですが、上位モジュールとして、「文字入力」(入力値のチェックなどを行います)と、下位モジュールとして「検索処理」(入力された文字をもとに、DBから検索します)があります。

このとき、上位モジュールから下位モジュールに、入力された値である「network」という文字を、引数として渡します。ですから、ドライバは,引数を渡してテスト対象モジュールを呼び出す機能だけを実装したテスト用モジュールです。