問題
問37
ソフトウェア保守に該当するものはどれか。
- システムテストで測定したレスポンスタイムが要件を満たさないので、ソフトウェアのチューニングを実施した。
- ソフトウェア受入れテストの結果、不具合があったので、発注者が開発者にプログラム修正を依頼した。
- プログラムの単体テストで機能不足を発見したので、プログラムに機能を追加した。
- 本番システムで稼働しているソフトウェアに不具合が報告されたので、プログラムを修正した。
[出典:ITパスポート試験 平成30年度秋期 問37]
正解
正解は「エ」です。
解説
正解は「エ 本番システムで稼働しているソフトウェアに不具合が報告されたので、プログラムを修正した。」です。ソフトウェア保守とは、システムが稼働を開始した後(本番環境に移行した後)に発生する問題や、環境の変化に対応するためにソフトウェアを修正・変更する活動を指します。
具体的には、1. 是正保守(稼働中のシステムで発見されたバグを修正)2. 適応保守(システムが動作する環境の変化に合わせて修正)、3. 完全化保守(システムの性能改善や効率化)、4. 予防保守(将来の問題を未然に防ぐ)などの種類があります。選択肢エは、既に本番稼働しているシステムで不具合が見つかり、それを修正する活動ですので、是正保守に該当し、ソフトウェア保守の典型的な例です。これは、私たちが日常で使っているスマートフォンのアプリでバグが見つかり、開発元が修正アップデートを配布するのと同じような状況だと考えると分かりやすいでしょう。
ア(システムテストで測定したレスポンスタイムが要件を満たさないので、ソフトウェアのチューニングを実施した。):
システムテスト段階での性能改善は、システムの開発工程内で行われる活動であり、保守には該当しません。これは、製品が市場に出る前の品質向上活動です。
イ(ソフトウェア受入れテストの結果、不具合があったので、発注者が開発者にプログラム修正を依頼した。):
受け入れテスト段階での不具合修正は、システムが発注者に引き渡される前の工程であり、開発段階の活動です。保守は稼働後の対応を指します。
ウ(プログラムの単体テストで機能不足を発見したので、プログラムに機能を追加した。):
単体テスト段階での機能追加や修正は、まだ開発工程の初期段階であり、保守ではなく開発活動の一部です。
難易度
この問題の難易度は比較的「易しい」と言えます。ITパスポート試験で頻出する「ソフトウェア保守」の定義を理解していれば、正解を導き出すことは難しくありません。特に、システムが「本番稼働している」というキーワードが、保守活動のタイミングを示す重要なヒントになります。開発工程におけるテストと保守の区別がつけられれば、迷うことなく解答できるでしょう。
用語補足
ソフトウェア保守:
ソフトウェアが本番環境で稼働を開始した後、不具合の修正、環境の変化への対応、機能改善、将来的な問題の予防などを行う活動です。例えば、スマートフォンのアプリでバグが見つかり、それを修正するアップデートが提供されることがこれに該当します。
システムテスト:
開発されたソフトウェア全体が、ユーザーの要求仕様を満たしているか、また意図通りに動作するかを確認するために行うテストです。例えば、新しい車が完成した際に、全ての部品が正常に連携して走り、設計通りの性能が出るかを確認する走行テストのようなものです。
受入れテスト:
開発されたシステムが、実際に利用するユーザー(発注者)の観点から、期待通りの機能や性能を持っているかを確認する最終テストです。例えば、オーダーメイドの家具が完成した際に、注文したお客様が実際に見て触って、イメージ通りか、使いやすいかを確認するようなものです。
単体テスト:
ソフトウェアを構成する個々のプログラム部品(モジュール)が、それぞれ単独で正しく機能するかを確認するテストです。例えば、車を作る際に、エンジン単体、タイヤ単体など、それぞれの部品がきちんと動くかを確認する検査のようなものです。
対策
この問題を解くためのポイントは、「ソフトウェア開発のライフサイクル」における各フェーズの活動内容を正確に理解することです。特に、「保守」はシステムが「稼働開始後」に行われる活動であるという点が重要です。開発中のテスト(単体テスト、システムテスト、受け入れテスト)と、稼働後の保守活動を明確に区別できるようにしましょう。各テストフェーズの目的と、そこで行われる主な作業内容を整理して覚えることが対策となります。

