AOBA's Information Processing Education
1998/09/19
注意1:このページは、回線を切断した後でゆっくりご覧になってください(テキストを印刷する場合は、その取り扱いに注意してください)。
注意2:背景が白地の画面を長時間見つめていると頭が痛くなってしまいますので、ここは背景をグレーにしています。
「平成8年春期 第2種 午後 問3」 問3 売上管理システムの開発に関する次の記述を読んで、設問1〜3に答えよ。
D社において、次のような売上管理システムを開発中であり、現在、稼動間近のテストを実施している。
![]()
![]()
![]()
![]()
売上伝票処理プログラムの顧客名取出し,商品名取出し,金額計算は、サブルーチンで行っており、それぞれ1件ずつの処理を行う。
テストは次のようにして行った。
- 売上伝票処理プログラムのテストにおいて、顧客名取出し,商品名取出し,金額計算は、実際のサブルーチンを使用しないでスタブを用いた。
- 売上伝票処理プログラムの売上実績ファイル出力については、売上実績ファイルの内容を印字出力して確認した。
- 売上実績表作成プログラムについては、テスト用の売上実績ファイルを作成し、売上実績表を出力して確認した。
設問1
上記1.〜3.のテスト完了後、システム全体のテストをしたところ、売上実績表の商品名が正しく出力されていなかった。どのようなことが考えられるか。正しい記述を解答群の中から選べ。解答群
ア 売上実績表作成に誤りがある。
イ 売上実績ファイル出力に誤りがある。
ウ 売上伝票読込みに誤りがある。
エ 顧客名取出しサブルーチンの呼出し方法に誤りがある。
オ 商品名取出しサブルーチンに誤りがある。設問2
売上実績表ができた段階で利用者をまじえてのテストを行ったところ、値引区分を用いて求めた売上実績表の金額が利用者の要求と異なることが発見された。この原因として最も適切な記述を、解答群の中から選べ。解答群
ア 売上実績ファイルの項目設計に誤りがある。
イ 売上実績ファイルの内容を印字出力して確認をしたことに誤りがある。
ウ 売上伝票の様式設計に誤りがある。
エ 外部設計において、利用者の要求を正しく反映しなかったことが原因である。
オ 金額計算のテストデータに誤りの原因がる。設問3
売上管理システムの仕様を変更することになった。同一顧客コードで同一商品名が継続する場合は、売上実績表において商品名の印字個所に”同上”と印字するように、売上実績作成プログラムを変更する。売上伝票処理は変更しないものとして、テスト方法について正しい記述を、解答群の中から選べ。解答群
ア 売上実績ファイルのテストデータを作成して売上実績表作成を確認する。
イ 売上実績ファイルの内容を印字出力して確認する。
ウ 顧客マスタの内容を印字出力して確認する。
エ 商品マスタと顧客マスタの内容を印字出力して確認する。
オ 商品マスタの内容を印字出力して確認する。
解説 この手の問題を解くコツは、あまり深読みをしないことです。
設問の解説の前に、スタブの意味の意味をはっきりさせましょう(たとえ知らなくても問題文を読めば勘で分かりますが...)。
一般にプログラムの結合テストを行う場合、(*)すべてのモジュールを一気に結合してテストを行いません。普通はモジュールを少しずつ結合しながらテストを行います。
このとき、上位モジュールから順に結合するテストをトップダウンテスト,下位モジュールから順に結合するテストをボトムアップテストといいます。
トップダウンテストを行う際、たとえテストであろうとも、呼出し先のモジュールはすべてそろってなければなりません(これがなければリンクエラーとなる)。同じように、ボトムアップテストを行う際は、呼出し元のモジュールが必要です。
そこでこれらのテストを行う初期の段階では、結合テストを行うモジュール以外はダミーモジュールを作って、これをリンクしてテストを行うのです。このダミーモジュールのことを、スタブおよびドライバといいます。
スタブは、トップダウンテストを行う際に用いる下位のダミーモジュールで、ドライバは、ボトムアップテストを行う際に用いる上位のダミーモジュールです。もちろん結合テストの最終段階では、これらスタブやドライバを用いずに、本物のモジュールを結合してテストを行います。
(*)すべてのモジュールを一気に結合するテストもあることはあります。これをビッグバンテストといいます。さらに、トップダウンテストとボトムアップテストを併用し、最終的に中間のモジュールを結合するテストもありますが、これをサンドウィッチテストといいます。
設問1について
この問題の売上伝票処理の結合テストでは、本物のモジュール(問題ではサブルーチンですが)を結合してテストを行っていないようです。本来はスタブを用いてテストを行った後に、顧客名取出し,商品名取出しおよび、金額計算の各モジュールを順に本物に変え、最終的に全体を結合してテストを行わなければなりません。
ということで、商品名が正しく出力されなかったのだから、商品名取出しサブルーチンに誤りがある、と考えるのが最も妥当です。設問2について
設問2の文中の、”...利用者をまじえてテストを行ったところ、...利用者の要求と異なる...”がポイントです。
利用者の要求仕様を満たしていないことがこの時点まで発見されなかったということは、内部設計(または詳細設計)レベルの問題ではなく、それ以前の外部設計の問題です。もし内部設計の問題であれば、テスト中に開発者自らが発見できたはずでしょう。
だから答えは、外部設計において、利用者の要求を正しく反映しなかったことが原因である、と考えるのが最も妥当です。設問3について
変更するプログラムは、売上実績表作成プログラムだけです。他のプログラムおよびファイルには一切手を加えません。
解答群のイ〜オは、(変更されていない)ファイルの内容を確認するだけですので、これでは売上実績表作成プログラムのテストになっていないのは明らかです。
だから答えは、売上実績ファイルのテストデータを作成して売上実績表作成を確認する、です。今週はここまで。
ではまた来週。
解答
設問1 オ 設問2 エ 設問3 ア