平成27年度 春期48テクノロジ系

基本情報 平成27年度 春期 問48:テクノロジ系に関する問題

ボトムアップテストの特徴として, 適切がものはどれか。

  • a開発の初期の段階では, 並行作業が困難である。
  • bスタブが必要である。
  • cテスト済みの上位モジュールが必要である。
  • dドライバが必要である。正答
正答:Dドライバが必要である。

AI解説(初心者・標準・上級)

理解度に合わせて3レベルの解説を無料で読めます。

初心者向けまずはここから。やさしく要点を解説

答えは d「ドライバが必要」 です。

ボトムアップテストは「下から積み上げてテストする」方式。下のモジュール(部品)からテストするので、まだ作られていない上のモジュールの代わりに“呼び出し役”が必要です。それがドライバ

反対のトップダウンテストは「下のモジュールがまだない」ので、代わりの“返答役”=スタブを使います。

👉 覚え方:ボトム=下から積む=上の代役ドライバ/トップ=上から下りる=下の代役スタブ

ほかの選択肢:a 並行作業困難=トップダウンの欠点/b スタブ必要=トップダウン/c 上位モジュール必要=トップダウン。

標準試験対策の基準レベル

なぜこれが正解か

正解は d。ボトムアップテストは下位モジュールから順に結合・テストを進める手法。下位モジュールを呼び出す上位モジュールがまだ未完成のため、それを代替する「ドライバ(テスト駆動モジュール)」が必要となる。

各選択肢の解説

  • a 誤り:ボトムアップは下位モジュールから独立して並行作業しやすい(むしろメリット)。
  • b 誤り:スタブ(仮の下位モジュール)はトップダウンテストで必要。
  • c 誤り:上位モジュールが先に完成しているのはトップダウンテストの前提。

覚え方・ひっかけ注意

スタブ vs ドライバは超頻出ペアの覚え方:「スタブ=下の代役(トップダウン)/ドライバ=上の代役(ボトムアップ)」。両者の中間としてサンドイッチテスト(折衷型)もある。テスト戦略選定は「重要モジュールの位置」「並行作業の必要性」「リスク」で決定する。

上級誤答論破・背景理論まで深掘り

理論的背景

結合テスト戦略は (1) ビッグバンテスト(全モジュール一括結合):規模小なら有効、(2) トップダウンテスト:上位優先、深さ優先/幅優先で進行、(3) ボトムアップテスト:下位優先、(4) サンドイッチテスト(ハイブリッド):両端から中央へ、(5) 継続的結合(Continuous Integration):アジャイル時代の主流。

実務での使われ方

ボトムアップの利点:(1) 下位モジュールを早期テスト可能、(2) 並行開発しやすい、(3) ハードウェアに近い下位層の品質を早期確保。欠点:(1) システム全体像の確認が後回し、(2) ユーザインタフェースの問題が遅く発覚。

現代の開発ではCI/CDパイプライン(GitHub Actions・Jenkins・GitLab CI)で全レベルテスト(ユニット→結合→E2E)を自動実行する「Test Pyramid」が標準。下位ユニットテスト多/上位E2E少の比率が推奨。Mock/Stub/Spyの使い分けはxUnit Test Patternsで体系化されている。

試験での位置づけ

ソフトウェア開発分野の頻出論点。基本情報・応用情報で毎期出題。V字モデル(要件定義↔受入/基本設計↔システム/詳細設計↔結合/実装↔単体)の対応関係、テスト技法(ホワイトボックス/ブラックボックス)との組み合わせは必須。

選択肢の発展補足

  • スタブの実装手法:(1) ハードコード値返却、(2) 動作記録、(3) Mock Framework(Mockito・Jest mock・unittest.mock)。
  • ドライバの実装:JUnit/TestNG/pytestのテストランナーがドライバ機能を兼ねる。
  • 関連用語:Test Double、Fake、Mock、Stub、Spy、Dummy(Gerard Meszaros分類)。
  • TDD(テスト駆動開発)・BDD(振る舞い駆動開発)・ATDD(受入テスト駆動開発)との関連も応用情報で出題される。
出典・引用について

出典:IPA(情報処理推進機構)公式 基本情報技術者試験 平成27年度 春期48/ 公的機関配布資料につき出典明記の上引用。解説は合格ナビによる独自AI解説です。

テクノロジ系の他の過去問

1
テクノロジ系
2
テクノロジ系
3
テクノロジ系
4
テクノロジ系
5
テクノロジ系

あなたの弱点を診断して、合格までの最短ルートを

この分野を連続演習し、AIがあなたの弱点を分析。合格ナビなら基本情報の過去問を解きながら学べます。