back

結合テスト


結合テストとは
 単体テストの後に行うテスト。
 モジュール間インタフェースをテスト。
 トップダウンテスト、ボトムアップテスト、ビッグバンテスト

テストの種類
 ・トップダウンテスト
  上位モジュールから下位モジュールを順に結合しながらてすと。
  未完成の下位モジュールの代わりのスタブが必要。
  テストの平行作業が出来ない。
  インタフェース間の確認が容易。

 ・ボトムアップテスト
  下位モジュールから上位モジュールへ順に結合。
  未完成の上位モジュールの代わりにドライバーが必要。
  テストの平行作業ができる。
  インタフェース間の確認が難しい。

 ・ビッグバンテス
  すべてのモジュールを結合していっせいにプログラムテストを行う。
  スタブ、ドライバが不要。
  不具合があった場合、特定に時間を要する。

スタブ
 上位のモジュールをテストするために、下位の未完成モジュール代替として用いる
 テストのためのプログラム。

ドライブ
 下位のモジュールをテストするために、上位の未完成モジュールの代替として用いる
 テスト用のプログラム。


★★★宿題:二種向け★ (1999/12/17)

 トップダウンテストに関する記述として,適切なものはどれか。

 ア 下位のモジュールを代行するドライバの作成が必要になる。

 イ 重要度の高い上位のモジュールがテストで繰り返し使用されるので,上位
  モジュールの信頼性が高くなる。

 ウ テストの最終段階でモジュール間のインタフェース上の問題が生じやすい

 エ モジュール数の少ない上位部分から開発していくので,開発の初期段階か
  らプログラミングとテストの並行作業が可能である。


■解答■(宿題メールより)
  二種午前平成11年秋問62

> スナップショット:
> 1)本来はプログラム実行中に行う、指定された記憶域内のダンプ。
> 2)指定した条件の時だけ主記憶やレジスタの内容などの追跡データ
> を出力するダンプ。
> ( 情報処理用語辞典(新星出版社)より引用)

 どうもありがとうございました。

> スナップショットはスナップショットダンプの事でいいんでしょうか?
> 用語を調べていて出てきました。
>
> プログラムの実行中に、任意に設定した地点でレジスタや特定のこう退くのダンプを
> 行う事こと。プログラムのテスト中にある項目内容や経過途中が知りたいときや、プ
> ログラムエラーの理由がどうしても分からないときに利用する。
> (ナツメ社:わかりやすいコンピュータ用語辞典)

 どうもありがとうございました。


★★★宿題:二種向け★(1999/12/20)

 結合テストで用いられるスタブの役割の記述として,適切なものはどれか。

 ア テスト完了のモジュールの代わりに結合される。

 イ テスト対象のモジュールからの呼出し命令の条件に合わせて,値を返す。

 ウ テスト対象のモジュールからの呼出し命令の条件に合わせて,テストデー
  タを自動生成する。

 エ テスト対象のモジュールを呼出し命令で呼び出す。


■解答■(宿題メールより)
  二種午前平成11年秋問63

>ア:スタブの作成が必要
>イ:正解
>ウ:初期の段階で問題が発見できる
>エ:並行作業はできない。

 エの平行作業は,ボトムアップの方がしやすいといことでした。

> 下位のモジュールを代行するドライバの作成が必要になる。
> →これは、スタブのことですか?

 そうです。

>トップダウンテストp100
>層構造化したモジュールの、最上位レベルからテストを始め、
>次下位のモジュールを上位モジュールと結合してモジュール間の
>インタフェースをテストする方法。
>下位モジュールが未完成の場合、スタブというテスト用プログラムを使用する。
>ボトムアップテストp139
>階層構造化したモジュールの、最下位レベルからテストを始める。
>上位レベルのモジュールが未完成であるとき、
>ドライバと呼ぶテスト用のプログラムを使用する。
情報処理基本用語辞典 学研合格情報処理

 どうもありがとうございました。

>モジュールのテスト技法について
http://www.edp.eng.tamagawa.ac.jp/~tyoshio/software/module_test.html

 どうもありがとうございました。

>スタブとドライバがごっちゃになってしまいます。

 英語の意味を考えるといいですよ。ドライバは,運転する人,スタブは,机な
どぐらぐらしたときの詰め物です。

>システム理解のためのトップダウンアプローチとボトムアップアプローチ
http://www.se.cs.meiji.ac.jp/~tagaya/b4_0625/node4.html

 どうもありがとうございました。


★★★宿題:二種(基本情報技術者)向け★(2000/10/2)

 単体テスト(モジュールテスト)の次に行う結合テストの目的として,適切な
ものはどれか。

 ア 外部設計書の仕様どおりに機能が実現されていることを検証する。

 イ 処理時間や応答時間が目標を満たすことを検証する。

 ウ 端末の同時接続や操作が目標どおりに実現されていることを検証する。

 エ モジュール間のインタフェースが正しいことを検証する。


(解答)

一番上の説明を読めば理解できると思います。

■解答■(宿題メールより)
  ネットワークスペシャリスト午前平成11年問56

>  結合テスト→結ばれている所のテスト→モジュール間のインタフェースのテスト
> と考えました。

 どうもありがとうございました。

> ★結合テスト
> ・概要:システム全体を稼働させて行うテスト
>    主にモジュール間のインターフェースのエラーの検出を行う。
> ・実施者:システム開発者か専門のテスト担当者
> ・技法:ボトムアップテスト、トップダウンテスト、ビッグバンテスト

 どうもありがとうございました。結合テストは,システム全体を稼働させて
行うテストではありません。実施者を「システム開発者」とすると,曖昧な表現
です。「システム」という用語を使用せずに説明した方が,正確になりますよ。
結合テストを実施するに最適な人は,専門のテスタか,内部設計担当者でしょう。

> 結合テスト
> 検証される項目に,モジュール間のインタフェースの不一致の検出がある。
> 単体テストにおいては,インタフェースは仕様書などから“想定”して行われ
> るため,実際には一致していないこともある。また,プログラムを構成するす
> べてのモジュールを結合した結果,プログラムの一貫した入出力のテストが
> 行われることになる。
>  TAC 情報処理技術者試験研究会
>  「第二種情報処理技術者 プログラム設計と内部設計」 p143

 どうもありがとうございました。

> 結合テスト・・・関連する2つ以上のプログラムモジュールを連結(結合)して、正
> しく動作するかどうかをテストすること。個々のプログラムが仕様書の機能どうり
> に動作するかを調べるモジュールテスト(単体テスト)で正常に動作しても、結合
> してみてはじめてエラーを発見するケースがあるので、モジュールの結合順序や結
> 合時期を考慮しながら行う必要がある。(合格情報処理 情報システム辞典60P)


 どうもありがとうございました。

>結合テスト〜
>プログラム、モジュールを結合を結合した段階のテスト
>http://www.kth.ed.jp/d/student/d95/d9516/system4.html
>
>ウォーターフォールモデルについて 〜
>http://www.kth.ed.jp/d/student/d95/d9516/system3.html

 どうもありがとうございました。