問題
問36
ソフトウェア開発のテスト工程で、個々のモジュールが正しく動作するかどうかを確認するテストはどれか。
- システムテスト
- 結合テスト
- 単体テスト
- 受け入れテスト
正解
正解は「ウ」です。
解説
正解は「ウ」の単体テストです。単体テストは、ソフトウェアを構成する最小単位の部品である「モジュール」や「コンポーネント」(関数やメソッドなど)が、それぞれ個別に設計通り正しく動作するかどうかを検証するテストです。これは、ソフトウェア開発における最初のテスト工程にあたります。
自動車の製造に例えるなら、エンジンやブレーキ、タイヤといった部品を、車体に取り付ける前にそれぞれ単独で性能試験を行うようなものです。ここで各部品の品質を確保しておくことで、後工程である結合テストやシステムテストで問題が発生するリスクを減らすことができます。開発者自身が、自分の作成したプログラム部分に対して実施することが一般的です。問題文の「個々のモジュールが正しく動作するかどうかを確認する」という記述は、まさに単体テストの目的そのものです。
ア(システムテスト):
開発したシステム全体が、要求された機能や性能などの要件をすべて満たしているかを開発者側の視点で総合的に検証するテストです。
イ(結合テスト):
単体テストが完了した複数のモジュールを組み合わせて、モジュール間でデータが正しく受け渡しされるかなど、連携がうまくいくかを確認するテストです。
エ(受け入れテスト):
開発の最終段階で、発注者(利用者)が実際にシステムを操作し、業務上の要求を満たしているかを確認するテストです。
解法のポイント
ソフトウェアのテスト工程(V字モデル)は、基本情報技術者試験の頻出テーマです。一般的に「単体テスト → 結合テスト → システムテスト → 受け入れテスト」という流れで進みます。この順番と、それぞれのテストが「何を(テスト対象)」「誰が(実施主体)」確認するのかをセットで覚えることが重要です。「個々のモジュール」が対象であれば「単体テスト」、「モジュール間の連携」が対象であれば「結合テスト」というように、テスト対象の規模に着目すると区別しやすくなります。
用語補足
単体テスト:
プログラムの部品(モジュール)を一つずつテストすることです。レゴブロックで作った作品を、一度バラバラにして各ブロックに傷がないかチェックするようなイメージです。
モジュール:
ソフトウェアを構成する、特定の機能を持った部品のことです。プログラム全体を機能ごとに分割したもので、関数やクラスなどが該当します。
結合テスト:
部品同士を組み合わせて、うまく連携して動くかを確認するテストです。エンジニアタイヤを車体に取り付けて、ちゃんと連動するかを試す段階にあたります。
システムテスト:
すべての部品を組み上げたシステム全体が、仕様書通りに動くかを確認するテストです。完成した自動車が、設計通りの性能で走るかをテストコースで確認するようなものです。


