【ITパスポート】単体テスト・結合テスト・システムテストの違いとV字モデルを解説

システム開発において、プログラミング(実装)が終わった後に必ず行われるのが「テスト工程」です。しかし、ITパスポートの試験勉強をしていると、単体テスト・結合テスト・システムテストなど、いろんなテストの名前が出てきて混乱しませんか?

「どのテストで何を確認するの?」「V字モデルって何?」と疑問に思う方も多いでしょう。この記事では、それぞれのテストの役割と違いを「自動車の製造プロセス」に例えてわかりやすく解説します!

目次

ソフトウェアテストの3つの段階

プログラミングが終わった後、いきなり完成したシステム全体を動かしてテストするわけではありません。小さな単位から段階的にテストを行い、徐々に範囲を広げていくのが基本です。

1. 単体テスト:部品ごとのチェック

単体テスト(Unit Test)とは、プログラムを構成する最小単位(モジュールや関数)ごとに、単独で正しく動作するかを確認するテストのことです。主にプログラムを書いた開発者自身が行います。

車の製造に例えると、「エンジンが単体で動くか」「ブレーキの部品が仕様通りに作られているか」をチェックする段階です。

単独の部品にバグ(不具合)が潜んでいないかを早期に発見し、修正するのが目的です。

2. 結合テスト:部品同士の連携チェック

結合テスト(Integration Test)とは、単体テストをクリアした複数のプログラム(モジュール)をつなぎ合わせて、連携して正しく動作するかを確認するテストのことです。

車の製造に例えると、「エンジンとタイヤをつないだときに、アクセルを踏むとタイヤが想定通りに回転するか」をチェックする段階です。

部品単体では動いても、つなぎ合わせた途端にデータの受け渡しがうまくいかずエラーになることはよくあります。プログラム間のインターフェース(接点)に問題がないかを確認します。

3. システムテスト:完成品の総合チェック

システムテスト(System Test)とは、システム全体が完成した状態で、最初の要件定義で決められた機能や性能を満たしているかを最終確認するテストのことです。総合テストとも呼ばれます。

車の製造に例えると、「完成した車を実際に走らせてみて、雨の日でも滑らないか、燃費の基準を満たしているか」を総合的にチェックする段階です。

機能だけでなく、処理速度(性能)やセキュリティ、使いやすさなど、実際の利用環境に近い状態ですべての要件を満たしているかを確認する開発側の総仕上げとなります。

「V字モデル」で設計とテストの対応関係を理解する

テスト工程を理解する上で欠かせないのがV字モデルです。ウォーターフォール開発において、左側に設計工程、右側にテスト工程をV字型に配置した図です。

V字モデルの最大の特徴は、「右側のテスト工程は、左側の対応する設計工程の内容を検証している」という点です。

設計工程検証するテスト工程テストの目的・内容
内部設計(詳細設計)単体テストモジュールの内部構造が正しく作られているか
外部設計(基本設計)結合テスト画面遷移やプログラム間の連携が正しいか
要件定義システムテストクライアントが求めた要件(機能や性能全体)を満たしているか

この対応関係(どれとどれがセットになるか)は試験で非常によく出題されるので、図の横のつながりを必ず覚えておきましょう。

2つのテスト手法:ホワイトボックスとブラックボックス

テスト工程で使われる代表的なテスト手法(視点)が2つあります。これもあわせて覚えましょう。

ホワイトボックステスト

プログラムの内部構造(処理の流れや条件分岐など)が正しくできているかを確認する手法です。中身が透けて見える「白い箱」としてシステムを扱うイメージです。主に単体テストで開発者目線で行われます。

ブラックボックステスト

プログラムの内部構造は気にせず、システムを外から操作して、入力に対して正しい結果が出力されるかを確認する手法です。中身が見えない「黒い箱」として扱うイメージです。主にユーザー目線で行われるシステムテストなどで使われます。

ITパスポート試験でのテスト分野出題傾向と対策

ソフトウェアテストに関する知識は、マネジメント系の「ソフトウェア開発管理技術」の分野で高頻度で出題されます。

試験でおさえるべきキーワード

  • 単体テスト:最小単位(モジュールごと)のテスト。内部設計を検証し、ホワイトボックステストが主体。
  • 結合テスト:複数のモジュールをつなぎ合わせて連携を確認するテスト。外部設計を検証。
  • システムテスト:システム全体が要件定義を満たしているかを確認する総仕上げのテスト。
  • V字モデル:設計工程とテスト工程の対応関係(単体↔内部、結合↔外部、システム↔要件定義)を示したモデル。
  • ホワイトボックステスト:プログラムの内部構造(処理の流れ)を確認する手法。
  • ブラックボックステスト:内部構造は気にせず、入力と出力の整合性を外部から確認する手法。

過去問に挑戦!

【問題】
ウォーターフォール開発のV字モデルにおいて、システム全体の機能や性能が要件定義書で定めた内容を満たしているかを確認するテスト工程はどれか。

ア.単体テスト
イ.結合テスト
ウ.システムテスト
エ.運用テスト

【正解】:ウ
【解説】:要件定義の内容(システム全体が要件を満たしているか)を検証するのは「システムテスト」です。単体テストは内部設計、結合テストは外部設計を検証します。

【問題】
プログラムのテスト手法のうち、プログラムの内部構造や処理の流れ(ロジック)を考慮して行うテスト手法はどれか。

ア.ブラックボックステスト
イ.ホワイトボックステスト
ウ.ペネトレーションテスト
エ.システムテスト

【正解】:イ
【解説】:プログラムの内部構造や処理の流れを検証する手法は「ホワイトボックステスト」です。内部構造を考慮せずに入出力の結果だけを確認するのはブラックボックステスト(ア)です。

まとめ:テストは小さい単位から大きな単位へ

今回は単体テストをはじめとするテスト工程の全体像を解説しました。ポイントをもう一度確認しましょう。

  • テストは小さい範囲から大きな範囲へ「単体→結合→システム」の順で行う
  • 単体テストは部品ごとのチェック、結合テストは部品間のつながりのチェック、システムテストは完成品のチェック
  • V字モデルの対応関係(内部設計↔単体、外部設計↔結合、要件定義↔システム)は超頻出
  • ホワイトボックステストは内部(ロジック)を見る手法、ブラックボックステストは外部(入出力)を見る手法

自動車の製造「部品チェック(単体)→組み上げ(結合)→完成車の走行チェック(システム)」というイメージを持っておけば、試験本番でも各テストの目的を的確に判断できるようになります!

目次