応用情報技術者 2017年 秋期 午後 問08
ソフトウェア適格性確認テストに関する次の記述を読んで、設問1~4に答えよ。
W法人は技術者の国家資格認定試験を実施している団体である。グローバルに活躍できる技術者を育成するために、新たな技術者認定試験(以下、新試験という)を導入することが決まった。新試験は4種類の試験を組み合わせて合格者を決定する。そこで、4種類の試験の成績を基に合否を判定するシステム(以下、合否判定システムという)を開発して、そのシステムの動作を確認するためのテストを行うことにした。
〔新試験の実施方法〕
新試験では、次の4種類の試験を組み合わせる。
I 英語(筆記試験):得点は1点刻みで100点満点
(以下、この筆記試験の得点をXとする)
II 専門科目(筆記試験):得点は1点刻みで100点満点
(以下、この筆記試験の得点をYとする)
III 英語(面接試験):得点は5点刻みで100点満点
(以下、この面接試験の得点をORAL_engとする)
IV 技術者適性(面接試験):得点は1点刻みで1~4点
(以下、この面接試験の得点をORAL_tecとする)
新試験は次の2段階で行われる。
第1段階:筆記試験(I 英語 と II 専門科目)
第2段階:面接試験(III 英語 と IV 技術者適性)
第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のように判定する。

合否判定システムが、表1の判定基準どおりに動作するかをチェックするために、条件4を次の三つの連立不等式で表す。
〔3変数のドメイン分析〕
第2段階の判定基準(条件3、4)において ENGLISH、WRITTEN、ORAL_tec の3変数の境界値テストを行う。このように複数の変数の境界値が関係するテストケースの設定を見つけるために、Binder のドメイン分析を利用する。Binder のドメイン分析とは、ある変数の境界値についてテストを行うために、他の変数を有効同値の中の値とする方法である。それぞれのドメインは境界によって定義されるので、テストすべき値は、仕様で指定される境界上の値(on ポイント)、及び境界の近傍にあって境界を挟んで on ポイントに最も近い値(off ポイント)となる。off ポイントは、境界が閉じていれば(等号を含む不等式の場合)ドメイン外の値になり、境界が開いていれば(等号を含まない不等式の場合)ドメイン内の値となる。一つの変数の境界をチェックするときに、他の変数は真偽に影響を与えないよう境界上でないドメイン内部の値(inポイント)を選ぶ。
表2は、3変数のドメイン分析マトリクスとしてテストケースを定義したものである。異常値は別途テストするので表2には含まない。また、各変数のinポイントは全てのテストケースで同一の値を設定している。6件のテストケースは全て異なる。

〔判定基準の変更〕
新試験の結果をシミュレーションした結果、Ⅰ 英語(筆記試験)が高得点で、ⅠⅠ 専門科目(筆記試験)の得点が低い場合(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と条件を満たし判定基準通過となる領域は4直線で囲まれた四角形になる。境界値テストを行うべき、この四角形の各頂点を座標(X, Y)で表す。このとき四つの頂点の座標を、右上の頂点から順に左回り(反時計回り)に答えよ。
模範解答
(100, 100)、(60, 100)、(60, 70)、(100, 30)
解説
解答の論理構成
-
境界を規定する式を抽出
- 【問題文】より
- 「条件1:X≧60」
- 「条件2:筆記合算点として WRITTEN=X+Y で算出し、WRITTEN≧130」
- また、得点の取れる範囲は【問題文】の「得点は1点刻みで100点満点」により 0≤X≤100, 0≤Y≤100 が暗黙に成立します。
- 【問題文】より
-
条件1の境界
- 垂直直線 X=60 を境界とし、右側(Xが大きい側)が許容領域。
-
条件2の境界
- 直線 X+Y=130 を境界とし、直線より上(X+Yが大きい側)が許容領域。
- 傾きは −1、Y切片は 130。
-
得点上限の境界
- 水平直線 Y=100(上限)
- 垂直直線 X=100(上限)
- いずれも内側(得点が小さい側)が許容領域。
-
四つの境界線の交点を求める
- 右上:X=100 と Y=100 → (100, 100)
- 左上:X=60 と Y=100 → (60, 100)
- 左下:X=60 と X+Y=130 ⇒ Y=130−60=70 → (60, 70)
- 右下:X=100 と X+Y=130 ⇒ Y=130−100=30 → (100, 30)
-
領域の形状
- 以上の 4 点を結ぶと長方形を斜めに切り取った四角形になり、【模範解答】と一致します。
誤りやすいポイント
- X, Y ともに「100点満点」の上限を境界に入れ忘れ、三角形と誤認する。
- 直線 X+Y=130 の“上側”と“下側”を取り違え、許容領域を逆に描いてしまう。
- 条件1「X≧60」を Y≧60 と読み違える単純ミス。
- 点の列挙順:「右上から左回り」という指示を読み落とし、座標の並び順を誤って減点。
FAQ
Q: 「XとYは0点もあり得るのに、下限の直線(Y=0, X=0)を境界に入れなくてよいのですか?
A: 問題で求められているのは“条件1と条件2を満たす領域”です。X=0 や Y=0 はそもそも条件1(X≧60)を満たさないため、四角形の境界を形成しません。
A: 問題で求められているのは“条件1と条件2を満たす領域”です。X=0 や Y=0 はそもそも条件1(X≧60)を満たさないため、四角形の境界を形成しません。
Q: 直線 X+Y=130 上の点は通過扱いになりますか?
A: はい。【問題文】「WRITTEN≧130」と“≧”になっているため、境界線上も通過(onポイント)です。
A: はい。【問題文】「WRITTEN≧130」と“≧”になっているため、境界線上も通過(onポイント)です。
Q: もし満点を 120 点に変更したら四角形はどうなりますか?
A: 上限の直線が X=120, Y=120 に変わり、左上・右上の頂点座標もそれぞれ (60, 120)、(120, 120) になります。その他の頂点は X+Y=130 との交点なので変更ありません。
A: 上限の直線が X=120, Y=120 に変わり、左上・右上の頂点座標もそれぞれ (60, 120)、(120, 120) になります。その他の頂点は X+Y=130 との交点なので変更ありません。
関連キーワード: 境界値分析、ドメイン分析、連立不等式、条件網羅、グラフ領域
設問2:
本文中のa、bに入れる適切な数値を答えよ。
模範解答
a:30
b:250
解説
解答の論理構成
-
表1の確認
【問題文】では、条件4を“WRITTEN と ORAL_tec による判定基準”として次のように示しています。
・「190 以上」で合格できるのは「ORAL_tec=2,3,4」
・「160 以上 190 未満」で合格できるのは「ORAL_tec=3,4」
・「130 以上 160 未満」で合格できるのは「ORAL_tec=4」
これを数直線で描くと、WRITTEN が低くなるほど必要な ORAL_tec が高くなる“右下がり”の境界線になると分かります。 -
連立不等式の形に合わせる
条件4をWRITTEN + m × ORAL_tec ≥ nで表すため、ORAL_tec の各値について境界点(WRITTEN の最小合格点)を当てはめます。 -
連立させて m を決定
「ORAL_tec=3」で WRITTEN=160 が合格、“1 点下”の 159 は不合格になる必要があります。したがって160 + 3m ≥ n > 159 + 3m一方「ORAL_tec=2」での境界は n = 190 + 2m。これを代入すると160 + 3m ≥ 190 + 2m > 159 + 3m左辺と右辺を整理すると160 + 3m ≥ 190 + 2m ⇔ m ≥ 30 190 + 2m > 159 + 3m ⇔ m < 31よって m は整数でただ 1 つ、 -
n の算出
-
まとめ
a と b に入る値はa:30 b:250
誤りやすいポイント
- 「ORAL_tec=1 は常に不合格」を見落とし、“ORAL_tec ≥ 1”としてしまう。正しくは「ORAL_tec ≥ 2」。
- 連立不等式の“両側”を同時に満たす必要があることを忘れ、 160 + 3m = 190 + 2m と単純に等号で解いて m=30 とした結果、159 点の不合格確認を怠る。
- n を「WRITTEN=130、ORAL_tec=4」から求めようとしてしまう。130 点域は別の行で決まるため、この点は不等式 ③ で自動的に満たされることを理解する。
FAQ
Q: どうして m を 30 とするのに「ORAL_tec=4」の行を使わないのですか?
A: ORAL_tec=4 の行は最も緩い条件(WRITTEN≥130)なので、2 行目・3 行目で決めた傾き m と切片 n を満たせば自動的に包含されます。境界を作るのは「ORAL_tec=2,3」の 2 点で十分です。
A: ORAL_tec=4 の行は最も緩い条件(WRITTEN≥130)なので、2 行目・3 行目で決めた傾き m と切片 n を満たせば自動的に包含されます。境界を作るのは「ORAL_tec=2,3」の 2 点で十分です。
Q: m が 30 以外の整数だとどこで不整合が出ますか?
A: m<30 では ORAL_tec=3, WRITTEN=159 が誤って合格、m>30 では ORAL_tec=3, WRITTEN=160 が不合格になります。どちらも表1と矛盾します。
A: m<30 では ORAL_tec=3, WRITTEN=159 が誤って合格、m>30 では ORAL_tec=3, WRITTEN=160 が不合格になります。どちらも表1と矛盾します。
Q: n を 250 としたとき、ORAL_tec=4, WRITTEN=129 はなぜ不合格?
A: 条件2 で「WRITTEN≥130」が必須だからです。不等式③だけでなく、連立 1 本目が効いています。
A: 条件2 で「WRITTEN≥130」が必須だからです。不等式③だけでなく、連立 1 本目が効いています。
関連キーワード: 境界値分析、ドメイン分析、連立不等式、同値分割、入力設計
設問3:〔3変数のドメイン分析〕について、(1)〜(3)に答えよ
(1)ケース1とケース2のテストケースの目的として、表2中のcに入れる適切な字句を答えよ。
模範解答
c:ENGLISHの境界値チェック
解説
解答の論理構成
-
問題文には、3変数(ENGLISH, WRITTEN, ORAL_tec)の境界値を整理した「表2 ドメイン分析マトリクス」が提示されています。
そのヘッダには
テストケースの目的 として c と ORAL_tecの境界値チェック の列見出しが並んでいます。 -
同じ表の行を確認すると、ケース2~4の目的欄が既に
ORAL_tecの境界値チェック と明示されています。従って c には ORAL_tec 以外の変数名が入ることが分かります。 -
表2の値を追うと、ケース1とケース2では
- ENGLISH 行に on/off ポイント(140 と d)
- ORAL_tec と WRITTEN 行には in ポイント(4 や 190)
が設定されています。これは Binder のドメイン分析の説明でいう
「一つの変数の境界をチェックするときに、他の変数は … inポイントを選ぶ」
というルールに合致します。
-
よってケース1とケース2がチェックしている境界は ENGLISH であり、 c には
ENGLISHの境界値チェック
が入ると結論付けられます。
誤りやすいポイント
- ORAL_tec の列見出しを見て「表全体が ORAL_tec 用」と早合点しやすい。ヘッダの c と別扱いになっていることを見落とさないようにしましょう。
- ケース1・2で ORAL_tec が 4(inポイント)になっているのは「高い値で合格させるため」と誤解しやすいですが、ドメイン分析ではあくまで “他変数が境界に影響しない値” を置くためです。
- ENGLISH の境界は条件3の ENGLISH>140(等号なし)なので、140 が on、139 が off になる点を忘れがちです。
FAQ
Q: ENGLISH の off ポイントが on より大きい値になることはあるのですか?
A: 条件3は ENGLISH>140 と「開いた不等号」なので、off ポイントはドメイン内(合格側)になります。したがって on が 140、off は 141 など大きい値になるのが正解です。
A: 条件3は ENGLISH>140 と「開いた不等号」なので、off ポイントはドメイン内(合格側)になります。したがって on が 140、off は 141 など大きい値になるのが正解です。
Q: ケース1とケース2の違いは何ですか?
A: ケース1は ENGLISH が on(境界上)で不合格側、ケース2は off(境界直後)で合格側に設定し、境界判定が正しく機能するかを確認します。
A: ケース1は ENGLISH が on(境界上)で不合格側、ケース2は off(境界直後)で合格側に設定し、境界判定が正しく機能するかを確認します。
Q: ORAL_tec の境界値チェックが 3 ケース(2~4)あるのはなぜ?
A: ORAL_tec は 2 が on、1 が off(不合格側)、3 も off(合格側)となるため、境界内外を挟む組合せが複数必要になるからです。
A: ORAL_tec は 2 が on、1 が off(不合格側)、3 も off(合格側)となるため、境界内外を挟む組合せが複数必要になるからです。
関連キーワード: ドメイン分析、境界値分析、同値分割、複数条件網羅、連立不等式
設問3:〔3変数のドメイン分析〕について、(1)〜(3)に答えよ
(2)表2中のd、eに入れる適切な数値とeに入れる適切な数値を答えよ。
模範解答
d:141
e:129
解説
解答の論理構成
- 境界値の決定
【問題文】の条件3には
“英語合算点として ENGLISH を式 ENGLISH=X+ORAL_eng で算出し、 ENGLISH>140”
とあります。境界は “140” で “>” が付いているので開区間です。 - on/off/in の使い分け
Binder のドメイン分析では- on:境界そのもの
- off:on のすぐ隣で、開区間ならドメイン内、閉区間ならドメイン外
と定義されます(【問題文】「off ポイントは、境界が閉じていれば…開いていれば…」)。
- ENGLISH の off 値 (d)
開区間なので off はドメイン内、すなわち “141” が最小の候補です。
よって d=141 となります。 - WRITTEN の off 値 (e)
条件4は連立不等式の1行目で
“WRITTEN ≧ 130”
と明示されています(閉区間)。閉区間の off はドメイン外の最接近値、したがって “129” が選ばれます。
よって e=129 です。
誤りやすいポイント
- “ENGLISH>140” を “≧” と読み違えて 140 を off、141 を on にしてしまう
- WRITTEN の off を 131 としてしまい、閉区間の外側というルールを破る
- ORAL_tec の on/off と混同し、テーブルへの配置を取り違える
FAQ
Q: ENGLISH の on に 141 を置いてはいけませんか?
A: 条件が “ENGLISH>140” なので境界(on)は 140 が正解です。141 は境界を超えた off になります。
A: 条件が “ENGLISH>140” なので境界(on)は 140 が正解です。141 は境界を超えた off になります。
Q: WRITTEN の off に 128 を選んでも良いですか?
A: ルール上は 128 もドメイン外ですが、Binder 法では境界に最も近い値を採用します。最接近値は 129 です。
A: ルール上は 128 もドメイン外ですが、Binder 法では境界に最も近い値を採用します。最接近値は 129 です。
Q: オープン/クローズド区間の判定はどこで見分けますか?
A: 不等号に “=” が付いていれば閉区間(≦、≧)、付いていなければ開区間(<、>)と判断します。
A: 不等号に “=” が付いていれば閉区間(≦、≧)、付いていなければ開区間(<、>)と判断します。
関連キーワード: 境界値分析、ドメイン分析、開区間、閉区間、不等式
設問3:〔3変数のドメイン分析〕について、(1)〜(3)に答えよ
(3)ケース4として値を設定すべき箇所が表2中の(ア)〜(ケ)のうちに三つある。値を設定すべき箇所と設定すべき値を答えよ。
解答方法は、例えば(ア)に数値1が入る場合、(ア、1)と答えよ。
模範解答
(ウ、160)、(オ、1)、(ケ、190)
解説
解答の論理構成
-
境界の抽出
・条件3は “ENGLISH>140” と明示されているので、境界値は 140(開境界)。
・条件4はWRITTEN ≥ 130
ORAL_tec ≥ 2で、いずれも閉境界。したがって
onポイント=境界そのもの
offポイント=閉境界ならドメイン外(境界‐1)
inポイント=境界から十分離れた値
となります。 -
ケース4は「ORAL_tec の境界値チェック」列に属する
表2ヘッダに “ORAL_tecの境界値チェック” とある列のうち、Case4 が該当します。
Binder のドメイン分析では「調べたい変数だけを on / off にし、他は in に固定」するため、Case4 ではORAL_tec … on または off
ENGLISH … in
WRITTEN … inとなることが読み取れます。 -
ORAL_tec の具体値
ORAL_tec の境界(on)は 2、よって off は 1 です。ケース4は off 行に (オ) が置かれているので
(オ、1)
が確定します。 -
ENGLISH の in 値
ENGLISH の in 行に (ウ) が置かれており、他ケースの in 値はすべて 160 で統一済みです。よって
(ウ、160)
となります。 -
WRITTEN の in 値
WRITTEN の in 行に (ケ) が配置されています。表2で in として既に使われている値は 190 だけなので
(ケ、190)
と決定します。
以上より、ケース4で値を設定すべき箇所と値は
(ウ、160)、(オ、1)、(ケ、190) です。
(ウ、160)、(オ、1)、(ケ、190) です。
誤りやすいポイント
- 開境界/閉境界の判定を取り違え、“ENGLISH>140” の off を 141 としてしまう。開境界なので off は 140 未満側が正解です。
- ORAL_tec の off 値を “2+1” の 3 としてしまう。閉境界なので off は境界の外側(1)である点に注意。
- WRITTEN の in 値に 130 を選び境界チェックになってしまう。本来 in は境界から十分離れた値(190)を選ぶ必要があります。
FAQ
Q: offポイントは常に境界‐1で良いのですか?
A: 閉境界(≥、≤)の場合は境界の外側が off になります。開境界(>、<)の場合は境界の内側が off です。
A: 閉境界(≥、≤)の場合は境界の外側が off になります。開境界(>、<)の場合は境界の内側が off です。
Q: なぜ WRITTEN の in に 190 を使うのですか?
A: WRITTEN は “WRITTEN ≥ 130” と “WRITTEN + m×ORAL_tec ≥ n” の両条件にかかわります。境界から遠い 190 を選べば ORAL_tec の影響を受けず、ORAL_tec 境界テストに集中できます。
A: WRITTEN は “WRITTEN ≥ 130” と “WRITTEN + m×ORAL_tec ≥ n” の両条件にかかわります。境界から遠い 190 を選べば ORAL_tec の影響を受けず、ORAL_tec 境界テストに集中できます。
Q: ENGLISH の in を 150 ではなく 160 にした理由は?
A: 表2では「各変数のinポイントは全てのテストケースで同一の値」と指定されています。他ケースで in として既に 160 が使われているため、整合性を保つ必要があります。
A: 表2では「各変数のinポイントは全てのテストケースで同一の値」と指定されています。他ケースで in として既に 160 が使われているため、整合性を保つ必要があります。
関連キーワード: 境界値分析、ドメイン分析、Binder法、連立不等式、複数条件網羅
設問4:
本文中の下線①となる理由を、40字以内で具体的に述べよ。
模範解答
条件1が偽、条件2が真、条件5が偽となる場合が成立しないから
解説
解答の論理構成
- 複数条件網羅では、各条件が真(True)か偽(False)をとる全組合せをテストするため、本来は 通り必要です。
- 問題文で追加された三つの条件は
・「条件1:X≧60」
・「条件2:筆記合算点としてWRITTENを式WRITTEN=X+Yで算出し、WRITTEN≧130」
・「条件5:Y>50」
です。 - 下線①では「条件1が偽、条件2が真、条件5が偽となる場合が成立しない」と述べています。これを数式で確かめます。
・条件1が偽 →
・条件2が真 →
・条件5が偽 → - かつ のとき、 の最大値は にしかなりません。
しかし条件2では が要求されるため同時に満たす値域が存在しません。 - したがってこの組合せは実現不可能で、「8件のうち1件は不要」となりテストケースは7件で十分になります。
誤りやすいポイント
- 「偽」条件を X や Y の最小値と安易に結び付け、実際に を計算せずに可否を判断してしまう。
- 複数条件網羅=すべての値の組合せと思い込み、実現不能パターンを削除できることを失念する。
- 「条件5が偽」を だけでテストしようとし、 のケースを見落とす。
FAQ
Q: 複数条件網羅では実現不可能な組合せも作るべきですか?
A: いいえ。論理的に成立しない組合せは「入力条件が存在しない」ためテスト対象外にできます。
A: いいえ。論理的に成立しない組合せは「入力条件が存在しない」ためテスト対象外にできます。
Q: 条件1と条件2は同じ変数 X, Y を含んでいますが、独立と考えてよいのでしょうか?
A: 真偽の組合せ表を作る際は独立に扱います。ただし今回のように「同時充足できない領域」がある場合は独立性が崩れ、組合せが削減されます。
A: 真偽の組合せ表を作る際は独立に扱います。ただし今回のように「同時充足できない領域」がある場合は独立性が崩れ、組合せが削減されます。
Q: 条件5を追加したことでテストケース数は増えないのですか?
A: 通常は倍増しますが、条件間の整合性により実現不可能な行が生じ、結果として7件に抑えられています。
A: 通常は倍増しますが、条件間の整合性により実現不可能な行が生じ、結果として7件に抑えられています。
関連キーワード: 複数条件網羅、境界値分析、不達成組合せ、真偽表、テストケース削減


