基本情報技術者試験

基本情報技術者 科目A公開問題:開発手法とツール(スタブ・コーディング規約・ローコード)の4問

基本情報技術者試験の科目A公開問題から、スタブ、コーディング規約、ロジックマッシュアップ、ローコード開発の開発手法とツールを問う4問を解けます。何を手がかりに答えを決めるかと誤答の型をまとめました。

基本情報技術者試験

令和6年度 科目A 公開問題 問11

IPA 公表問題

階層構造のモジュール群から成るソフトウェアの結合テストを,上位のモジュールから行う。この場合に使用する,下位のモジュールの代替となるテスト用のモジュールはどれか。

解答群
答えと選択肢ごとの根拠を見る

正解:ウ(スタブ) IPA 公表の解答例による

  • ア × 誤り 代わりに動くものは,すべてエミュレータだと考えた

    エミュレータは,ある機器やソフトウェアの動作を別の環境でまねて動かす仕組み。モジュール同士の結合テストで,未完成の下位モジュールの代わりに呼び出される小さなテスト用モジュールとは役割が違う。

  • イ × 誤り 実物の代わりに動かすという点が同じなので,テスト用の代替モジュールもシミュレータだと考えた

    シミュレータは,実際の環境や現象を模擬して動作を確かめる仕組み。下位モジュールの代わりに,決まった値を返して上位モジュールを動かすためのモジュールを指す言葉ではない。

  • ウ ○ 正しい

    上位のモジュールから順にテストする(トップダウン)と,呼び出される側の下位モジュールがまだ無い。その代わりに,呼ばれたら決まった値を返すだけの仮のモジュールを置く。これがスタブ。

  • エ × 誤り スタブとドライバの向きを取り違えた

    ドライバは,下位のモジュールから順にテストする(ボトムアップ)ときに,まだ無い上位モジュールの代わりに,下位モジュールを呼び出すために置くもの。代替するのが上位か下位かが,スタブとの違い。

出典:基本情報技術者試験 令和6年度 科目A 公開問題 問11独立行政法人情報処理推進機構(IPA)原文を開く(確認)

この問題の誤りを報告
どこが違いますか

名前や連絡先は書かないでください。内容は訂正の確認にだけ使い、90日で削除します。

基本情報技術者試験

令和8年度 科目A 公開問題 問11

IPA 公表問題

あるシステムにおいて,“プログラムの記述方法が統一されていないので保守がしづらい”という問題が発生している。今後の新規開発プロジェクトにおけるこの問題の低減策として,最も適切なものはどれか。

解答群
答えと選択肢ごとの根拠を見る

正解:ア(コーディング規約を見直し,教育する。) IPA 公表の解答例による

  • ア ○ 正しい

    問題は「記述方法が統一されていない」こと。コーディング規約は,命名や書き方をそろえるための決まりなので,規約を見直し,メンバーに教育すれば,記述方法がそろって保守しやすくなる。

  • イ × 誤り プログラミングの技法を取り入れれば,書き方もそろうと考えた

    セキュアプログラミングは,脆弱性を作り込まないための書き方。安全性は上がるが,記述方法の不統一という問題は解消されない。

  • ウ × 誤り テストを厚くすれば,保守のしやすさも上がると考えた

    命令網羅度を上げるのは,テストでプログラムの命令を通す割合を高めて,欠陥を見つけやすくすること。記述方法の不統一を直すものではなく,保守のしづらさの原因に届かない。

  • エ × 誤り 全員が参加するレビューをすれば,書き方もそろうと考えた

    プロジェクト管理レビューは,進捗やコスト,品質などの管理状況を確認する場。プログラムの書き方をそろえるための決まりを作ったり,教えたりする場ではない。

出典:基本情報技術者試験 令和8年度 科目A 公開問題 問11独立行政法人情報処理推進機構(IPA)原文を開く(確認)

この問題の誤りを報告
どこが違いますか

名前や連絡先は書かないでください。内容は訂正の確認にだけ使い、90日で削除します。

基本情報技術者試験

令和6年度 科目A 公開問題 問5

IPA 公表問題

複数の Web サービスの入出力処理を連結させて新たなサービスを提供する,“ロジックマッシュアップ”の例はどれか。

解答群
答えと選択肢ごとの根拠を見る

正解:ウ(利用者が入力した予算の範囲で宿泊可能な施設のリストを他の Web サービスから取得し,それらの宿泊施設の空室状況を別の Web サービスから取得して表示する。) IPA 公表の解答例による

  • ア × 誤り 他のサービスの地図を取り込んでいるので,ロジックマッシュアップだと考えた

    他のサービスが提供する地図を,そのまま画面に埋め込んで見せるだけの使い方。相手の処理結果を受け取って次の処理に渡す連結ではない。

  • イ × 誤り 複数のWebサービスを使っているので,連結にあたると考えた

    複数のサービスからデータを集めているが,各サービスの出力を次のサービスの入力に使う流れがない。集めたデータを一つのグラフにまとめる使い方で,処理の連結ではない。

  • ウ ○ 正しい

    一つ目のサービスの出力(予算内の施設のリスト)を,二つ目のサービスの入力(空室を調べる対象)に使っている。複数のサービスの入出力処理をつないで新しい機能にしているので,ロジックマッシュアップ。

  • エ × 誤り 画面の一部だけを更新する仕組みなので,サービスをつなぐ話だと考えた

    ページの一部だけを読み直して更新する,Ajaxのような非同期通信の使い方。複数のWebサービスを連結する話ではない。

出典:基本情報技術者試験 令和6年度 科目A 公開問題 問5独立行政法人情報処理推進機構(IPA)原文を開く(確認)

この問題の誤りを報告
どこが違いますか

名前や連絡先は書かないでください。内容は訂正の確認にだけ使い、90日で削除します。

基本情報技術者試験

令和7年度 科目A 公開問題 問5

IPA 公表問題

ローコード開発ツールを用いたソフトウェア開発の説明はどれか。

解答群
答えと選択肢ごとの根拠を見る

正解:ア(アプリケーションソフトウェアの開発基盤の上で,用意された部品やテンプレートを GUI を用いた操作で組み合わせたり,必要に応じて一部の処理のソースコードを記述したりすることによって,アプリケーションソフトウェアを作成する。) IPA 公表の解答例による

  • ア ○ 正しい

    ローコードは,その名のとおり,コードを少なく書いて作る方法。部品を画面上で組み合わせるのを中心にしつつ,足りない処理だけコードで補える点が特徴。

  • イ × 誤り 画面操作で作るのだから,コードは全く書かないのが特徴だと考えた

    コードを一切書かない方式はノーコードと呼ばれる。ローコードは,必要に応じてコードを書ける点で区別される。

  • ウ × 誤り 枠組みを使うのでコードが少なくて済むと考えた

    枠組み(フレームワーク)を使い,独自の処理をコードで書く通常の開発の説明。画面上で部品を組み合わせるローコードの特徴とは違う。

  • エ × 誤り 作業を自動化するツールだから,開発の手法でもあると考えた

    人の操作手順を登録して代行させるのはRPAの説明。アプリケーションを作る手法ではなく,既存の作業を自動化するもの。

出典:基本情報技術者試験 令和7年度 科目A 公開問題 問5独立行政法人情報処理推進機構(IPA)原文を開く(確認)

この問題の誤りを報告
どこが違いますか

名前や連絡先は書かないでください。内容は訂正の確認にだけ使い、90日で削除します。

解説

この4問で問われること

開発手法とツールの問題は現場の言葉を知っているかを確かめる短い問題です。どの問題も、問題文または選択肢に答えを決める条件が書かれています。スタブは問題文の「上位から」「下位の代替」、コーディング規約は問題文の「記述方法が統一されていない」、ロジックマッシュアップは選択肢の中の出力が次の入力になる流れ、ローコードは選択肢の「必要に応じて一部の処理のコードを書く」です。

4問はテストの進め方(スタブ)、品質を保つ取り組み(コーディング規約)、サービスやアプリケーションの作り方(ロジックマッシュアップ、ローコード)の順に並べました。

令和6年度 問11(スタブ):どちら側のモジュールが無いか

答えはウ(スタブ)です。問題文に「上位のモジュールから行う」「下位のモジュールの代替」とあります。上位から順に結合テストをする(トップダウン)と、呼び出される側の下位モジュールがまだ完成していません。その代わりに、呼ばれたら決まった値を返すだけの仮のモジュールを置きます。これがスタブです。

ドライバは逆で、下位から順にテストする(ボトムアップ)とき、まだ無い上位モジュールの代わりに下位を呼び出すものです。スタブとドライバを取り違えるときは、「代わりになるのが上位か下位か」を問題文から先に決めます。エミュレータとシミュレータは機器や環境を模擬する仕組みで、モジュール同士のテストで置く小さな代替とは別物です。「代わりに動くから同じ」と読むと外します。

令和8年度 問11(コーディング規約):問題の原因に対応する対策か

答えはア(コーディング規約を見直し、教育する)です。問題文の問題は「プログラムの記述方法が統一されていないので保守がしづらい」です。原因は書き方がそろっていないことなので、書き方をそろえる決まりを見直し、教育するコーディング規約が対策になります。

ほかの三つはよい取り組みに見えますが、原因に対応していません。セキュアプログラミングは脆弱性を作り込まない書き方で、安全にはなりますが書き方はそろいません。命令網羅度を上げるのはテストの話で、欠陥の発見には役立っても、保守のしづらさの原因は変わりません。プロジェクト管理レビューは進捗やコストなどの管理を確認する場で、書き方を決めたり教えたりする場ではありません。

「どれも品質に役立ちそう」と思ったら、問題文の原因を読み直して、その原因を直接なくす選択肢だけを残します。

令和6年度 問5(ロジックマッシュアップ):一つ目の出力が二つ目の入力になるか

答えはウ(予算内の宿泊施設のリストを取得し、その空室状況を別のWebサービスから取得して表示する)です。ロジックマッシュアップは複数のWebサービスの入出力処理をつないで、新しいサービスを作ることです。ウは一つ目のサービスの出力(予算内の施設のリスト)を、二つ目のサービスの入力(空室を調べる対象)に使っていて、入出力がつながっています。

アは他のサービスの地図を取り込んで表示する例で、表示を組み合わせているだけです。イは複数のサービスのデータを集めてグラフにまとめる例で、サービス同士の処理はつながっていません。エは画面の一部だけを更新する仕組みで、サービスをつなぐ話ではありません。複数のサービスを使っているかではなく、あるサービスの出力が次のサービスの入力になっているかを見ます。

令和7年度 問5(ローコード開発):コードを書かないのではなく、少なく書く

答えはア(部品を画面で組み合わせ、必要に応じて一部の処理のコードを書く)です。ローコードは、その名のとおり、コードを少なく書いて作る方法です。画面上で部品を組み合わせるのが中心で、足りない処理だけコードで補います。

イはソースコードを一切書かない開発で、「ノーコード」の説明に近い内容です。画面で作るのだからコードは全く書かないと考えると外します。ウは定型的な枠組みを参照して独自の処理を書く方法で、フレームワークを使った開発です。エは利用者の操作手順を登録して作業を自動化するツールで、RPAの説明です。アプリケーションを作る開発手法ではありません。アとイの違いは、「必要に応じてコードを書く」の一文だけです。

ごく短い違いで分かれる組を探す

令和6年度 問11のスタブとドライバ、令和7年度 問5のア(ローコード)とイ(ノーコード)は、ごく短い違いで答えが分かれる組でした。令和6年度 問11のドライバは下位から順にテストするときの代替、令和8年度 問11のセキュアプログラミングは脆弱性対策、令和7年度 問5のフレームワークを使った開発は定型的な枠組みを使う方法で、誤答の用語も別の場面では正しい働きをします。

科目Aのほかの開発・管理・技術の問題は「基本情報技術者 科目A公開問題:スクラムと日程管理(プロジェクトマネジメント)の7問」と「基本情報技術者 科目A公開問題:設計とインフラ(E-R・多相性・クラウド・ping)の5問」に、セキュリティの7問は「基本情報技術者 科目A公開問題:セキュリティの7問(攻撃・暗号・認証・組織)」にあります。

次に読む

参考にした資料(6件)

残りの3件を開く