平成21年秋期試験午後問題 問8

スタディング 応用情報技術者講座

問8 情報システム開発

⇱問題PDF⇱解答用紙PDF
開発プロセスでのテストに関する次の記述を読んで,設問1~4に答えよ。

 A社は,顧客の製造プラントの設備診断システムを開発することになった。設備診断システムは,プラント内の各設備の温度・湿度・振動の情報を収集し,設備の正常・異常などの診断レポートを作成するシステムであり,測定装置サブシステムと診断サブシステムから構成される。図1は設備診断システムのDFDである。測定装置サブシステムの開発は,設備に装着可能な専用コンピュータを使用するので,専用コンピュータの開発元であるB社に委託し,A社は診断サブシステムの開発を行うことになった。
pm08_1.gif
 測定装置サブシステムは,温度測定,湿度測定,振動測定の各プロセスから成り,それぞれがセンサを用いて設備の温度・湿度・振動を測定し,センサデータとして保存する。診断サブシステムの測定データ収集プロセスは,これらセンサデータを定期的に収集し,測定データとして蓄積する。
 正しいセンサデータは,設備やセンサの種類に応じてそれぞれ定められた範囲の数値データであり,各設備が問題なく運転できる正常値の範囲と,問題となる異常値の範囲に分けられる。正常値でも異常値でもないデータが保存されている場合は,測定データ収集プロセスが,これを不正データとして処理する。不正データの原因には,センサの故障がある。測定装置サブシステムのセンサデータにアクセスし,データを収集するには,B社が提供するセンサデータ読出し関数を診断サブシステムのプログラムから呼び出す必要がある。
 設備情報登録プロセスは,各設備の正常値の範囲と異常値の範囲を設備情報として登録する。診断データ作成プロセスは,測定データと設備情報から,診断データを作成する。診断レポート作成プロセスは,診断データを基に,診断レポートを作成する。
 図2は,設備診断システム開発プロジェクトの日程である。
pm08_2.gif
 図2の中で,運用テストは顧客の分担であり,実運用環境での動作検証,初期データの確認,システムを利用する保守担当者の訓練が主目的である。
 C君はA社の開発チームに所属し,設備診断システムのテスト計画を立案することになった。担当する範囲は,図2の工程(8)~(12)のテスト工程である。最初にC君は,テスト工程ごとに,そこで確認すべき要求事項がどの工程で定義されているかと,テストの目的とをテスト工程定義として表のように設定した。
pm08_3.gif
 テスト実施方法の検討に当たって,C君は,A社とB社が開発するサブシステム間でのデータ連携の検証が重要であると考えた。A社による診断サブシステムのプログラム作成,テストの工程と,B社による測定装置サブシステムのプログラム作成,テストの工程を並行に実施した後,両サブシステムを初めて組み合わせるソフトウェア結合テストにおいて,設計上の不整合やプログラムミスなどから不良が発生し,工程遅延を引き起こすリスクがあると予想した。そのため,dにおいて,スタブを有効に活用する必要があると考えた。
 また,システム結合テストでは,eを基本とする。具体的には,同値分割やfを行って,テストケースを作成する必要があると考えた。
 その後,プロジェクトは予定どおり開始され,現在はシステム結合テストの準備中である。C君は,システム結合テストの準備を担当しているD君が作成したテストケースのレビューを行った。D君は,同値分割において,設備情報で設備ごとに指定されている測定データの正常値の範囲と異常値の範囲を同値クラスとしていた。C君は,これではテストケースとして不十分であり,同値クラスの追加を指示する必要があると考えた。

設問1

表及び本文中のadに入れる適切な工程を図2の中から選び,(1)~(14)の番号で答えよ。

解答例・解答の要点

a:(7)
b:(3)
c:(1)
d:(8)

解説

図2のような工程分けされている開発モデルをウォータフォールモデルと呼びます。ウォータフォールモデルでは、システム開発を複数のフェーズに分けて、ひとつの工程が進んだら次に進みます。
ウォータフォールモデルの各工程をV字に配置したものをV字モデルといい、設計工程とテスト工程は次のように対応します(各工程は共通フレーム内での定義)。
pm08_4.gif
この対応関係を踏まえてテスト工程に対応する設計工程を考えます。なお、本文中に「測定装置サブシステムの開発は,設備に装着可能な専用コンピュータを使用するので,専用コンピュータの開発元であるB社に委託し,A社は診断サブシステムの開発を行うことになった。」と記載があるように、A社の工程に「測定装置サブシステム」に関する工程は含まれておりません。以下、工程名については診断サブシステムに関するものであり「診断サブシステム」の記載は省略します。

aについて〕
プログラム作成はソフトウェア詳細設計書をもとに行います。プログラムの(単体)テストと平行になっているのは"ソフトウェア詳細設計"です。よって、正解は(7)の"診断サブシステムソフトウェア詳細設計"となります。

bについて〕
ソフトウェア適格性確認テストと平行になっているのは"ソフトウェア要件定義"です。よって、正解は(3)の"ソフトウェア要件定義"になります。

cについて〕
システム適格性確認テストと平行になっているのは"システム要件定義"です。よって、正解は(1)の"システム要件定義"になります。

dについて〕
スタブとは、結合テストにおいて未完成の下位モジュールの代わりに適切な値を返すテスト用モジュールです。スタブを用意することにより、下位モジュールが完成するのを待たずして上記モジュールのテストを実施でき、あらかじめ下位モジュールとのインタフェースを確認しておくことができます。
pm08_5.gif
設備診断システムの場合、診断サブシステムがセンサデータ読出し関数を呼び出すことで測定装置サブシステムのデータを読み出すので、診断サブシステムが上位モジュール、測定装置サブシステムが下位モジュールです。スタブは上位モジュールのみ確認したいテストにて利用します。テスト工程の中で、上位モジュールのみテストを行うのは(8)の"テスト"だけです。(9)以降のテストについては、下位モジュールには実際のモジュールを利用します。よって、正解は(8)の"診断サブシステムのプログラム,テスト"です。

a=(7)
 b=(3)
 c=(1)
 d=(8)

設問2

A社とB社の並行開発期間中に,診断サブシステムのテストのために用意すべきスタブは何か。本文中の字句を用いて答えよ。

解答例・解答の要点

センサデータ読出し関数

解説

設備診断システムでは、上位モジュールが診断サブシステム、下位モジュールが測定装置サブシステムです。

上位モジュールと下位モジュールの連携箇所に着目しましょう。
本文中には「データを収集するには,B社が提供するセンサデータ読出し関数を診断サブシステムのプログラムから呼び出す必要がある」と記載があるように、2つのサブシステムの接点は"センサデータ読出し関数"です。上位モジュールより呼び出しており、これが今回のスタブ作成対象であると判断できます。

具体的には、診断サブシステムからの呼出しに対して、適切な値を返すだけの仮の"センサデータ読出し関数"を用意する必要があります。

∴センサデータ読出し関数

設問3

本文中のefに入れる適切な字句を解答群の中から選び,記号で答えよ。
e に関する解答群
  • 運用テスト
  • パリティチェック
  • ブラックボックステスト
  • ホワイトボックステスト
  • モジュールテスト
f に関する解答群
  • 限界値分析
  • 条件網羅テスト
  • 静的テスト
  • ビッグバンテスト
  • 命令網羅テスト

解答例・解答の要点

e:
f:

解説

eについて〕
テストには、ホワイトボックステスト、ブラックボックステストと呼ばれる分類があります。

ホワイトボックステストはプログラムが順序通り動いているか、網羅的に実行されているかといったような、プログラマ目線でのシステム実行結果を確認するためのテストです。言い換えると、詳細設計書どおりにプログラムが書かれているかを確認するテストです。
一方、ブラックボックステストはシステムへの入出力や画面表示などに着目したテスト手法です。テキストボックスに「〇〇」と入力しOKボタンを押すと画面××に遷移するといったような、利用者目線でのシステム実行結果を確認するためのテストです。言い換えると、要件定義書や方式設計書どおりにシステムが動作しているかを確認するテストです。

一般的に、プログラムの単体テストは内部設計に基づき検証するホワイトボックステスト、それ以降のテストは入力と出力の関係に注目して検証するブラックボックステストにて実施されます。
したがって、システム結合テストはブラックボックステストとして実施されます。

「ア:運用テスト」「オ:モジュールテスト」はテスト手法ではなく工程を表しているので誤りです。「イ:パリティチェック」はデータ誤りを検出する手法なので誤りです。

e=ウ:ブラックボックステスト

fについて〕
解答群のテスト手法を確認します。
限界値分析
ブラックボックステストのテストデータ作成手法で、有効である値のクラスと無効である値のクラスの境界値をテストデータにする
pm08_6.gif
条件網羅テスト
ホワイトボックステストのテストデータ作成手法で、判定条件が複数ある場合に、それぞれの条件が真・偽の場合を組み合わせたテストケースを設計する
静的テスト
プログラムを動かさずに検証を行うテストの総称で、プログラムのソースコードをもとに行うのでホワイトボックステストに分類される
ビッグバンテスト
主に小規模システムで使われる結合テストの手法で、ドライバやスタブを使用せず、完成した全てのモジュールを一気に結合してテストする
命令網羅テスト
ホワイトボックステストのテストデータ作成手法で、すべての命令を少なくとも1回は実行するテストケースを設計する
解答群のうちブラックボックステストで使われ、かつ、テストケースの作成方法であるのは「限界値分析」です。

f=ア:限界値分析

設問4

D君が追加すべき同値クラスは何か。本文中の字句を用いて答えよ。

解答例・解答の要点

不正データ

解説

本文中の「正しいセンサデータは,…数値データであり,各設備が問題なく運転できる正常値の範囲と,問題となる異常値の範囲に分けられる。正常値でも異常値でもないデータが保存されている場合は,測定データ収集プロセスが,これを不正データとして処理する」の記載よりがあるように、値には"正常値"・"異常値"・"不正データ"の3つがあることがわかります。一方、「同値分割において,設備情報で設備ごとに指定されている測定データの正常値の範囲と異常値の範囲を同値クラスとしていた」と記載がありますが、ここに"不正データ"が含まれておりません。

センタの故障により、数値ではないデータや通常範囲から大きく外れた数値データが記録されていることがあるので、これら不正データに対するエラー処理が正しく動作するかどうかを検証する必要があります。
したがって、不足している同値クラスは「不正データ」です。

∴不正データ
模範解答

Pagetop