
基本情報 科目A|テスト用語を覚えたのに選べない。公式4題の「何を確かめるか」判定票
「ブラックボックス」「静的解析」「スタブ」「網羅」。意味は読んだはずなのに、選択肢では違うものを選んでしまう。
そのときは、名前を思い出す前に、主語と観測対象を書きます。仕様を見ているのか。ソースコードを解析するのか。対象を呼ぶのか、対象から呼ばれるのか。命令を通したのか、判定の真偽を通したのか。
本稿は公式4題を使い、16選択肢をその違いから整理する小さな練習帳です。正答4個の暗記ではなく、誤った説明をどの条件で退けるかまで埋めます。
扱う問題と、購入前に分かること
2019年春・基本情報 午前 問47:ブラックボックスで分かること
同 問48:静的解析ツールが調べるもの
2019年秋・基本情報 午前 問48:スタブとドライバの向き
同 問49:命令網羅と判定条件網羅の関係
いずれも旧午前問題を、現在の科目Aに向けた基礎練習として扱います。本試験の出題率や得点の予測ではありません。
原問は2019年春の問題PDF・冊子21ページと2019年秋の問題PDF・冊子25ページを開いてください。原文の全転載はせず、以下は選択肢の要約と筆者の解説です。
全体で主要完成票4枚、16選択肢の判定、呼出し図2枚、網羅を確かめる筆者作成の小コード2例、誤読からの修正6組、空欄票を収録します。無料では問47と修正2組を完成まで読めます。有料は残り3題・修正4組と反例、繰り返し使う記入欄です。補助コードは公式問題ではなく、実際の受験者答案や公式配点も収録していません。
既存記事を読んだ方へ
「公開80問0問でも学ぶ境界値3点」では、ブラックボックスとホワイトボックス、同値・境界値、命令や条件の網羅を説明しています。「何を根拠にテストを選ぶか」という手順は本稿と共通です。これを新しい手法として数えてはいません。
本稿の追加部分は、別の公式4題の全16選択肢を判定した完成票、静的解析と実行結果の切り分け、スタブ/ドライバの呼出し方向、具体的なテスト集合による網羅関係の確認です。既存記事が扱う2025年6月修了認定問37、2013年秋午後問5、2019年秋午後問5は採用していません。用語の整理だけで足りる方、公式正答から自力で反例を作れる方は、追加購入を急ぐ必要はありません。
無料見本:問47 入出力が合っても、内部の余分な処理は分からない
2019年春の問47です。正答はイ。ただし「ブラックボックスでは何も分からない」という意味ではありません。
仕様で「整数xを受け取り、x+1を返す」と決めた、次の二つを考えます。筆者の説明用コードで、原問にはありません。
処理P:
return x + 1
処理Q:
temp ← x + 1
unused ← x × 2
return temp入力と返り値だけを見ると、どちらも同じです。たとえばx=4なら返り値は5。Qの途中のunusedへの代入が余計だという事実は、入出力が仕様どおりかを調べるだけでは判定できません。
これは実行時間などを含む全ての観測が絶対に同じ、という主張ではありません。この例で固定した観測は「整数入力に対する返り値」です。外部の振る舞いからテストすることと、内部に不要なコードがないと保証することは、確認する対象が違います。
完成票1:問47の4選択肢
選択肢:ア
説明が見ているもの(要約):命令や分岐の通過率を、データ選びの基準にする
判定する理由:内部構造を基準にしており、ブラックボックスの説明ではない
選択肢:イ
説明が見ているもの(要約):内部の余分なコードを検出できるか
判定する理由:入出力の確認だけで余分なコードを特定するとはいえない。正答
選択肢:ウ
説明が見ているもの(要約):内部の必要な部分が実行されたか
判定する理由:内部の通過状況を確認しており、ホワイトボックス側の説明
選択肢:エ
説明が見ているもの(要約):分岐やモジュールの増加からデータ急増を説明する
判定する理由:内部構造の量を理由にしている。ブラックボックスの特徴を述べた選択肢として採らない
エを「ブラックボックスならテスト数は絶対に増えない」と読み替えないこと。仕様上の条件が増えれば、外から作るテストも増え得ます。ここで退けるのは、内部の分岐数・モジュール数をそのままブラックボックスの説明根拠にすることです。
修正1:内部に分岐があることと、内部を基準に選ぶこと
誤読例:分岐を含むプログラムをテストしているので、ホワイトボックスだ。
修正例:プログラムに分岐があっても、入力を仕様から選び、外部出力を確認するならブラックボックス側。内部の分岐を基準に入力を選んだかどうかを確かめる。
修正2:「動いた」から「余計なコードはない」へ飛ばない
誤読例:全テストで期待した値が返ったので、冗長なコードもない。
修正例:観測した入力と出力では問題が出なかった。内部の冗長性の有無は、コードを調べる作業と区別する。
この2組が、有料部分にも続く書き直し方です。「何となく違う」ではなく、何を確認した結果なのかを書いて選択肢を削ります。