トップダウンテスト
結合テストの やり方だよ
呼び出す側から少しずつ合体させていくよ
簡単に書くよ
トップダウンテスト(英:top-down testing)とは
「合体して、ちゃんと動く?」を確認するテスト(結合テスト)の やり方のひとつ
であり
例えば「部品A-[呼び出し]→部品B-[呼び出し]→部品C-[呼び出し]→部品D」のような構成のプログラムにおいて「まず部品Aと部品Bをくっつけてテストし、大丈夫そうだったら部品A+Bと部品Cをくっつけてテストし、大丈夫そうだったら部品A+B+Cと部品Dをくっつけてテストする」のように、呼び出す側の部品から少しずつ合体させてテストしていく やり方
です。
詳しく書くよ
順番に見ていきましょう。
まずは予備知識として
・トップダウン
・結合テスト
・ドライバ
・スタブ
について説明します。
「そんなの説明されなくても知ってるよ!」な人は適当に読み飛ばしてください。
トップダウンは「上→下」の流れです。
ピヨピヨドライバーで敵を地面に叩きつけるイメージですかね。
※「ピヨピヨドライバー」が気になる方は、用語「ピヨピヨドライバー」の説明を ご覧ください。
例えば「上司から部下へ業務のやり方を指示する」とかがトップダウンです。
なお「上」と「下」は何となくです。
実際には
・外→中
・概要→詳細
だったりする場合も あります。
結合テストは「合体して、ちゃんと動く?」を確認するテストです。
システム開発における工程のひとつです。
ある程度以上の規模のシステムを作るときは、システム全体をまとめて一気に作ることは、ほとんどありません。
機能や部品単位で分けて作って、最後にそれを合体させることで完成させます。
システムというのは普通のロボットではなくて合体ロボなのです。
ピヨレッドからピヨピンクまでが合体してピヨピヨ大魔神になります。
この合体ロボが「合体しても、ちゃんと動くか?」を確認するのが結合テストです。
ちなみに「合体する部品は、ちゃんと動く?」を確認する工程は「単体テスト」と呼んだりします。
気が向いたら、併せて覚えてあげてください。
単体テスト:合体前の部品のテスト
結合テスト:合体後の全体のテスト
です。
ドライバは「テスト対象を呼び出す部品の代わりとなるやつ」です。
スタブは「テスト対象から呼び出される部品の代わりとなるやつ」です。
例えば、そうですね。
ピヨピヨシステムを作っていたとしましょう。
ピヨピヨシステムは、ピヨ太ママプログラムから指令を受けたピヨ子プログラムが、ピヨ太プログラムに指示を出す構成になる予定です。
おっと、ちまちま作っていたピヨ子さんが完成したようです。
早速、テストしましょう。
ですが、ピヨ太ママとピヨ太君が、まだできていません。
そこで、ピヨ太ママとピヨ太君の代役を用意しました。
代役のお仕事は
ピヨ太ママの代役:ピヨ子さんを呼び出す
ピヨ太君の代役:ピヨ子さんから呼び出されて、結果を返す
です。
この話におけるピヨ太ママの代役に相当するのがドライバです。
ピヨ太君の代役に相当するのがスタブです。
以上を踏まえて
呼び出す側の部品から少しずつ合体させてテストしていく やり方
が「トップダウンテスト」です。
トップダウンテストは結合テストのやり方のひとつです。
例えば、そうですね。
ピヨピヨシステム2を作っていたとしましょう。
ピヨピヨシステム2は、ピヨ太ママプログラムから指令を受けたピヨ子プログラムがピヨ太プログラムに指示を出して、ピヨ子プログラムから指示を受けたピヨ太プログラムが(ちょっと仕事をした振りをした後で)そのままアクマ君プログラムに仕事を丸投げする構成になる予定です。
おっと、ピヨ太ママプログラム、ピヨ子プログラム、ピヨ太プログラム、アクマ君プログラムが完成したようです。
結合テストをやりましょう。
とはいえ、いきなり全部くっつけて動かなかったら原因を探すのが大変です。
まずはピヨ太ママプログラムとピヨ子プログラムをくっつけて「ちゃんと動くかな?」を確認しました。
ピヨ太プログラムは代役(スタブ)を使います。
ふむふむ、どうやら大丈夫そうです。
次はピヨ太プログラムをくっつけてみましょう。
今度はピヨ太ママプログラムとピヨ子プログラムとピヨ太プログラムを合体させて「ちゃんと動くかな?」を確認しました。
アクマ君プログラムは代役(スタブ)を使います。
ふむふむ、どうやら大丈夫そうです。
いよいよ仕上げです。
アクマ君プログラムをくっつけてみましょう。
ピヨ太ママプログラムとピヨ子プログラムとピヨ太プログラムとアクマ君プログラムを合体させて「ちゃんと動くかな?」を確認しました。
ふむふむ、どうやら大丈夫そうです。
これで全部の部品がくっつきました。
結合テストは完了です。
このような順番でやる結合テストがトップダウンテストです。
呼び出す方から少しずつ合体させてテストする やり方
です。
一言でまとめるよ
まぁ「トップダウンテスト」って単語が出てきたら「呼び出す方から少しずつ合体させてテストしていく やり方なんだな~」と お考えください。
おまけ
■訳してみるよ
「top(トップ)」の意味は「上」とか「上部」とか「上面」とか「頂上」とか「てっぺん」とか「最高」とかです。
「down(ダウン)」の意味は「下へ」とかです。
「test(テスト)」はカタカナで「テスト」で分かりますよね。
何となく くっつけると
頂上から下へ向かってやるテスト
となります。
■検索してみる?






