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

問8 情報システム開発

⇱問題PDF
ソフトウェア適格性確認テストに関する次の記述を読んで,設問1~4に答えよ。
 W法人は技術者の国家資格認定試験を実施している団体である。グローバルに活躍できる技術者を育成するために,新たな技術者認定試験(以下,新試験という)を導入することが決まった。新試験は4種類の試験を組み合わせて合格者を決定する。そこで,4種類の試験の成績を基に合否を判定するシステム(以下,合否判定システムという)を開発して,そのシステムの動作を確認するためのテストを行うことにした。

〔新試験の実施方法〕
 新試験では,次の4種類の試験を組み合わせる。
  1. 英語(筆記試験):得点は1点刻みで100点満点
    (以下,この筆記試験の得点をXとする)
  2. 専門科目(筆記試験):得点は1点刻みで100点満点
    (以下,この筆記試験の得点をYとする)
  3. 英語(面接試験):得点は5点刻みで100点満点
    (以下,この面接試験の得点をORAL_engとする)
  4. 技術者適性(面接試験):得点は1点刻みで1~4点
    (以下,この面接試験の得点をORAL_tecとする)
 新試験は次の2段階で行われる。
第1段階:
筆記試験(Ⅰ英語 と Ⅱ専門科目)
第2段階:
面接試験(Ⅲ英語 と Ⅳ技術者適性)
 第1段階の判定基準を満たした受験者だけが第2段階に進み,第2段階の判定基準を満たした受験者が新試験の合格者となる。

〔第1段階の判定基準〕
 次の二つの条件をともに満たす場合に,第1段階を通過とする。
条件1:
X≧60
条件2:
筆記合算点としてWRITTENを式WRITTEN=X+Yで算出し,WRITTEN≧130

〔第2段階の判定基準〕
 第1段階を通過し,かつ,次の二つの条件をともに満たす場合に,"新試験に合格"とする。
条件3:
英語合算点としてENGLISHを式ENGLISH=X+ORAL_engで算出し,ENGLISH>140
条件4:
WRITTENとORAL_tecの組合せによって表1のように判定する。
pm08_1.gif
 合否判定システムが,表1の判定基準どおりに動作するかをチェックするために,条件4を次の三つの連立不等式で表す。
pm08_2.gif
〔3変数のドメイン分析〕
 第2段階の判定基準(条件3,4)においてENGLISH,WRITTEN,ORAL_tecの3変数の境界値テストを行う。このように複数の変数の境界値が関係するテストケースの設定を見つけるために,Binderのドメイン分析を利用する。Binderのドメイン分析とは,ある変数の境界値についてテストを行うために,他の変数を有効同値の中の値とする方法である。それぞれのドメインは境界によって定義されるので,テストすべき値は,仕様で指定される境界上の値(onポイント),及び境界の近傍にあって境界を挟んでonポイントに最も近い値(offポイント)となる。offポイントは,境界が閉じていれば(等号を含む不等式の場合)ドメイン外の値になり境界が開いていれば(等号を含まない不等式の場合)ドメイン内の値となる。一つの変数の境界をチェックするときに,他の変数は真偽に影響を与えないよう境界上でないドメイン内部の値(inポイント)を選ぶ。
 表2は,3変数のドメイン分析マトリクスとしてテストケースを定義したものである。異常値は別途テストするので表2には含まない。また,各変数のinポイントは全てのテストケースで同一の値を設定している。6件のテストケースは全て異なる。
pm08_3.gif
〔判定基準の変更〕
 新試験の結果をシミュレーションした結果,I英語(筆記試験)が高得点で,Ⅱ専門科目(筆記試験)の得点が低い場合(X=100,Y=30など)でも合格するケースがあることが判明した。これは第1段階の判定基準で専門科目(筆記試験)の得点を十分に考慮できていないからと考えて再検討し,第1段階の判定基準に,
条件5:
Y>50
を追加した。すなわち条件1,条件2,条件5を全て満たす場合に,第1段階を通過とした。
 第1段階の判定基準の条件が増えたので,三つの条件(条件1,条件2,条件5)での複数条件網羅(multiple condition coverage)テストを計画した。各条件を満たすか否かによってテストケースを整理したところ,①複数条件網羅率を100%にするテストケースの数は本来8件であるが,本テストでは7件だけで済むことが分かった。

設問1

〔第1段階の判定基準〕においてX軸(横方向で右が正)とY軸(縦方向で上が正)を軸とした直交座標のグラフを考えたとき,条件1と条件2を満たし判定基準通過となる領域は4直線で囲まれた四角形になる。境界値テストを行うべき,この四角形の各頂点を座標(X,Y)で表す。このとき四つの頂点の座標を,右上の頂点から順に左回り(反時計回り)に答えよ。

解答例・解答の要点

(100,100),(60,100),(60,70),(100,30)

解説

〔第1段階の判定基準〕は、Xが60以上、かつ、X+Yが130以上 です。XとYについてそれぞれ上限・下限を考えると以下の4種類のケースが考えられます。
  1. Xの値が上限の"100"であり、Yの値も上限である"100"
  2. Xの値が上限の"100"であり、Yの値がX+Y≧130を満たす下限である"30"
  3. Xの値が下限の"60"であり、Yの値が上限である"100"
  4. Xの値が下限の"60"であり、Yの値がX+Y≧130を満たす下限である"70"
この4点で囲まれた領域が判定基準通過を表すエリアです。XYグラフ上に4点をプロットすると下図のようになります。
pm08_4.gif
設問の指示では「右上の点から反時計回りに答えよ」ということなので、(100,100),(60,100),(60,70),(100,30)になります。

∴(100,100),(60,100),(60,70),(100,30)

設問2

本文中のabに入れる適切な数値を答えよ。

解答例・解答の要点

a:30
b:250

解説

条件4を通過する下限、例えば「WRITTEN:130、かつ、ORAL_tec:4」や、「WRITTEN:160、かつ、ORAL_tec:3」の場合は、WRITTEN+m×ORAL_tecの値がnと等しくなるはずです。

これを利用した連立方程式を立ててmとnを求めます。

 130+4m=n …①
 160+3m=n …②

加減法により、

 -30+m=0
 m=30 …③

③の結果を①の式に代入します。

 130+4×30=n
 n=250

a=30
 b=250

設問3

〔3変数のドメイン分析〕について,(1)~(3)に答えよ。
  • ケース1とケース2のテストケースの目的として,表2中のcに入れる適切な字句を答えよ。
  • 表2中のdeに入れる適切な数値を答えよ。
  • ケース4として値を設定すべき箇所が表2中の(ア)~(ケ)のうちに三つある。値を設定すべき箇所と設定すべき値を答えよ。
     解答方法は,例えば(ア)に数値1が入る場合,(ア,1)と答えよ。

解答例・解答の要点

  • c:ENGLISHの境界値チェック
  • d:141
    e:129
  • (ウ,160),(オ,1),(ケ,190)

解説

問題文の説明だけでは分かりづらいので、はじめにonポイント、offポイント、inポイントについて整理しておきます。
onポイント
仕様で指定されている境界上の値、すなわちX≧100、X>100 の"100"のように比較条件で指定される定数のこと。この2つのケースのonポイントは共に100になる。
offポイント
境界の近傍にあり、境界を挟んでonポイントに最も近い値。X≧100の場合、onポイント"100"はドメイン内なので境界を挟んで最も近い値はドメイン外の"99"になる、一方、X>100の場合、onポイント"100"はドメイン外なので境界を挟んで最も近い値はドメイン内の"101"になる。
pm08_5.gif
inポイント
境界上でないドメイン内部の値
問題文中には「Binderのドメイン分析とは、ある変数の境界値についてテストを行うために,他の変数を有効同値の中の値とする方法」と説明されています。変数の境界値テストはonポイントとoffポイントを用いて行うので、テスト対象の変数にはon/offポイントを、それ以外の変数にはinポイントを設定するとわかります。
  • cについて〕
    表2「ドメイン分析マトリクス」を見ると、ケース1とケース2ではENGLISHにon/offポイントが、ORAL_tecとWRITTENにはinポイントが指定されています。これよりケース1とケース2は変数ENGLISHに対するテストとわかります。ケース3とケース4のテストケースの目的である「ORAL_tecの境界値チェック」という字句に倣えば、cに入る字句はENGLISHの境界値チェックとなります。

    c=ENGLISHの境界値チェック

  • dについて〕
    変数ENGLISHの判定条件は「ENGLISH>140」です。onポイントである140はドメイン外の値なので、offポイントは境界を挟んだドメイン内で最も近い値である141になります。
    pm08_6.gif
    d=141

    eについて〕
    変数WRITTENの判定条件は「WRITTEN≧130」です。onポイントである130はドメイン内の値なので、offポイントは境界を挟んだドメイン外で最も近い値である129になります。
    pm08_7.gif
    e=129

  • ケース3とケース4は変数ORAL_tecのチェックなので、ORAL_tecにはon/offポイントが、それ以外の変数にはinポイントが設定されます。
    ENGLISHとWRITTENに設定されるinポイントの値ですが、問題文に「各変数のinポイントは全てのテストケースで同一の値」とあるので、他のテストケースで設定されているinポイントと同じ値が設定されることになります。具体的にはENGLISH=160、WRITTEN=190です。
    変数ORAL_tecの判定条件は「ORAL_tec≧2」です。先程と同様に考えると、onポイントである2はドメイン内の値なので、offポイントは境界を挟んだドメイン外で最も近い値である1になります。

    つまり表中で値が設定される箇所は以下の3つです。
    pm08_8.gif
    ∴(ウ,160),(オ,1),(ケ,190)

設問4

本文中の下線①となる理由を,40字以内で具体的に述べよ。

解答例・解答の要点

条件1が偽,条件2が真,条件5が偽となる場合が成立しないから (30文字)

解説

複数条件網羅は、判定条件のすべての可能な結果の組合せを網羅し、かつ、すべての命令を少なくとも1回は実行するようにテストケースを作成するテスト手法です。複数条件網羅では、結果の真偽だけではなく生じ得る判定条件の組合せを全て網羅しなくてはなりません。

第1段階の判定基準では以下の3つの条件の組合せで判定されます。
  • 条件1:X≧60
  • 条件2:X+Y≧130
  • 条件5:Y>50
各条件ごとに真偽があるので23=8つのテストケースが必要ですが、このうちXが60未満、かつ、Yが50未満のケースでは合計点(X+Y)は必ず110点未満になるため、条件2は常に偽になります。つまり「条件1:偽,条件2:真,条件5:偽」を満たす状況は生じ得ません。このためテストケースを1件省略可能です。

∴条件1が偽,条件2が真,条件5が偽となる場合が成立しないから
模範解答

Pagetop