メインメニュー第18回メニュー > 問題と解説
 

第18回J検1級 ソフトウェア開発 問題1


問題1 次のテストケースの設計に関する説明を読んで,設問に答えよ。
 
[説明]
 次に示す試験処理システムを構築することにした。このシステムには,試験問題の得点を集計した成績ファイルを読んでレコードの形式を変換するプログラムと,変換済みファイルから評定値を算出するプログラムがある。これらのプログラムを開発し,テストすることにした。
 

 
[試験および成績ファイルの概要]
a)  試験は100点満点で,問1〜問6で構成される。問1と問2は必須問題である。また,問3と問4は選択問題であり,どちらか1つを選択する。問5と問6も選択問題であり,どちらか一つを選択する。
b)  試験の解答は問ごとに別の採点者によって採点され,素点が問ごとの素点記入欄に記入される。
c)  選択問題には問ごとに選択マーク欄があり,これがマークされていると選択したと見なして採点される。
d)  オペレータが手作業で,採点された解答用紙から成績ファイルを作成する。
e)  成績ファイルのレコード項目は次のとおりとする。
 
表1 項目と有効な値の関係
項目名 有効な値
受験番号
問1
問2
問3
問4
問5
問6
101001〜103325 または 201001〜202518
0〜30点
0〜30点
0〜20点(選択されていないときは空白)
0〜20点(選択されていないときは空白)
0〜20点(選択されていないときは空白)
0〜20点(選択されていないときは空白)
 
[レコード形式変換プログラムのテスト]
a)  このプログラムは成績ファイルを読んで,誤りのないレコードを評定値算出プログラムが処理できる形式に変換する。誤りのあるレコードについてはメッセージを出力する。レコードの形式は次のとおりである。
 
成績ファイル
受験番号 問1 問2 問3 問4 問5 問6
 
図2 各ファイルのレコード形式
変換済みファイル
受験番号 問1 問2 ※1 ※2

※1:問3または問4の選択された方の得点
※2:問5または問6の選択された方の得点
 
b)  メッセージは,レコードごとに検出したすべての誤りに対して出力される。メッセージは表2に示す11種類であるが,選択問題の得点は,選択が適切なときに限りチェックされる。
 
表2 誤りの種類とメッセージの関係
誤りの種類 メッセージ
受験番号
問1の得点
問2の得点
問3と問4のいずれも未選択
問3と問4の両方を選択
問5と問6のいずれも未選択
問5と問6の両方を選択
問3の得点
問4の得点
問5の得点
問6の得点
“受験番号エラー”
“問1エラー”
“問2エラー”
“問3,4未選択”
“問3,4重複選択”
“問5,6未選択”
“問5,6重複選択”
“問3エラー”
“問4エラー”
“問5エラー”
“問6エラー”
 
c)  各項目に対する同値クラスを次に示す。
 
表3 同値クラス
項目 有効同値クラス 無効同値クラス
受験番号 (1) 有効な範囲の受験番号 (1) 有効な範囲以外の受験番号
問1の得点 (2) 0〜30点 (2) 0〜30点以外
問2の得点 (3) 0〜30点 (3) 0〜30点以外
問3,4の得点 (4) 問3を選択し0〜20点
(5) 問4を選択し0〜20点
(4) 問3,4のいずれも未選択
(5) 問3,4の両方を選択
(6) 問3を選択し0〜20点以外
(7) 問4を選択し0〜20点以外
問5,6の得点 (6) 問5を選択し0〜20点
(7) 問6を選択し0〜20点
(8) 問5,6のいずれも未選択
(9) 問5,6の両方を選択
(10) 問5を選択し0〜20点以外
(11) 問6を選択し0〜20点以外
 
d)  このプログラムをテストするために,表3にもとづいてテストケースを用意し,作成される変換済みファイルや出力されるメッセージと照合して,プログラムの正当性を評価することにした。
 テストケースは次の形式で表現する。
 
 {受験番号,問1,問2,問3,問4,問5,問6}
 
 例えば,受験番号101001で問3と問5を選択し,各問が満点のテストケースは次のように表現する。
 
 {101001,30,30,20, ,20, }
 
 このテストケースによって,有効同値クラスの(1),(2),(3),(4),(6)がカバーされる。
 
 
<設問1> 一つのテストケースがなるべく多くの有効同値クラスをカバーするようにして,最小のテストケースですべての有効同値クラスをカバーしたい。次に示すテストケースを用いてテストする場合,テストケースの個数が最小となる組合せを(1)の解答群から選べ。
 
A: {102001,15,15,10, ,10, }
B: {102001,15,15,10, , ,10}
C: {102001,15,15, ,10,10, }
D: {102001,15,15, ,10, ,10}
E: {102001,15,15,10,10,10,10}
 
(1)の解答群
ア.AとB イ.AとDまたはBとC
ウ.AとBとCとD エ.E
 
 
<設問2> 次に示すテストケースを用いて,無効同値クラスのすべてを,最小のテストケースでテストするときの正しい組合せを(2)の解答群から選べ。
 
A: {105001,50,50,50, ,50, }
B: {105001,50,50, ,50, ,50}
C: {105001,50,50, , , , }
D: {105001,50,50,10,10,10,10}
E: {105001,50,50,50,50,50,50}
 
(2)の解答群
.E
.AとBまたはCとD
.CとDまたはCとE
.AとBとCとDまたはAとBとCとE
 
 
<設問3> レコードごとに最初に検出したエラーに対するメッセージだけを出力したい場合,無効同値クラスのすべてをテストするのに必要なテストケースの個数を(3)の解答群から選べ。
 
(3)の解答群
ア.1    イ.4    ウ.8    エ.11
 
 
<設問4> 受験番号の誤り検出に関して,限界値分析を用いてテストすることにした。最も適切なテストケースの組合せを(4)の解答群から選べ。
 
(4)の解答群
.101001,103325,201001,202518
.101000,103326,201000,202519
.101001,103325,103326,201001,202518,202519
.101000,101001,103325,103326,201000,201001,202518,202519
.101001,101002,103324,103325,201001,201002,202517,202518
 
 
[評定値算出プログラムのテスト]
a)  評定値は次の条件によって求める。
問1の得点をS1,問2の得点をS2,問3または問4の得点をS3,問5または問6の得点をS4とする。
次の表に従って評定値を求める。  

 
b)  次の流れ図に示すアルゴリズムで変数Xに評定値を得る。
 

 
c)  このプログラムは,図3の流れ図を参照してコーディングしてある。テストは,図3の流れ図をいくつかのテストケースを用いてトレースし,プログラムの処理結果と比較することで実施した。なお,テストケースは次の形式で表現する。
 
 {S1,S2,S3,S4}
 
 
 
<設問5> 次の文中の[  ]に入れるべき適切な字句を解答群から選べ。
 
 命令網羅によってすべての評定値がひととおり変数Xに得られるように,次に示すテストケースの組合せを考えた。
 
 {18,18,12,12}
 {18,18,12,11}
 {18,18,11,11}
 {17,18,12,12}
 
 プログラムには一般にさまざまなコーディングミスが考えられるが,上記のテストケースの組合せでは判定条件3が[ (5) ]と誤っていても検出することができない。このように命令網羅では一般的に不十分であり,テストケースを設計する際には複数条件網羅等を用いるのが望ましい。
 
(5)の解答群
ア.S3 ≧ 12 AND S4 ≦ 12 イ.S3 ≧ 12 AND S4 ≧ 12
ウ.S3 > 12 OR S4 ≧ 12 エ.S3 > 12 OR S4 ≦ 12
 

 
メニューに戻る
 

Certain right called neighbouring on copyright kimura-kouichi